This release adds 4 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+10 more
Summary
AI summaryUpdates span S3 compatibility, admin UI enhancements, Terraform deployment support, volume server fixes, EC bitrot detection, shell warnings, filer sync improvements, master topology recovery, and Rust volume server OOM protection.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Low |
Add Terraform support for VM‑based SeaweedFS deployment. Add Terraform support for VM‑based SeaweedFS deployment. Source: llm_adapter@2026-06-02 Confidence: high |
— |
| Feature | Low |
Implement EC bitrot detection with per‑shard checksum sidecars. Implement EC bitrot detection with per‑shard checksum sidecars. Source: llm_adapter@2026-06-02 Confidence: high |
— |
| Feature | Low |
Commit a versioned PutObject and its latest pointer atomically in S3 API. Commit a versioned PutObject and its latest pointer atomically in S3 API. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Feature | Low |
Auto-enforce bucket quota read-only enforcement bidirectionally in S3 API. Auto-enforce bucket quota read-only enforcement bidirectionally in S3 API. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Feature | Low |
Export file/folder metadata from the admin server's file browser. Export file/folder metadata from the admin server's file browser. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Feature | Low |
View images and PDFs inline in the admin server's file browser. View images and PDFs inline in the admin server's file browser. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Feature | Low |
Store file browser uploads in volumes instead of inline in Admin Server. Store file browser uploads in volumes instead of inline in Admin Server. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Feature | Low |
Warn when a volume ID spans collections in the shell's volume.list command. Warn when a volume ID spans collections in the shell's volume.list command. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Feature | Low |
Back off on transient upload errors in filer.sync. Back off on transient upload errors in filer.sync. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Feature | Low |
Repair a destination shorter than the source in filer.sync. Repair a destination shorter than the source in filer.sync. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Feature | Low |
Notify clients after manual volume grow operation in master. Notify clients after manual volume grow operation in master. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Bugfix | Medium |
Reject reserved bucket name "filemeta" in S3 API. Reject reserved bucket name "filemeta" in S3 API. Source: llm_adapter@2026-06-02 Confidence: high |
— |
| Bugfix | Medium |
Fix multipart upload ETag compatibility with Hadoop S3A. Fix multipart upload ETag compatibility with Hadoop S3A. Source: llm_adapter@2026-06-02 Confidence: high |
— |
| Bugfix | Medium |
Recover versioned reads when the .versions latest pointer is absent. Recover versioned reads when the .versions latest pointer is absent. Source: llm_adapter@2026-06-02 Confidence: high |
— |
| Bugfix | Medium |
Fix maxVolumeCount dead zone that stalled writes on auto‑sized disks in Volume Server. Fix maxVolumeCount dead zone that stalled writes on auto‑sized disks in Volume Server. Source: llm_adapter@2026-06-02 Confidence: high |
— |
| Bugfix | Medium |
Handle invalid gzip stream errors in HTTP handling. Handle invalid gzip stream errors in HTTP handling. Source: llm_adapter@2026-06-02 Confidence: high |
— |
| Bugfix | Medium |
Keep volume writable after a deletion‑tail compaction. Keep volume writable after a deletion‑tail compaction. Source: llm_adapter@2026-06-02 Confidence: high |
— |
| Bugfix | Medium |
Resolve EC data‑shard count from the volume's .vif on reboot. Resolve EC data‑shard count from the volume's .vif on reboot. Source: llm_adapter@2026-06-02 Confidence: high |
— |
| Bugfix | Medium |
Prevent OOM under load by bounding request body and stored‑content expansion in Rust Volume Server. Prevent OOM under load by bounding request body and stored‑content expansion in Rust Volume Server. Source: llm_adapter@2026-06-02 Confidence: low |
— |
| Bugfix | Low |
Return NoSuchVersion instead of NoSuchKey for missing versionId in S3 API. Return NoSuchVersion instead of NoSuchKey for missing versionId in S3 API. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Bugfix | Low |
Protect destination sidecar on optional copy and cap sidecar block_size for EC bitrot follow-ups in Volume Server. Protect destination sidecar on optional copy and cap sidecar block_size for EC bitrot follow-ups in Volume Server. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Bugfix | Low |
Ensure shell volume.fsck does not skip the system-log subtree. Ensure shell volume.fsck does not skip the system-log subtree. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Bugfix | Low |
Name the read-only path in write rejection messages from filer. Name the read-only path in write rejection messages from filer. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Bugfix | Low |
Prevent tearing down shared master connection on caller timeout in gRPC. Prevent tearing down shared master connection on caller timeout in gRPC. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Bugfix | Low |
Restore active count after vacuum recovery in master topology handling. Restore active count after vacuum recovery in master topology handling. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
| Bugfix | Low |
Pass per-volume data-shard count to parity-shard split operation in EC storage. Pass per-volume data-shard count to parity-shard split operation in EC storage. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
— |
Full changelog
What's Changed
-
S3
- s3: short-circuit filer failover on ErrNotFound by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9748
- s3: return NoSuchVersion (not NoSuchKey) for a missing versionId by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9749
- s3: commit a versioned PutObject and its latest pointer in one transaction by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9756
- s3: reject reserved bucket name "filemeta" by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9760
- fix(s3api): Fix multipart upload ETag compatibility with Hadoop S3A by @phucnguyen261199 in https://github.com/seaweedfs/seaweedfs/pull/9772
- s3: auto-enforce bucket quota read-only both ways by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9774
- fix(s3): recover versioned reads when the .versions latest pointer is absent by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9782
-
Admin Server and Worker
- admin: export file/folder metadata from the file browser by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9750
- admin: view images and PDFs inline in the file browser by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9751
- admin: store file browser uploads in volumes, not inline by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9752
-
Terraform
- Add Terraform support for VM-based SeaweedFS deployment by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9754
-
Volume Server
- volume: fix maxVolumeCount dead zone that stalled writes on auto-sized disks by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9755
- EC bitrot detection: per-shard checksum sidecars by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9761
- EC bitrot follow-ups: protect destination sidecar on optional copy; cap sidecar block_size by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9763
- fix(http): handle invalid gzip stream errors by @7y-9 in https://github.com/seaweedfs/seaweedfs/pull/9767
- volume: keep volume writable after a deletion-tail compaction by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9776
- fix(ec): resolve EC data-shard count from the volume's .vif on reboot by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9779
- fix(ec): pass per-volume data-shard count to the parity-shard split by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9781
-
Shell
- shell: warn in volume.list when a volume id spans collections by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9759
- shell: volume.fsck must not skip the system-log subtree by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9764
-
Filer Sync
- filer.sync: back off on transient upload errors by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9777
- filer.sync: repair a destination shorter than the source by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9778
-
Filer
- filer: name the read-only path in the write rejection by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9773
- grpc: don't tear down the shared master connection on a caller's own timeout by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9775
-
Master
- fix(topology): restore active count after vacuum recovery by @CodeRusher in https://github.com/seaweedfs/seaweedfs/pull/9770
- fix(master): notify clients after manual volume grow by @mneetika in https://github.com/seaweedfs/seaweedfs/pull/9656
-
Misc
- ci: parallelize the unified release-container build by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9783
-
Rust Volume Server
- fix(seaweed-volume): bound request body and stored-content expansion to prevent OOM under load by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9780
New Contributors
- @phucnguyen261199 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/9772
- @mneetika made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/9656
Full Changelog: https://github.com/seaweedfs/seaweedfs/compare/4.30...4.31
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About seaweedfs
SeaweedFS is a distributed storage system for object storage (S3), file systems, and Iceberg tables, designed to handle billions of files with O(1) disk access and effortless horizontal scaling.
Related context
Related tools
Earlier breaking changes
- v4.24 Version 4.23 is unsafe with multiple disks when using erasure coding (EC).
Beta — feedback welcome: [email protected]