4.33
lynx-family/lynx4.33Jun 11, 2026by chrislusf
AI Summary
SeaweedFS update fixing S3 API issues including HTTP-date conditionals, checksum normalization, and remote cache problems, along with filer sync improvements, MongoDB URI auth fixes, and metadata-log OOM prevention.
Key Highlights
- HTTP-date conditional support in S3 API
- S3 checksum trailer header normalization
- Remote cache content and permissions fixes
- Filer sync atomic move implementation
- Metadata-log OOM prevention under mount reconnect storms
New Features
- S3 API HTTP-date conditional support
- S3 drop ancestor directory markers from ListObjectVersions
- Remote cache content and permissions sync/caching fixes
- Filer sync atomic move implementation
- Admin export full cluster volume list as JSON
- Pre-gzip embedded static assets with cache headers
- MongoDB URI auth field merging
- Object size distribution metrics and dashboard panels
- Metadata-log replay OOM prevention
- Elastic8 filer store for Elasticsearch 8
Full Release Notes
## What's Changed * S3 API * fix(s3api): accept HTTP-date conditionals by @7y-9 in https://github.com/seaweedfs/seaweedfs/pull/9863 * fix(s3api): drop ancestor directory markers from prefixed ListObjectVersions by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9885 * fix(s3api): clear stale object lock years by @7y-9 in https://github.com/seaweedfs/seaweedfs/pull/9890 * fix(s3api): normalize checksum trailer header names by @7y-9 in https://github.com/seaweedfs/seaweedfs/pull/9905 * fix(s3api): reject empty v4 signed header names by @7y-9 in https://github.com/seaweedfs/seaweedfs/pull/9910 * Remote Cache * fix(remote): correct content and permissions when syncing/caching remote objects by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9879 * Filer Sync and Backup * Don't mangle filer paths with the OS separator on Windows by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9878 * fix(filer.sync): guard batched events against nil EventNotification by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9877 * fix(filer.backup): skip replay events whose source chunk was superseded or deleted by @kisow in https://github.com/seaweedfs/seaweedfs/pull/9886 * fix(filer.sync): scope filesystem key sanitization to the local sink by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9894 * fix(filer.sync): replicate a rename as an atomic move, not a no-op update by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9895 * Admin Server and Worker * feat(admin): export full cluster volume list as JSON by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9876 * admin: pre-gzip embedded static assets, add cache headers by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9918 * Misc * fix(util): return full uint64 randomness by @7y-9 in https://github.com/seaweedfs/seaweedfs/pull/9864 * fix(http): accept no content delete responses by @7y-9 in https://github.com/seaweedfs/seaweedfs/pull/9893 * ci: route Docker Hub pulls through a mirror to cut registry timeouts by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9904 * ci(s3tables): stop Lakekeeper flaking on Docker Hub pull timeouts by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9920 * Rust Volume Server * fix(seaweed-volume): stop EC shard deletion from phantom .dat on restart by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9874 * Shell * fix(shell): move files into existing destination directories by @7y-9 in https://github.com/seaweedfs/seaweedfs/pull/9887 * Make shell command `ec.scrub` return shard details upon scrub failures in `LOCAL` mode. by @plisandro in https://github.com/seaweedfs/seaweedfs/pull/9913 * `volume.scrub` and `ec.scrub` shell commands: make the display of scrub details optional. by @plisandro in https://github.com/seaweedfs/seaweedfs/pull/9911 * Filer * fix(mongodb): merge URI auth fields with username/password override by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9889 * feat(filer): object size distribution metric and dashboard panels by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9902 * Fix filer metadata-replay OOM under mount reconnect storms by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9901 * Share decoded metadata-log entries across subscriber replays by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9903 * Share metadata-log replays per chunk instead of per file by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9906 * Bound the metadata-log flush queue by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9907 * add elastic8 filer store for Elasticsearch 8 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9916 * log_buffer: stop dumping the whole log entry on callback errors by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9919 * Cut per-subscriber replay decode and widen replay concurrency by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9917 * Volume Server * batch drain delta heartbeat messages by @giftz in https://github.com/seaweedfs/seaweedfs/pull/9914 * fix(ec): don't mix EC shards from different encode runs by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9880 **Full Changelog**: https://github.com/seaweedfs/seaweedfs/compare/4.32...4.33