9.0.6
Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible.
- GHSA-jcj7-v34w-v9vv: Fix a use-after-free in RDMA connection handling that could allow an authenticated client to crash the server using CLIENT KILL. Only affects servers built with USE_RDMA and configured with an RDMA listener (#4534)
- Fix crashes, assertion failures, and hangs when using RDMA together with IO threads by @quanyeyang (#3335)
- Fix a double free when a module timer callback stops its own timer with ValkeyModule_StopTimer by @quanyeyang (#4211)
- Fix torn RESP3 push frames when a client publishes a large message to a channel it is also subscribed to by @quanyeyang (#4253)
- RESET now clears CLIENT IMPORT-SOURCE state so reused pooled connections regain normal key expiration semantics by @tjade273 (#3973)
- Truncated AOF files now discard an incomplete MULTI block entirely, preventing loss of later writes after another restart by @chzhoo (#4342)
- Fix an ACL bypass in GEORADIUS and GEORADIUSBYMEMBER where duplicate STORE options checked only the first destination key by @tjade273 (#3971)
- Fix a use-after-free crash when a cluster message arrives for a message type registered by an unloaded module by @enjoy-binbin (#4360)
- Always deep-validate payloads on RDB load and RESTORE, preventing deferred assertion crashes; sanitize-dump-payload is now a deprecated no-op by @jjuleslasarte (#3721)
- Fix out-of-bounds memory access when registering or receiving cluster module messages of type 255, which is now a valid type by @enjoy-binbin (#4410)
- AOF loading no longer applies ACL checks, preventing silent data loss when replaying commands with a disabled default user by @lukepalmer (#3984)
- Fix a client memory accounting leak that inflated the mem_clients_normal INFO field on replicas after primary disconnects by @enjoy-binbin (#4395)
- Fix a permanent client hang when a blocking command such as BLPOP is pipelined with a partially received next command by @foobar (#4531)
- HGETEX now requires write permission on the key, so read-only ACL users can no longer change field TTLs or delete fields by @ranshid (#4576)
- Compare the full TLS certificate CN when authenticating, so an embedded NUL cannot impersonate a truncated ACL username by @madolson (#4577)
- Restore read performance with IO threads on TCP/TLS by applying extra read-completion handling only to RDMA connections by @quanyeyang (#4414)
- Restore write performance with IO threads on TCP/TLS by limiting post-write safety checks to RDMA connections by @quanyeyang (#4452)
- Fix atomic slot migration protocol errors with IO threads by not offloading export connection writes while snapshotting by @satheeshaGowda (#4104)
- Reject invalid slot import ranges when loading an RDB, preventing corrupted files from creating bad migration state by @enjoy-binbin (#4229)
- Reject RDB slot-import records with an invalid job name length, fixing an out-of-bounds read during startup by @quanyeyang (#4210)
- Fix a crash when COPY ends with a bare DB token during slot migration, and block cross-DB COPY regardless of option order by @madolson (#4301)
- HPERSIST, HTTL, HPTTL, HEXPIRETIME, and HPEXPIRETIME now return a syntax error when the FIELDS keyword is missing by @cjx-zar (#4300)
- Fix a TLS and IO threads race that could leave slot migration export jobs stuck until timeout by @jjuleslasarte (#4320)
- Fix a server crash when hash field expirations are set near the maximum timestamp, for example via HPEXPIREAT by @ranshid (#4312)
- Fix a stack overflow crash on TLS connections when retrying a failed write of large replies by @murphyjacob4 (#4307)
- Validate cluster bus PUBLISH and MODULE packet payload lengths, preventing a remote crash from forged length fields by @tjade273 (#3972)
- Fix a use-after-free crash when serving blocked clients if handling one client frees another blocked on the same key by @quanyeyang (#4212)
- Fix a server panic with IO threads when pipelined commands with a wrong number of arguments reached the key prefetcher by @madolson (#4302)
- Reject crafted stream RESTORE and RDB payloads with inconsistent lengths or negative field counts that could crash the server by @madolson (#3922)
- Reject stream payloads with mismatched live and deleted entry counts that could make XDEL destroy live entries by @roshkhatri (#4381)
- Fix CLUSTER SLOT-STATS ORDERBY returning wrong ordering once cumulative slot counters differ by more than 2^31 by @jzy1688 (#4459)
- Fix atomic slot migration failures with TLS and IO threads by not offloading export connection reads while snapshotting by @satheeshaGowda (#4559)
Full Changelog: https://github.com/valkey-io/valkey/compare/9.0.5...9.0.6
9.1.2
Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible.
- GHSA-jcj7-v34w-v9vv: Fix a use-after-free in RDMA connection handling that could allow an authenticated client to crash the server using CLIENT KILL. Only affects servers built with USE_RDMA and configured with an RDMA listener (#4534)
- GHSA-fq2f-crmw-q97r: Fix an unauthenticated use-after-free of the Lua interpreter state, caused by a process-global script debugger command table that cached a raw pointer to a freed interpreter and was never invalidated (#4574)
- Fix a double-free crash when a module timer callback stops its own timer with
ValkeyModule_StopTimerby @quanyeyang (#4211) - Fix torn RESP3 push frames when a client publishes to a channel it is also subscribed to, which could desync client libraries by @quanyeyang (#4253)
- Listpacks are now always validated on RDB load and RESTORE, preventing deferred assertion crashes;
sanitize-dump-payloadand its ACL flags become no-ops by @jjuleslasarte (#3721) - Fix crashes, hangs, and CPU spinning when the RDMA transport is used together with I/O threads by @quanyeyang (#3611)
- RESET now clears the
CLIENT IMPORT-SOURCEflag, so reused pooled connections return to normal expiration semantics by @tjade273 (#3973) - Truncate a partially written MULTI block from the AOF on short read, preventing loss of newer writes after a later restart by @chzhoo (#4342)
- Fix an ACL bypass where duplicate STORE/STOREDIST options let GEORADIUS write or delete keys outside the user's permitted patterns by @tjade273 (#3971)
- Fix command log redaction leaking between commands in a MULTI transaction and missing for commands executed from scripts by @madolson (#4323)
- Fix a use-after-free crash when a module's cluster message type is received after the module is unloaded by @enjoy-binbin (#4360)
- Fix out-of-bounds access for cluster module message type 255, which is now a valid, dispatchable message type by @enjoy-binbin (#4410)
- AOF loading no longer performs ACL checks on replayed commands, preventing silent data loss when the default user is disabled by @lukepalmer (#3984)
- Fix a client memory accounting leak on replicas that inflated the
mem_clients_normalINFO field after primary disconnections by @enjoy-binbin (#4395) - Fix a permanent client deadlock when a blocking command like BLPOP is followed by a partially delivered pipelined command by @foobar (#4531)
- HGETEX now requires write permission on the key, closing an ACL gap that let read-only users change field TTLs or delete fields by @ranshid (#4576)
- Compare the whole TLS certificate CN during authentication, so an embedded NUL can no longer impersonate another ACL user by @madolson (#4577)
- Fix atomic slot migration failures with I/O threads by not offloading the export job's writes while snapshotting by @satheeshaGowda (#4104)
- Reject invalid slot import ranges when loading an RDB, so corrupted files can no longer create bad migration jobs by @enjoy-binbin (#4229)
- Reject RDB slot import records with an invalid job name length, preventing an out-of-bounds read at startup by @quanyeyang (#4210)
- MOVE and COPY now check ACL access to the current database, so users can no longer exfiltrate keys from an unauthorized DB by @cjx-zar (#4155)
- Fix a crash on COPY with a trailing DB option during slot migration, and block cross-DB COPY regardless of option order by @madolson (#4301)
- Fix a server panic when pipelined commands with invalid arity reach the key prefetcher with I/O threads enabled by @madolson (#4302)
- HPERSIST, HTTL, HPTTL, HEXPIRETIME, and HPEXPIRETIME now return a syntax error when the FIELDS keyword is missing by @cjx-zar (#4300)
- Fix a race between TLS I/O-thread writes and reads that could leave slot migration export jobs stuck until timeout by @jjuleslasarte (#4320)
- Fix a signed overflow that let very large hash field expiration times (e.g. via HPEXPIREAT) crash the server by @ranshid (#4312)
- Fix a frozen monotonic clock on hosts with unsynchronized TSC that stopped background tasks and key expiration by @quanyeyang (#4346)
- Fix a stack overflow crash when retrying a failed TLS write with a large reply by @murphyjacob4 (#4307)
- Fix the
--check-systemclocksource check to skip hosts using a hardware clock and suggest only actually available clocksources by @quanyeyang (#4272) - Fix an assertion failure with I/O threads when a blocked client's pending command was processed again before unblocking by @quanyeyang (#4376)
- Sentinel no longer loads the built-in Lua scripting engine, removing a spurious warning at startup by @enjoy-binbin (#4327)
- Validate channel, message, and module payload lengths in cluster bus packets, preventing forged packets from crashing nodes by @tjade273 (#3972)
- Harden stream validation on RDB load and RESTORE so crafted payloads can no longer crash the server on later commands by @madolson (#3922)
- Reject stream payloads with mismatched live/deleted record counts, preventing XDEL from destroying unaccounted entries by @roshkhatri (#4381)
- Skip unnecessary post-read processing with I/O threads on socket and TLS connections, restoring small-payload throughput by @quanyeyang (#4401)
- Fix a use-after-free crash when serving clients blocked on the same key if one client is freed during processing by @quanyeyang (#4212)
- Avoid an unneeded client lookup per write completion with I/O threads on socket and TLS connections, improving pipelined throughput by @dgershko (#4440)
- Fix CLUSTER SLOT-STATS ORDERBY returning wrong ordering when slot counters differ by more than 2^31 by @jzy1688 (#4459)
- Fix slot migration failures with I/O threads and TLS by keeping the export job's ACK reads on the main thread while snapshotting by @satheeshaGowda (#4559)
Full Changelog: https://github.com/valkey-io/valkey/compare/9.1.1...9.1.2
8.0.11
Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible.
- GHSA-jcj7-v34w-v9vv: Fix a use-after-free in RDMA connection handling that could allow an authenticated client to crash the server using CLIENT KILL. Only affects servers built with USE_RDMA and configured with an RDMA listener (#4534)
- Fix a double-free crash when a module timer callback stops its own timer with
ValkeyModule_StopTimerby @quanyeyang (#4211) - Fix AOF truncation after a partially persisted MULTI/EXEC block so writes made after recovery are not lost on a later restart by @chzhoo (#4342)
- Fix an ACL bypass where duplicate STORE/STOREDIST options in GEORADIUS commands let users write keys outside their permitted patterns by @tjade273 (#3971)
- Fix a use-after-free crash when a cluster message for a module-registered type arrives after the module is unloaded by @enjoy-binbin (#4360)
- Fix out-of-bounds access on cluster module messages of type 255, which is now a valid message type by @enjoy-binbin (#4410)
- Fix silent data loss where ACL checks were wrongly applied to commands replayed from the AOF file by @lukepalmer (#3984)
- Fix a client memory accounting leak that inflated the
mem_clients_normalINFO field on replicas by @enjoy-binbin (#4395) - Always deep-validate listpack payloads on RDB load and RESTORE, preventing deferred assertion crashes;
sanitize-dump-payloadis deprecated and now a no-op by @jjuleslasarte (#3721) - Fix module
VM_Yieldtiming so repeated yields honorbusy-reply-thresholdinstead of the server hz interval by @PingXie (#2131) - Fix a stack overflow crash when a large TLS write is retried after an OpenSSL write error by @murphyjacob4 (#4307)
- Fix a crash caused by forged cluster bus PUBLISH or MODULE packets carrying oversized payload length fields by @tjade273 (#3972)
- Reject crafted stream payloads in RDB load and RESTORE whose length or field-count metadata is inconsistent, preventing later server panics by @madolson (#3922)
- Fix a cluster link disconnect loop after network failures that caused pub/sub messages between nodes to be lost by @dvkashapov (#2817)
- Fix a use-after-free crash when a client blocked on a key is freed while other clients blocked on the same key are being served by @quanyeyang (#4212)
- Reject crafted stream payloads that misstate live and deleted record counts, preventing data loss on XDEL by @roshkhatri (#4381)
- Fix incorrect
CLUSTER SLOT-STATS ORDERBYordering when slot statistics differ by more than 2^31 by @jzy1688 (#4459)
Full Changelog: https://github.com/valkey-io/valkey/compare/8.0.10...8.0.11
4.45
- helm: install chart CI against an image tag that exists by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10877
- Ship the Rust maintenance worker with the release by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10879
- Build the Rust worker against the protoc that ships with the build by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10881
- install.sh: install the Rust maintenance worker by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10882
- admin: add visual iam policy editor by @mat813 in https://github.com/seaweedfs/seaweedfs/pull/10878
- build(deps): bump github.com/moby/go-archive from 0.2.0 to 0.3.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10826
- admin: count plugin-runtime workers in worker metrics by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/10884
- s3api: retry a transient failure when listing multipart uploads/parts (RFC on layering) by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/10886
- admin: stop the maintenance scanner pinning itself to one scan per second after a transient failure by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/10887
- s3api: retry a transient filer failure on metadata listings by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10890
- test: wait for volume server registration in the FUSE DLM harness by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10891
- test: keep per-test log directories in the FUSE DLM harness by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10893
- test: wait for volume server registration in the FUSE p2p harness by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10897
- server: reject a Range start offset equal to the file size by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/10898
- mount: use the kernel-resolved node id in Link, not the persisted attribute by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/10885
- master: never re-seed a raft cluster over committed state under -raftBootstrap by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10883
- server: 416 only when no requested range overlaps, with Content-Range, and the Rust mirror by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10889
- telemetry: confirm a cluster after a week of reports, not two days by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10899
- s3api: no filer failover after the callback has consumed part of a response by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10902
- master: don't let a dead KeepConnected handler close its successor's channel by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10900
- s3: confine a Lance catalog table location to the caller's own bucket by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10901
- ec: refund the cleared leftover shards' slots in the encode source health check by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10903
- telemetry: let the dashboard pick the confirmation window by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10904
- s3: propagate storage rule fsync to volume server uploads by @sunchao6106 in https://github.com/seaweedfs/seaweedfs/pull/10906
- Manage bucket policies via the admin ui by @mat813 in https://github.com/seaweedfs/seaweedfs/pull/10895
- admin: honor a persisted or admin.toml maintenance enabled=false by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10909
- Fixes from the review of the admin bucket policy UI by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10907
- ec: read a needle's intervals in parallel by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10911
- mini: reserve the admin gRPC port instead of binding it late by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10928
- S3: let a key that is a prefix of other keys be an object by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10912
- Bump Tarantool client library from 3.0.0 to 3.0.1 by @MaratKarimov in https://github.com/seaweedfs/seaweedfs/pull/10925
- tarantool: fix upsert data corruption and missing context propagation by @MaratKarimov in https://github.com/seaweedfs/seaweedfs/pull/10926
- build(deps): bump github/codeql-action from 4.37.6 to 4.37.8 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10923
- build(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10922
- build(deps): bump github.com/rabbitmq/amqp091-go from 1.13.0 to 1.14.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10920
- build(deps): bump cloud.google.com/go/pubsub from 1.51.0 to 1.51.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10919
- build(deps): bump github.com/shirou/gopsutil/v4 from 4.26.6 to 4.26.7 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10918
- build(deps): bump github.com/seaweedfs/goexif from 1.0.3 to 2.0.0+incompatible by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10917
- S3: commit GET status only after the first read succeeds by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10930
- helm: expose loadBalancerClass, loadBalancerIP, loadBalancerSourceRanges on services by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10929
- S3: commit SSE GET status only after the first read succeeds by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10935
- s3: log each request at -v=2 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10931
- admin: show a copyable S3 object URL in the bucket file browser by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10933
- filer.backup, filer.sync: stop sharing resume checkpoints across destinations by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10934
- helm: serve the Lance catalog and deploy the Rust worker by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10936
- helm: trim the Lance chart comments by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10940
- mount: register UNC mount points as WinFsp network file systems by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10943
- build(deps): bump github.com/getsentry/sentry-go from 0.44.1 to 0.48.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10921
- filer: stop TUS uploads from turning into garbage by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10945
- s3: stop one abandoned request from cancelling every concurrent upload by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10948
- master: stop hintless small-file assigns from marking volumes full by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10944
- volume: stop read-only volumes from pinning .idx and .sdx by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10950
- filter volume by local or remote storage name by @27149chen in https://github.com/seaweedfs/seaweedfs/pull/10946
- admin: accept a list of collections in the task collection filter by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10953
- rust volume: search .sdx for read-only volumes instead of holding the index by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10951
- s3: deny anonymous access when the identity config loads no identities by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10954
- shell: parse every collection filter the same way by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10955
- mount: name the disk after the mounted path by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10958
- rust volume: fail closed on sorted-index failures and reconcile tier-up by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10956
- master: cap the reported capacity at what the disks hold by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10960
- filer: apply the path's storage rule TTL on every write path by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10963
- mount: stop a replaced rename destination from flushing over the rename by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10965
- rust volume: stop racing the clock in torn_sdx_is_regenerated by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10966
- s3: fix UploadPartCopy with volume-data encryption by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10971
- s3: keep verifying the request host when externalUrl is set by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10970
- mount: let a rename remove its source at the source's own version by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10973
- volume: resolve the disk IO slow-latency threshold per disk by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10976
- s3: keep a missing object a 404 under If-Match and If-Unmodified-Since by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10985
- webdav: describe a listed entry the way clients expect by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10993
- mount: keep metadata operations working on an unlinked open file by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10989
- Authorize an Iceberg table create before it writes by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10991
- filer, s3: reuse the volume server's guarded remote-storage client builder by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10990
- s3tables: delete only the location the dropped table owns by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10986
- s3: cover the directory marker key with object lock by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10988
- shell: remove the directories emptied by volume.fsck's filer entry purge by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10992
- s3: reject a request that names two operations by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10987
- volume: cut the memory a server holding millions of volumes still uses by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10999
- s3: distinguish a failed bucket lookup from a missing bucket on HEAD by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11000
- wdclient: bound the wait for a master leader by the caller's context by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11002
- s3: share one retry allowance across a batch delete by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11001
- Report a delete the filer rejected instead of answering success by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11003
- Classify a filer error before a user-controlled path is wrapped into it by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11004
- Let filer.sync move past a chunk the source cluster no longer has by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11019
- Bound the memory an EC shard recovery holds by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11020
- Read metadata log chunks the way the mount reads every other chunk by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11018
- s3: replay a delete whose reply the transport dropped by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11022
- mount: implement fallocate by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11021
- Re-check an EC shard map a failed read has disproved by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11023
- ec: split the shard-interval recovery into a gather and a rebuild by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11005
- s3: an abort answered mid-part no longer leaves the upload completable by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11025
- master, filer, s3api: bound the collection deletes that strand a caller by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11026
- ec: scrub a volume through its parity data by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11006
- rust: cover the READS scrub reconstruction path by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11027
- filter by volume ids by @27149chen in https://github.com/seaweedfs/seaweedfs/pull/10983
- ec: uniform shard block layout by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10932
- fix: Move cluster.LiveLock.generation to first field fix 32bit alignment by @baalimago in https://github.com/seaweedfs/seaweedfs/pull/11028
- ec: pin auto-selected shard placement to the disk that already owns the shard by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11029
- ec: refuse to mount a 0-byte shard file when the index has entries by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11030
- master: shed assigns retryably until volume servers register capacity by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11032
- mq: fix idle-cleanup shard deadlock that permanently wedges the broker's topic map by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11051
- get volume topology info without volume details by @27149chen in https://github.com/seaweedfs/seaweedfs/pull/11036
- build(deps): bump github.com/ydb-platform/ydb-go-sdk/v3 from 3.147.1 to 3.151.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11041
- build(deps): bump modernc.org/sqlite from 1.56.0 to 1.57.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11042
- build(deps): bump github/codeql-action from 4.37.8 to 4.37.9 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11045
- build(deps): bump actions/setup-java from 5 to 6 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11047
- build(deps): bump github.com/aws/aws-sdk-go-v2 from 1.43.5 to 1.45.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11046
- build(deps): bump google.golang.org/api from 0.293.0 to 0.294.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11044
- build(deps): bump google.golang.org/grpc from 1.84.0-dev.0.20260723093437-b6eac429d7b6 to 1.85.0-dev by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11043
- sts: session duration no longer clamped to the web identity token exp by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11048
- shell: keep fs.mergeVolumes from spinning past the finished moves by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11050
- s3: let attached policies authorize CreateBucket by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11049
- shell: keep noLock to the command that set it by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11052
- @junkerderprovinz made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/10884
- @baalimago made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11028
Full Changelog: https://github.com/seaweedfs/seaweedfs/compare/4.44...4.45
8.1.10
Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible.
- GHSA-jcj7-v34w-v9vv: Fix a use-after-free in RDMA connection handling that could allow an authenticated client to crash the server using CLIENT KILL. Only affects servers built with USE_RDMA and configured with an RDMA listener (#4534)
- Fix a double free when a module timer callback stops its own timer with
ValkeyModule_StopTimerby @quanyeyang (#4211) - RESET now clears the
CLIENT IMPORT-SOURCEflag so reused pooled connections stop reading logically expired keys by @tjade273 (#3973) - Fix AOF recovery of a truncated MULTI/EXEC block that could cause new writes to be lost after a subsequent restart by @chzhoo (#4342)
- Fix an ACL bypass where duplicate STORE/STOREDIST options in GEORADIUS commands escaped key write permission checks by @tjade273 (#3971)
- Fix a use-after-free crash when a cluster message of a module-registered type arrives after the module is unloaded by @enjoy-binbin (#4360)
- Fix out-of-bounds access when registering or receiving cluster module messages of type 255, which is now fully supported by @enjoy-binbin (#4410)
- Skip ACL permission checks when replaying the AOF, preventing silent data loss when users are restricted or disabled by @lukepalmer (#3984)
- Fix a client memory accounting leak that inflated
mem_clients_normalon replicas after disconnecting from the primary by @enjoy-binbin (#4395) - Always validate listpacks on RDB load and RESTORE to prevent deferred crashes;
sanitize-dump-payloadand the related ACL flags are now deprecated no-ops by @jjuleslasarte (#3721) - Fix a stack overflow crash when retrying large TLS writes after an OpenSSL write error by @murphyjacob4 (#4307)
- Validate PUBLISH and MODULE cluster bus packet lengths, preventing a crash from forged packets with oversized payload lengths by @tjade273 (#3972)
- Reject crafted stream RESTORE/RDB payloads with inconsistent lengths or negative field counts that could crash the server by @madolson (#3922)
- Fix a use-after-free crash when serving multiple clients blocked on the same key if one is freed during processing by @quanyeyang (#4212)
- Fix CLUSTER SLOT-STATS ORDERBY sorting when slot statistics differ by more than 2^31 by @jzy1688 (#4459)
Full Changelog: https://github.com/valkey-io/valkey/compare/8.1.9...8.1.10
RustFS 1.0.0-rc.5-preview.2 (preview)
- ci: add RustFS 4x4 performance test workflow and scripts by @majinghe in https://github.com/rustfs/rustfs/pull/6752
- test(heal): relative disk target and fail fast on terminal-but-short by @majinghe in https://github.com/rustfs/rustfs/pull/6748
- test(table-catalog): generate DuckDB REST attach SQL by @GatewayJ in https://github.com/rustfs/rustfs/pull/6749
- test(table-catalog): automate DuckDB REST conformance by @GatewayJ in https://github.com/rustfs/rustfs/pull/6750
- ci: use dedicated RUSTFS_PERF_NODES for performance test by @majinghe in https://github.com/rustfs/rustfs/pull/6754
- fix(api): preserve server-side storage error surface by @houseme in https://github.com/rustfs/rustfs/pull/6753
- refactor(ecstore): extract shared audit/notify KVS table constructors by @overtrue in https://github.com/rustfs/rustfs/pull/6756
- refactor(ecstore): extract shared warm backend S3 constructor by @overtrue in https://github.com/rustfs/rustfs/pull/6755
- refactor(concurrency): consolidate ForegroundPressure into workload owner by @overtrue in https://github.com/rustfs/rustfs/pull/6757
- refactor(s3-client): reuse rustfs-utils header classification instead of duplicating it by @overtrue in https://github.com/rustfs/rustfs/pull/6758
- refactor(rustfs): consolidate bucket metadata import match arms by @overtrue in https://github.com/rustfs/rustfs/pull/6760
- refactor(lifecycle): reuse the replication tag parser by @overtrue in https://github.com/rustfs/rustfs/pull/6761
- fix(deps): move off the yanked chacha20 0.10.1 by @overtrue in https://github.com/rustfs/rustfs/pull/6768
- refactor(ecstore,rustfs): reuse canonical starts_with_ignore_ascii_case by @overtrue in https://github.com/rustfs/rustfs/pull/6759
- chore(tier): remove dead trailing_headers config from warm backends by @overtrue in https://github.com/rustfs/rustfs/pull/6762
- fix(tier): validate outbound URLs for all warm backend providers by @overtrue in https://github.com/rustfs/rustfs/pull/6764
- fix(s3): round-trip null-version delete-marker identity by @overtrue in https://github.com/rustfs/rustfs/pull/6765
- test(e2e): finish the helper consolidation onto common.rs by @overtrue in https://github.com/rustfs/rustfs/pull/6766
- fix(startup): never panic when the system CA bundle is absent by @overtrue in https://github.com/rustfs/rustfs/pull/6769
- fix(test): restore #[serial] markers the fallback runner still needs by @overtrue in https://github.com/rustfs/rustfs/pull/6767
- docs(agents): make branch naming identity-neutral by @GatewayJ in https://github.com/rustfs/rustfs/pull/6772
- docs: fix Getting Started links by @teyfix in https://github.com/rustfs/rustfs/pull/6782
- fix(ci): restore tier e2e and locked builds by @overtrue in https://github.com/rustfs/rustfs/pull/6773
- fix(storage): gate multipart upload part pressure by @houseme in https://github.com/rustfs/rustfs/pull/6781
- test(pool): abort stale multipart uploads before decommission by @majinghe in https://github.com/rustfs/rustfs/pull/6771
- refactor(ecstore): migrate audit.rs default KVS tables to shared constructors by @overtrue in https://github.com/rustfs/rustfs/pull/6777
- refactor(ecstore): migrate notify.rs default KVS tables to shared constructors by @overtrue in https://github.com/rustfs/rustfs/pull/6778
- fix(ci): sync Linux full E2E selection by @overtrue in https://github.com/rustfs/rustfs/pull/6787
- perf(storage): optimize small-object GET/PUT paths by @houseme in https://github.com/rustfs/rustfs/pull/6770
- refactor(ecstore): migrate data movement backpressure to shared ForegroundPressure by @overtrue in https://github.com/rustfs/rustfs/pull/6779
- docs(kms): reconcile bulk-rekey contract with the shipped sweep by @reatang in https://github.com/rustfs/rustfs/pull/6783
- refactor(heal): migrate mainline throttle to shared ForegroundPressure by @overtrue in https://github.com/rustfs/rustfs/pull/6780
- chore(deps): update s3s revision by @houseme in https://github.com/rustfs/rustfs/pull/6795
- fix(s3): preserve atomic 1 MiB conditional writes by @overtrue in https://github.com/rustfs/rustfs/pull/6798
- refactor(ecstore): migrate aliyun/azure warm backends to shared S3 constructor by @overtrue in https://github.com/rustfs/rustfs/pull/6774
- fix(sse): diagnose unresolvable encrypted metadata on reads by @reatang in https://github.com/rustfs/rustfs/pull/6784
- fix(site-replication): send the reverse-reachability probe as POST by @reatang in https://github.com/rustfs/rustfs/pull/6790
- fix(iam): stop stamping the wall clock on policy-less group reads by @reatang in https://github.com/rustfs/rustfs/pull/6791
- fix(heal): skip dangling delete grace failures by @houseme in https://github.com/rustfs/rustfs/pull/6799
- test(e2e): restore tier and inline full-suite checks by @overtrue in https://github.com/rustfs/rustfs/pull/6794
- refactor(ecstore): migrate huaweicloud/tencent warm backends to shared S3 constructor by @overtrue in https://github.com/rustfs/rustfs/pull/6775
- fix(s3-client): rename-align CommonPrefix for tier in-use XML parsing by @overtrue in https://github.com/rustfs/rustfs/pull/6805
- Extend functional test workflow with S3/KMS/tier suites by @majinghe in https://github.com/rustfs/rustfs/pull/6806
- refactor(ecstore): migrate minio/r2/rustfs warm backends to shared S3 constructor by @overtrue in https://github.com/rustfs/rustfs/pull/6776
- fix(site-replication): rotate-svc-acct no longer wedges replication by @reatang in https://github.com/rustfs/rustfs/pull/6793
- fix(tier): harden reference proof and audit output by @houseme in https://github.com/rustfs/rustfs/pull/6807
- fix(ecstore): move conditional PUT lock to commit-time recheck by @reatang in https://github.com/rustfs/rustfs/pull/6801
- fix(ci): pass --repo to gh release delete in preview cleanup by @overtrue in https://github.com/rustfs/rustfs/pull/6810
- fix(data-usage): preserve cold buckets in partial admin usage by @houseme in https://github.com/rustfs/rustfs/pull/6811
- fix(ecstore): reject Azure tier storageClass/spAuth instead of silently ignoring them by @overtrue in https://github.com/rustfs/rustfs/pull/6817
- perf(ecstore): optimize bounded small-object GET paths by @houseme in https://github.com/rustfs/rustfs/pull/6808
- fix(ecstore): document audit/notify KVS divergence and fix auth_token redaction by @overtrue in https://github.com/rustfs/rustfs/pull/6816
- fix(version): do not bump version when HEAD equals latest tag by @cuishuang in https://github.com/rustfs/rustfs/pull/6828
- fix: provide cross-repo token for auto-testing checkout by @majinghe in https://github.com/rustfs/rustfs/pull/6831
- fix(logging): bound ECStore debug output by @houseme in https://github.com/rustfs/rustfs/pull/6809
- fix(ecstore): tier force removal bypasses lifecycle reference check by @overtrue in https://github.com/rustfs/rustfs/pull/6835
- fix(heal): bound read-repair object commit locks by @houseme in https://github.com/rustfs/rustfs/pull/6839
- fix(replication): keep versionId on version-purge delete replication by @reatang in https://github.com/rustfs/rustfs/pull/6841
- fix(replication): surface failed objects and abort orphaned uploads by @reatang in https://github.com/rustfs/rustfs/pull/6840
- ci: upload performance report to rustfs/dashboard reports/YYYY-MM-DD.md by @majinghe in https://github.com/rustfs/rustfs/pull/6843
- ci: make MQTT broker setup deterministic in functional test suite by @majinghe in https://github.com/rustfs/rustfs/pull/6837
- fix(kms): restore persisted configuration after restart by @reatang in https://github.com/rustfs/rustfs/pull/6821
- fix(s3): return BadDigest for Content-MD5 mismatch by @overtrue in https://github.com/rustfs/rustfs/pull/6842
- fix: remove redundant --repo flag in preview release cleanup by @majinghe in https://github.com/rustfs/rustfs/pull/6847
- ci: pass package selector to test run steps (fix rc.3 fallback) by @majinghe in https://github.com/rustfs/rustfs/pull/6846
- fix(s3): accept empty put without content length by @houseme in https://github.com/rustfs/rustfs/pull/6849
- fix(ci): split workflows and add perf version reporting by @majinghe in https://github.com/rustfs/rustfs/pull/6848
- fix(s3select): return encryption response headers by @GatewayJ in https://github.com/rustfs/rustfs/pull/6819
- test(s3select): cover SelectRequest XML root alias by @GatewayJ in https://github.com/rustfs/rustfs/pull/6820
- feat(nix): add NixOS service module and client package by @houseme in https://github.com/rustfs/rustfs/pull/6856
- feat(admin): expose remote target credential capability state by @cxymds in https://github.com/rustfs/rustfs/pull/6857
- fix(scanner): retain usage across transient peer failures by @houseme in https://github.com/rustfs/rustfs/pull/6859
- fix(ecstore): keep 1MiB GET off mid-size reader by @houseme in https://github.com/rustfs/rustfs/pull/6861
- fix(ecstore): classify system metadata failures by @houseme in https://github.com/rustfs/rustfs/pull/6862
- perf(put): adapt eager threshold to concurrency by @houseme in https://github.com/rustfs/rustfs/pull/6863
- perf(ecstore): converge disk metric atomic loads by @houseme in https://github.com/rustfs/rustfs/pull/6866
- fix(scanner): bound publication proof retries on main by @houseme in https://github.com/rustfs/rustfs/pull/6870
- feat(replication): support temporary target credentials by @cxymds in https://github.com/rustfs/rustfs/pull/6860
- fix(ecstore): require durable decommission ledger format by @cxymds in https://github.com/rustfs/rustfs/pull/6871
- perf(ecstore): reuse local fd metadata snapshots by @houseme in https://github.com/rustfs/rustfs/pull/6868
- fix(scanner): own publication mutations through storage drain by @houseme in https://github.com/rustfs/rustfs/pull/6867
- fix(admin): version remote target credential capabilities by @cxymds in https://github.com/rustfs/rustfs/pull/6876
- fix(ci): refresh Linux full E2E selection by @overtrue in https://github.com/rustfs/rustfs/pull/6875
- fix(test): serialize transition matrix tests under nextest by @overtrue in https://github.com/rustfs/rustfs/pull/6874
- fix(ci): stabilize tier MQTT bootstrap on shared runner by @majinghe in https://github.com/rustfs/rustfs/pull/6877
- feat(s3select): report uncompressed input byte metrics by @GatewayJ in https://github.com/rustfs/rustfs/pull/6865
- chore(deps): update flake.lock by @houseme in https://github.com/rustfs/rustfs/pull/6880
- perf(ecstore): gate GET metadata timing when metrics off by @houseme in https://github.com/rustfs/rustfs/pull/6879
- feat(table-catalog): vend credentials from LoadTable by @GatewayJ in https://github.com/rustfs/rustfs/pull/6878
- feat(s3select): expand typed JSON source paths by @GatewayJ in https://github.com/rustfs/rustfs/pull/6864
- perf(ecstore): gate quorum-aware GET early stop by @houseme in https://github.com/rustfs/rustfs/pull/6885
- test(ci): refresh cluster nightly selection by @houseme in https://github.com/rustfs/rustfs/pull/6886
- test(ecstore): cover multipart snapshot overwrite race by @houseme in https://github.com/rustfs/rustfs/pull/6887
- fix(ecstore): preserve parity reserves for data-only GET by @houseme in https://github.com/rustfs/rustfs/pull/6888
- docs(security): add unsigned presign header lesson by @overtrue in https://github.com/rustfs/rustfs/pull/6894
- test(s3): promote passing compatibility cases by @overtrue in https://github.com/rustfs/rustfs/pull/6891
- fix(admin): replicate user secret-key rotation to peer sites by @reatang in https://github.com/rustfs/rustfs/pull/6893
- perf(ecstore): reuse prepared metadata across pools by @houseme in https://github.com/rustfs/rustfs/pull/6889
- fix(replication): retry failed multipart aborts on bounded backoff by @reatang in https://github.com/rustfs/rustfs/pull/6897
- fix(scanner): unblock quota usage baseline on never-converged sites by @reatang in https://github.com/rustfs/rustfs/pull/6896
- docs(architecture): reconcile generation contract by @houseme in https://github.com/rustfs/rustfs/pull/6901
- feat(s3-tables): support object-backed table rename by @GatewayJ in https://github.com/rustfs/rustfs/pull/6899
- perf(ecstore): consolidate non-inline read planning by @houseme in https://github.com/rustfs/rustfs/pull/6892
- test(e2e): cover four-node four-drive cluster topology by @houseme in https://github.com/rustfs/rustfs/pull/6902
- fix(replication): verify replica integrity and default to plain signed payloads by @reatang in https://github.com/rustfs/rustfs/pull/6895
- fix(rpc): reject unsigned v2 control mutations by @houseme in https://github.com/rustfs/rustfs/pull/6905
- fix(replication): surface object-lock denied purges and back off heal retries by @reatang in https://github.com/rustfs/rustfs/pull/6900
- perf(get): release disk permits for buffered bodies by @houseme in https://github.com/rustfs/rustfs/pull/6906
- test(ecstore): prove in-flight prefetch cancellation by @houseme in https://github.com/rustfs/rustfs/pull/6904
- test(e2e): route cluster volume endpoints through fault proxy by @houseme in https://github.com/rustfs/rustfs/pull/6909
- test(perf): align GET attribution harness with backlog 2093 by @houseme in https://github.com/rustfs/rustfs/pull/6912
- perf(ecstore): reuse prepared Select metadata by @houseme in https://github.com/rustfs/rustfs/pull/6911
- fix(ecstore): fail closed on unverifiable data quorum by @houseme in https://github.com/rustfs/rustfs/pull/6903
- fix(scanner): recover legacy empty usage floor by @houseme in https://github.com/rustfs/rustfs/pull/6914
- fix(ecstore): supervise decommission worker recovery by @overtrue in https://github.com/rustfs/rustfs/pull/6908
- test(e2e): exercise cluster volume fault proxy by @houseme in https://github.com/rustfs/rustfs/pull/6919
- docs: register persisted XML compatibility cleanup by @overtrue in https://github.com/rustfs/rustfs/pull/6918
- test(ecstore): pin default bucket config bytes by @overtrue in https://github.com/rustfs/rustfs/pull/6920
- fix(scanner): preserve cache cycle during usage recovery by @houseme in https://github.com/rustfs/rustfs/pull/6921
- fix(ci): keep functional workflow chain running after failures by @majinghe in https://github.com/rustfs/rustfs/pull/6926
- test(ecstore): add targeted refresh-loss harness by @houseme in https://github.com/rustfs/rustfs/pull/6924
- fix(scanner): persist decommission catch-up debt by @overtrue in https://github.com/rustfs/rustfs/pull/6922
- test(replication): bind writable paths to DTO fields by @overtrue in https://github.com/rustfs/rustfs/pull/6923
- test(ecstore): pin bucket metadata rollback reads by @overtrue in https://github.com/rustfs/rustfs/pull/6928
- test(admin): prove backup import rollback compatibility by @overtrue in https://github.com/rustfs/rustfs/pull/6929
- fix(ecstore): fence snapshot stream polls on lock loss by @houseme in https://github.com/rustfs/rustfs/pull/6930
- fix(ecstore): recover late parity after exact quorum by @houseme in https://github.com/rustfs/rustfs/pull/6927
- test(ecstore): make heal rename fixture deterministic by @houseme in https://github.com/rustfs/rustfs/pull/6934
- test(ecstore): stabilize tier recovery cursor fixture by @houseme in https://github.com/rustfs/rustfs/pull/6935
- fix(admin): preserve raw XML in metadata backups by @overtrue in https://github.com/rustfs/rustfs/pull/6936
- perf(ecstore): retry degraded GET with late parity by @houseme in https://github.com/rustfs/rustfs/pull/6933
- feat(s3select): support compressed CSV and JSON input by @GatewayJ in https://github.com/rustfs/rustfs/pull/6915
- feat(table-catalog): update object namespace properties by @GatewayJ in https://github.com/rustfs/rustfs/pull/6815
- feat(s3select): schedule streaming progress events by @GatewayJ in https://github.com/rustfs/rustfs/pull/6913
- chore(capacity): update default refresh tuning by @houseme in https://github.com/rustfs/rustfs/pull/6938
- fix(ci): continue functional chain and publish heal/pool reports by @majinghe in https://github.com/rustfs/rustfs/pull/6932
- fix(ecstore): reserve decommission capacity safely by @overtrue in https://github.com/rustfs/rustfs/pull/6917
- fix(ecstore): complete decommission capacity recovery by @overtrue in https://github.com/rustfs/rustfs/pull/6949
- fix(ecstore): finalize decommission capacity recovery by @overtrue in https://github.com/rustfs/rustfs/pull/6955
- test(scanner): serialize tests sharing process-global scanner state by @reatang in https://github.com/rustfs/rustfs/pull/6940
- fix(s3): harden Snowball archive extraction by @cxymds in https://github.com/rustfs/rustfs/pull/6942
- ci(kms): add enforcement/frame/config-secret lane inputs by @majinghe in https://github.com/rustfs/rustfs/pull/6946
- feat(ci): add upgrade compatibility suite and reorder functional chain by @majinghe in https://github.com/rustfs/rustfs/pull/6950
- fix(heal): resume remote rebuilds after target restart by @marshawcoco in https://github.com/rustfs/rustfs/pull/6941
- fix(s3): align snowball codec compatibility by @cxymds in https://github.com/rustfs/rustfs/pull/6943
- ci(pool): add stage-aware expansion diagnostics by @cxymds in https://github.com/rustfs/rustfs/pull/6963
- fix(replication): let replicated version purges pass the peer WORM gate by @reatang in https://github.com/rustfs/rustfs/pull/6960
- fix(admin): converge site replication IAM deletions and retry backoff by @reatang in https://github.com/rustfs/rustfs/pull/6962
- test(perf): add PUT after-probes and node telemetry by @houseme in https://github.com/rustfs/rustfs/pull/6965
- fix(ecstore): stabilize decommission capacity retries by @houseme in https://github.com/rustfs/rustfs/pull/6959
- fix(scanner): fit usage persistence within publication lease by @houseme in https://github.com/rustfs/rustfs/pull/6967
- ci: add storage engine workflow to functional test chain by @majinghe in https://github.com/rustfs/rustfs/pull/6971
- fix(s3): align snowball member semantics by @cxymds in https://github.com/rustfs/rustfs/pull/6944
- chore(release): prepare 1.0.0-rc.5 by @overtrue in https://github.com/rustfs/rustfs/pull/6968
- fix(scanner): recover legacy usage floor from backup by @houseme in https://github.com/rustfs/rustfs/pull/6964
- perf(s3): bound snowball member imports by @cxymds in https://github.com/rustfs/rustfs/pull/6945
- fix(admin): allow re-pairing non-empty sites in site replication add by @reatang in https://github.com/rustfs/rustfs/pull/6961
- test(ecstore): cover disk metric sequence snapshot by @overtrue in https://github.com/rustfs/rustfs/pull/6872
- fix(put): honor bucket default SSE in path selection by @houseme in https://github.com/rustfs/rustfs/pull/6970
- ci: allow macOS release builds to finish by @overtrue in https://github.com/rustfs/rustfs/pull/6976
- @teyfix made their first contribution in https://github.com/rustfs/rustfs/pull/6782
- @cuishuang made their first contribution in https://github.com/rustfs/rustfs/pull/6828
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0-rc.4...1.0.0-rc.5-preview.2
version-2.5.250
- Issue #4345: Comment on View Column is not persisted and not exported to database dump (with SCRIPT TO)
- PR #4363: Fixed: Server should be stopped every time db init fails
- PR #4374: Fixed: Data race causing spurious "Position 0" during chunk rewriting
- Issue #4353: Wrong composite index being chosen
- PR #4359: Fixed casting issue: skipped Index Condition Pushdown optimization for lossy conversions
- Issue #4352: Fix race between metatable generation and transaction closure
- Issue #4321: Fix SCRIPT tool COLUMNS option placement
- PR #4343: Stop on panic exception to prevent store corruption
- PR #4340: Eliminate concurrent access to MVStore.versions
- PR #4317: Fix case for ChunkNotFound. MVStore performance improvements.
- Issue #4302: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Check constraint invalid
- Issue #4293: Data Race in org.h2.mvstore.tx.TransactionStore.registerTransaction
- Issue #4299: READ_COMMITTED isolation level sometimes doesn't see uncommitted changes from the same transaction 2.4.240
- Issue #4048: Assertion error in shrinkStoreIfPossible
- Issue #4304: DROP SCHEMA & DROP ALL OBJECTS is broken if a materialized view is present in the schema
- Issue #4297: fix race in VersionedBitSet
- Issue #4286: faulty assertion caused failure in SHUTDOWN COMPACT