github seaweedfs/seaweedfs 4.50

4 hours ago

What's Changed

  • filer: do not stall startup waiting out the leader-settle window by @chrislusf in #11972
  • volume: drop stale index entries that resolve to a different needle by @chrislusf in #11948
  • s3 lifecycle: route version-file writes to current-version expiration by @chrislusf in #11956
  • s3: end a catalog-vended session with the access key it was vended for by @jatorre in #11945
  • fuse integration: run posix suites on weed mini and allow allow_other mounts by @chrislusf in #11984
  • ci: cancel superseded workflow runs on PR pushes by @chrislusf in #11979
  • ci: build test binaries once, share them across shard jobs by @chrislusf in #11981
  • ci: cache docker build layers for container_dev by @chrislusf in #11980
  • ci: skip setup-go cache on self-hosted runners by @chrislusf in #11985
  • ci: skip actions/cache on self-hosted runners by @chrislusf in #11986
  • helm: fix bucket hook treating an existing bucket as missing by @bati-valensas in #11982
  • test: stop EC integration tests from pinning default master port 9333 by @chrislusf in #11988
  • test/fuse: fix cluster startup in the fuse test framework by @chrislusf in #11977
  • shell: retry filer discovery until a filer registers by @chrislusf in #11994
  • tests: pin weed mini admin ports and disable unused aux services by @chrislusf in #11997
  • volume: also listen on localhost like other components by @chrislusf in #11995
  • server: skip local unix sockets that cannot be bound by @chrislusf in #12000
  • command: keep filer, s3, and sftp up when the local unix socket cannot bind by @chrislusf in #11999
  • ci: gate go/java/python tool caches to github-hosted runners by @chrislusf in #12001
  • master: cap writable volumes per collection via -maxWritableVolumes by @chrislusf in #11923
  • s3: gate POST Object acl fields behind PutObjectAcl by @chrislusf in #11939
  • iam: GetUserPolicy returns NoSuchEntity for a policy name the user does not have by @jayhemnani9910 in #11944
  • ec.encode: require shard placement to meet -shardReplicaPlacement by @chrislusf in #11947
  • ci: set up Go for CodeQL autobuild by @chrislusf in #12007
  • test: raise mini-server startup wait from 30s to 90s in Makefiles by @chrislusf in #12005
  • test: gofmt s3tables test files by @chrislusf in #12011
  • s3: url-encode ListMultipartUploads results for encoding-type=url by @Tyagiquamar in #11998
  • volume.fsck: run all filer-entry purges through the shared worker pool by @chrislusf in #11960
  • ci: make docker registry and compose steps idempotent on self-hosted runners by @chrislusf in #12012
  • filer: bootstrap a timestamp-less peer entry onto a missing local path by @chrislusf in #11975
  • test: skip catalog client images that cannot execute on the host CPU by @chrislusf in #12014
  • ci: install fuse3 when runners lack fusermount3 by @chrislusf in #12013
  • docker: build RocksDB v11.1.2 for grocksdb v1.11.1 by @chrislusf in #12002
  • filer.backup: process metadata events through the concurrent processor by @chrislusf in #11951
  • operation: euthanize pooled upload conns that stall far below a fast host by @chrislusf in #12003
  • filer.conf: merge fsync on presence like worm by @chrislusf in #11953
  • iceberg maintenance: match percent-decoded keys when checking file references by @chrislusf in #11978
  • test(s3 remote cache): wait for the master to list the filer before shell commands by @chrislusf in #12018
  • ci: isolate S3 lifecycle mini from LAN clusters by @chrislusf in #12022
  • test: handle unsupported catalog clients in S3 Tables CI by @chrislusf in #12023
  • master: cap parallel vacuums per rack via master.vacuum.max_parallel_per_rack by @chrislusf in #11935
  • filer.remote.sync: dispatch an update event by the side of the mount it touches instead of slicing the mount prefix off a path outside it by @jsas in #11958
  • build(deps): bump github.com/go-chi/chi/v5 from 5.3.1 to 5.4.0 by @dependabot[bot] in #12004
  • shell: retry filer discovery until master knows a filer by @chrislusf in #11989
  • iceberg maintenance: a merged file with null row ids names no first_row_id by @jatorre in #11973
  • ci: invoke pip via python -m in s3tests clone steps by @chrislusf in #12010
  • s3api: support s3:RequestObjectTagKeys in bucket policies by @junkerderprovinz in #11993
  • notification: named webhook targets for per-path event routing by @chrislusf in #11925
  • release: digest-bound provenance and SBOM attestations for container images by @chrislusf in #12024
  • s3api: write the null version's object-lock metadata to the plain entry by @chrislusf in #12033
  • master: never auto-admit raft peers on a single-node configuration by @chrislusf in #12021
  • s3: evaluate bucket CORS for path-style OPTIONS on the bucket root by @wleeaf in #12028
  • topology: mark replica quarantined before recording the pair by @chrislusf in #11983
  • iam/oidc: wrap the jti replay cache in its own type by @chrislusf in #12017
  • filer: let NewChunkStreamReaderFromFiler fall back to the master on a cache miss by @niko4464 in #11964
  • s3: allow up to 50 tags in a bucket tag set by @wleeaf in #12030
  • volume: keep a below-minimum fsync batch open for stragglers by @chrislusf in #12016
  • filer: match If-Match and If-None-Match against "*" and ETag lists by @jayhemnani9910 in #12026
  • master: read the writable-volumes cap from master.toml by @chrislusf in #12009
  • volume: check If-None-Match before If-Modified-Since and match ETag lists by @jayhemnani9910 in #12027
  • topology: stop a stale duplicate-vid report from re-quarantining the survivor by @chrislusf in #12032
  • s3: accept a self-copy that changes the storage class by @wleeaf in #12031
  • feat: Free Volume Deadband (M) for EC shard placement by @CHEPURNOV-S-S in #12029
  • ci: clean up stale FUSE mounts before running tests by @chrislusf in #12020
  • mq/kafka: wait for a filer to register instead of panicking on an empty list by @pingqiu in #12019
  • s3: make ListObjectsV2 continuation tokens round-trip XML-unsafe keys by @Tyagiquamar in #11996
  • test(fuse): raise mini/filer and mount readiness waits to 90s by @chrislusf in #12037
  • s3: fix wildcard matcher skipping '*' targets in policy patterns by @chrislusf in #12034
  • filer.backup: retry a failed checkpoint read instead of replaying from the epoch by @AdzerKI in #12036
  • remote_storage/s3: send only real object tags to the remote by @chrislusf in #12039
  • ci: run s3-go-tests on remote_storage changes by @chrislusf in #12043
  • shell: run volume.configure.replication in parallel per volume server by @junkerderprovinz in #12041
  • helm: remove filer.redirectOnRead, which weed filer does not accept by @junkerderprovinz in #12040
  • redis2: pipeline entry reads when listing a directory by @junkerderprovinz in #12042
  • test: mismatched If-None-Match serves the object over If-Modified-Since by @chrislusf in #12045
  • s3: authorize POST policy uploads through the shared object check by @chrislusf in #12047
  • volume: overlap the local needle write with the replica fan-out by @chrislusf in #10074
  • filer: fix prefixed listing when the resume point sorts below the prefix by @chrislusf in #12049
  • test: bound trino container memory + dump logs when it exits before ready by @chrislusf in #12044

New Contributors

Full Changelog: 4.49...4.50

Don't miss a new seaweedfs release

NewReleases is sending notifications on new releases.