4.43

PaddlePaddle/PaddleSpeech4.43Aug 21, 2026by chrislusf

AI Summary

SeaweedFS 4.43 introduces significant S3 gateway improvements, Mount path optimizations, and upgrades the Go language version to 1.26.

Key Highlights

  • S3 gateway now stamps its own UID/GID on PutObject operations.
  • Mount path reading has been optimized to drop consumed entries and reuse paths.
  • Rust volume server now supports fsync and exposes health/metrics.
  • Fixed unrouted bucket subresource listing issues.
  • Go 1.26 language bump with compatibility fixes.

New Features

  • S3 gateway UID/GID stamping
  • Mount path optimization
  • Rust volume server fsync support
  • Rust volume server metrics
  • Go 1.26 upgrade

Full Release Notes

## What's Changed

## S3

* s3: stop unrouted bucket subresources from being answered with a listing by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10814
* S3: stamp the gateway's own uid/gid on PutObject and copy entries by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10844
* s3: place multipart part chunks by the destination object's storage rule by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10845
* s3: allow-unordered is a listing parameter, not an unimplemented subresource by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10846

## Filer

* filer: use bind variables for request-controlled values in the arangodb store by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10795
* filer: close the empty-folder race by checking after each mutation by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10799
* filer: stop remote.unmount from deleting the remote objects by @Koalk in https://github.com/seaweedfs/seaweedfs/pull/10811
* fix(filer): bound aggregated metadata reads by peer watermarks by @kisow in https://github.com/seaweedfs/seaweedfs/pull/10803

## Mount

* Recover from a dead volume server on the mount read path by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10798
* mount: drop consumed entries when reading a directory through by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10802
* mount: reuse the listed entry's path instead of rebuilding it by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10817
* mount: fold an inode's single link into its entry by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10818
* mount: move the inode table when a rename arrives from the cluster by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10822
* mount: index directory state by path by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10827
* mount: discard a path-cache insert that raced a purge by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10842

## Read path

* Re-look-up a chunk's locations as soon as they all fail by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10800
* Give the WebDav chunk reader a bounded, invalidatable location cache by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10801

## Volume server and topology

* Guard the gcs credential path in FetchAndWriteNeedle like the other backends by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10796
* volume: forward fsync=true to replicas in ReplicatedWrite by @sunchao6106 in https://github.com/seaweedfs/seaweedfs/pull/10805
* topology: refresh oversized mark on every heartbeat by @sunchao6106 in https://github.com/seaweedfs/seaweedfs/pull/10829

## Rust volume server

* rust: honor fsync on the volume server write path by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10816
* rust: stop writing when a durable write's index flush fails by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10825

## Lance catalog and plugin workers

* Lance catalog, and a Rust plugin worker to maintain it by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10841
* seaweed-worker: serve health, readiness and metrics by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10848
* metrics: graph the plugin workers by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10849
* mini: state the format of a -tableBucket, do not infer it by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10851

## gRPC

* Give the local Unix socket gRPC transport room to breathe by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10824

## Kubernetes

* Add monitoring label to filer servicemonitor by @slimes28 in https://github.com/seaweedfs/seaweedfs/pull/10835

## Go 1.26

* Fix what the Go 1.26 language bump breaks by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10794
* go 1.26 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10797

## Tests

* fix(test/s3/versioning): dropped test error by @alrs in https://github.com/seaweedfs/seaweedfs/pull/10813
* test(s3/versioning): read the whole version body instead of one Read by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10815
* test: drive the Lance namespace with LanceDB by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10850

## CI

* ci: fall through to another Ubuntu mirror when one is unreachable by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10828
* ci: install the runner's own packages through the mirror fallback too by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10831
* ci: build protoc into the crate instead of installing it per job by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10830
* ci: call the apt helper from the workflow's working directory by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10832
* ci: stop installing FUSE headers nothing links against by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10840

## Documentation

* readme: fold RustFS into the MinIO comparison by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10788

## Dependencies

* build(deps): bump golang.org/x/crypto from 0.54.0 to 0.55.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10786
* build(deps): bump github.com/aws/aws-sdk-go-v2 from 1.43.4 to 1.43.5 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10787
* build(deps): bump google.golang.org/api from 0.289.0 to 0.293.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10792
* build(deps): bump golang.org/x/net from 0.57.0 to 0.58.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10790
* build(deps): bump github.com/rabbitmq/amqp091-go from 1.11.0 to 1.13.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10791
* build(deps): bump go.etcd.io/etcd/client/v3 from 3.6.12 to 3.7.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10789

## New Contributors
* @Koalk made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/10811
* @sunchao6106 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/10805
* @slimes28 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/10835

**Full Changelog**: https://github.com/seaweedfs/seaweedfs/compare/4.42...4.43