4.33

boratanrikulu/gecit4.33Jun 11, 2026by chrislusf

AI Summary

This release adds support for Elasticsearch 8 as a filer store and fixes various S3 API and Filer sync issues. It also optimizes metadata replay and adds object size distribution metrics.

Key Highlights

  • Elastic8 filer store support
  • S3 HTTP-date conditionals and checksum headers
  • Filer metadata-log replay optimization
  • Object size distribution metrics

New Features

  • Elastic8 filer store
  • S3 conditional header support
  • Filer sync and metadata improvements

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