Skip to content

seaweedfs

v4.28 Feature

This release adds 1 notable feature for engineering teams evaluating rollout.

Published 13d Cloud Management
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

blob-storage cloud-drive distributed-file-system distributed-storage distributed-systems erasure-coding
+10 more
fuse hadoop-hdfs hdfs kubernetes s3 posix replication s3-storage seaweedfs tiered-file-system

ReleasePort's take

Moderate signal
editorial:auto 12d

Version 4.28 fixes several critical bugs across EC handling, S3 audit logging, and volume server stability.

Why it matters: These bugfixes eliminate crashes (e.g., shell volumeServer.evacuate panic), correct EC disk‑counting errors, surface previously hidden stat errors during idx scrub, and improve S3 request auditing—directly enhancing reliability for developers, SREs, and security engineers.

Summary

AI summary

Broad release touches ec, s3, audit, and s3/audit.

Changes in this release

Feature Medium

Add volume.rust toggle to Helm chart for Rust volume server.

Add volume.rust toggle to Helm chart for Rust volume server.

Source: llm_adapter@2026-05-22

Confidence: high

Feature Medium

Rebuild lost EC index (.ecx) and .vif from local shards.

Rebuild lost EC index (.ecx) and .vif from local shards.

Source: llm_adapter@2026-05-22

Confidence: high

Feature Medium

Accept volume‑server Ping targets on follower masters.

Accept volume‑server Ping targets on follower masters.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Fix shell volumeServer.evacuate panic on nil volume.

Fix shell volumeServer.evacuate panic on nil volume.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Keep sync_offset fresh while source is read-only in filer.sync.

Keep sync_offset fresh while source is read-only in filer.sync.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Pack EC shards onto fewer disks instead of refusing the task.

Pack EC shards onto fewer disks instead of refusing the task.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Correct multi-disk disk counting and EC balance shard attribution.

Correct multi-disk disk counting and EC balance shard attribution.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Bring ec.encode worker and EC/volume helpers to parity with shell.

Bring ec.encode worker and EC/volume helpers to parity with shell.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Account for zero‑sized volumes during volume scrubs.

Account for zero‑sized volumes during volume scrubs.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Surface stat error on zero‑size idx scrub and mirror to Rust.

Surface stat error on zero‑size idx scrub and mirror to Rust.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Don't disable SQL idle connection pool when filer is unconfigured.

Don't disable SQL idle connection pool when filer is unconfigured.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Prevent filer crash from inconsistent skiplist ends.

Prevent filer crash from inconsistent skiplist ends.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Restore executable bit on prebuilt weed-volume Docker image.

Restore executable bit on prebuilt weed-volume Docker image.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Carry filer addresses as ServerAddress in admin plugin cluster context.

Carry filer addresses as ServerAddress in admin plugin cluster context.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Return lock‑free snapshot from ActiveTransfers in filersink.

Return lock‑free snapshot from ActiveTransfers in filersink.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Populate requester for GET/HEAD/IAM S3 operations.

Populate requester for GET/HEAD/IAM S3 operations.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Sync IAM policies to advanced IAM Manager policy engine.

Sync IAM policies to advanced IAM Manager policy engine.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Keep server‑side copy data within bucket collection.

Keep server‑side copy data within bucket collection.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

List empty directories as directory markers.

List empty directories as directory markers.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Cancel ListEntries stream in hasChildren to avoid leaks.

Cancel ListEntries stream in hasChildren to avoid leaks.

Source: llm_adapter@2026-05-22

Confidence: high

Bugfix Medium

Fix fd leak in Samba DLM handoff test and promote xfail checks.

Fix fd leak in Samba DLM handoff test and promote xfail checks.

Source: llm_adapter@2026-05-22

Confidence: low

Refactor Medium

Remove unused NameList/NameBatch implementation from skiplist.

Remove unused NameList/NameBatch implementation from skiplist.

Source: llm_adapter@2026-05-22

Confidence: low

Other Medium

Make multi-disk EC balance disk-spread assertion deterministic.

Make multi-disk EC balance disk-spread assertion deterministic.

Source: llm_adapter@2026-05-22

Confidence: low

Other Medium

Deterministically populate disks before multi-disk EC balance check.

Deterministically populate disks before multi-disk EC balance check.

Source: llm_adapter@2026-05-22

Confidence: low

Other Medium

Fix race in TestReplicatedUploadSucceedsImmediatelyAfterAllocate.

Fix race in TestReplicatedUploadSucceedsImmediatelyAfterAllocate.

Source: llm_adapter@2026-05-22

Confidence: low

Full changelog

What's Changed

  • S3 API

    • fix(s3/audit): populate requester for GET/HEAD/IAM operations by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9581
    • fix(s3): sync IAM policies to advanced IAM Manager policy engine by @Mmx233 in https://github.com/seaweedfs/seaweedfs/pull/9577
    • fix(s3): keep server-side copy data in the bucket collection by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9607
    • fix(s3): list empty directories as directory markers by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9615
    • fix(s3api/list): cancel ListEntries stream in hasChildren by @MilanFun in https://github.com/seaweedfs/seaweedfs/pull/9617
  • Shell

  • fix(shell): volumeServer.evacuate no longer panics on a nil volume by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9587

  • Filer Sync

  • fix(filer.sync): keep sync_offset fresh while the source is read-only by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9589

  • Volume Server

    • fix(ec): pack EC shards onto fewer disks instead of refusing the task by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9588
    • fix(ec): correct multi-disk disk counting and EC balance shard attribution by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9594
    • test(ec): make multi-disk EC balance disk-spread assertion deterministic by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9595
    • fix(ec): bring ec.encode worker and EC/volume helpers to parity with shell by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9599
    • test(ec): deterministically populate disks before multi-disk EC balance check by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9611
    • Have volume scrubs account for zero-sized volumes. by @plisandro in https://github.com/seaweedfs/seaweedfs/pull/9609
    • test(volume): fix race in TestReplicatedUploadSucceedsImmediatelyAfterAllocate by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9613
    • fix(storage): surface stat error on zero-size idx scrub, mirror to rust by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9612
  • Filer

    • fix(filer): don't disable the SQL idle connection pool when unconfigured by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9591
    • fix(redis3): prevent filer crash from inconsistent skiplist ends by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9602
    • chore(skiplist): remove unused NameList/NameBatch implementation by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9603
  • Misc

    • Samba-over-FUSE integration test and distributed-lock handoff fixes by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9590
    • test: fix fd leak in the Samba DLM handoff test (promote xfail checks) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9592
    • feat(fix): rebuild lost EC index (.ecx) and .vif from local shards by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9596
  • Admin Server and Worker

    • fix(admin): carry filer addresses as ServerAddress in plugin cluster context by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9600
  • FUSE Mount

    • fix(filersink): return lock-free snapshot from ActiveTransfers by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9604
  • Master

    • master: accept volume-server Ping targets on follower masters by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9614
  • Docker, Helm Chart

    • fix(docker): restore executable bit on prebuilt weed-volume by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9616
    • feat(helm): add volume.rust toggle to run the Rust volume server by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/9618

New Contributors

  • @MilanFun made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/9617

Full Changelog: https://github.com/seaweedfs/seaweedfs/compare/4.27...4.28

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

Track seaweedfs

Get notified when new releases ship.

Sign up free

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.

All releases →

Related context

Earlier breaking changes

  • v4.24 Version 4.23 is unsafe with multiple disks when using erasure coding (EC).

Beta — feedback welcome: [email protected]