Release preparation v1.103

New release candidate is already deployed on QA Satellite


  • 3f2ad47 satellite/gc/sender: add NodeID to send retain error
  • 175840e web/satellite: extend setup application flow to support API keys and Access grants
  • a7dfbea web/satellite: use OTP input for enabling/disabling MFA
  • 8d56291 satellitedb: emit eventkit event for project deletion
  • ac5a422 satellite/orders: fix flaky TestProjectBandwidthDailyRollups
  • 67e397d satellite/metabase: spanner implementation of the adapter interface
  • 60353b1 satellite/metabase: remove some usages of UnderlyingTagSQL
  • 9585685 web/satellite: prevent setting past expiration date in create AG flow
  • 71e2770 satellite/payments: Add clarification text for carbon emissions on invoices
  • a01e62e web/satellite: use original un-unique file name
  • 4d20183 web/satellite: list object versions
  • f94a60d satellite/console: config values for object browser API keys
  • 229e4a2 satellite/{console, web}: Prevent brute-force attacks on 2FA verification during password reset
  • 9e4daa0 satellite/console: prevent enabling 2FA when already active
  • 5eb0dd5 web/satellite: do not delete old object browser API key
  • 6202876 satellite/metabase: mud based test for Spanner with migration
  • ec52b96 satellite/metabase: spanner TestingBatchInsertSegments implementation
  • 45c075b web/satellite/static/emails: Update mailing address
  • c0e18d3 satellite/{console, db}: do not return object browser API keys to client side
  • c3c8b19 web/satellite: add Uplink to Applications page
  • 3fc56e8 web/satellite: logo size and position fix
  • ed6bf03 satellite/metabase: spanner node aliases implementation
  • 8dacb7b satellite/metabase: spanner segments loop implementation
  • 49a2af6 satellite/{console, db}: extend dbcleanup chore to delete expired API keys
  • 8d6eed6 web/satellite: reworked AG deletion process
  • 7defdac satellite/repair: clumping only repairs should be reported on debug level
  • 3d0ddd4 satellite/satellitedb: Fix typo & drop trailing white space
  • a817f8c satellite/metabase: add some spanner automatic columns encoding/decoding
  • 9b8bd4b satellite/{analytics,web}: improve plausible integration
  • d90e730 web/satellite: hide latest version of objects
  • 34cb6cc web/satellite: add file version actions
  • 6213389 satellite/admin: allow project deletion with existing API keys
  • 45169cb web/satellite: submit passphrase inputs on enter press
  • 4e7a3c2 satellite/metabase: use custom spanner encoding/decoding
  • f1cbccf satellite/console: config flag for max name values length
  • 30ad064 satellite/console: remove analytics rate limit


  • 67edcd9 web/storagenode: update STORJ logo
  • b2b80a4 storagenode/iopriority: fix error handling in setting low priority
  • 846a585 web/{satellite, storagenode, multinode}: updated favicon
  • f91819e storagenode/trust: fix data race
  • beddca4 storagenode: add load monitoring
  • 86f85a9 storagenode: fix disk monitoring for FreeBSD


  • 3584341 satellite/metabasetest: use mud to run also benchmarks
  • 3c89056 satellite/metabase/metabasetest: use test migration for benchmarks
  • 7368892 testsuite/rolling-upgrade: disable compressed batches
  • e9fed23 satellite/satellitedb/satellitedbtest: add ctx argument to Bench


  • 200d08d web/multinode: update STORJ logo


  • 7d886ad Jenkinsfile.premerge: align with Jenkinsfile.verify
  • 448f6d9 private/mud: helpers to print dependency graph with dot
  • 7d05502 Jenkinsfile.verify: more optimizations
  • 8b0cb71 cmd/tools/metabase-listing-performance: handle timeout correctly
  • 60b1801 Update
  • cd114f8 resources: update logo
  • 1d249b2 installer/windows: updated logo
  • 65663b0 Jenkinsfile.public: align more with verify/premerge builds (#6905)
  • 82b05dc build: bump golangci-lint timeout
  • 9406908 go.mod: bump dependencies (uplink/common)
  • 71fed1a Jenkinsfile.public: Fix lint stage
  • bb2647a cmd/tools/verify-graceful-exit-recipt: tool to verify receipts without satellite identity
  • 1cfb8d2 Jenkinsfile.public: re-enable satellite UI tests (#6901)
  • 7bfcb48 cmd/rangedloop: use BQ destination with eventkit

Does this mean the dashboard (or logs) could one day report on iowait-type stats? That would certainly help diagnosing issues where the disk is overwhelmed. Or even inform decisions on whether filewalkers/gc gets started at certain times or not.

I think that would also mean a lot of unhappy SNOs who learn their setups have the iops of a potato :wink: . Of course their nodes may be slow right now… but they don’t hear about it… :turtle:



		"%d: %+v\n\n"+
			"ReadCount:  %d\n"+
			"WriteCount: %d\n"+
			"ReadBytes:  %d\n"+
			"WriteBytes: %d\n",



I’m OK with knowing the health of my potato. :smiley:


Why version number dosen’t start with 3?
We are on Storj Network v3, so it would make more sense to use the for all parts, including storagenode and satellite software.
It’s more clear from what number a new major version of the network begins, it’s self explanatory on what version the network is just looking at the software ver., it’s easier for any githubber that branches the software to show from whitch version the branch came, etc.
I see only positives.


Are they going to solve the lazy-filewalker problem?

1 Like

Which problem?

The issue of the trash-cleanup lazy filewalker not updating the database after finishing is patched in v.1.104.


in ubuntu we are at 102.3

Then you need to wait for

Or take a risk:

Yes this commit * d68abcf storagenode/pieces: update used space on trash-lazyfilewalker completion should fix the problem

1 Like

We’re impacted by the details of Go’s versioning system. Go has an interesting dynamic, which is that unstable APIs are supposed to use v0.x.x. But once you have a stable API, the version number is in the import path unless it is v1.x.x. So, if we were going to use v3.x.x, all of our import paths would need to be “”, which would change a lot of code, and would be a potential risk for accidentally using an old version of a library. With version 1, then the import paths are just “”. This isn’t a major problem and we could do it, but it’s just enough friction that we haven’t wanted to.