RustFS 1.0.1-preview.5 (preview)
- feat(nightly): publish packages as assets of the rolling 'nightly' release (sync from release) by @majinghe in https://github.com/rustfs/rustfs/pull/7593
- fix(ecstore): stop pruning at nonempty directories by @marshawcoco in https://github.com/rustfs/rustfs/pull/7616
- fix(replication): close the pre-stable convergence gaps from backlog#2367 by @reatang in https://github.com/rustfs/rustfs/pull/7626
- feat(console): support a configurable console URL prefix by @overtrue in https://github.com/rustfs/rustfs/pull/7634
- chore(release): merge release into main for rc.6 by @overtrue in https://github.com/rustfs/rustfs/pull/7638
- feat: configure the console base path at build time by @cxymds in https://github.com/rustfs/rustfs/pull/7636
- chore(release): prepare 1.0.0-rc.6 by @overtrue in https://github.com/rustfs/rustfs/pull/7641
- fix(heal): preserve retryable batch failures during recovery by @overtrue in https://github.com/rustfs/rustfs/pull/7642
- fix(s3): reject oversize single PUT early and map body errors to 4xx by @reatang in https://github.com/rustfs/rustfs/pull/7635
- fix(ecstore): make directory mtime fixture portable by @marshawcoco in https://github.com/rustfs/rustfs/pull/7623
- fix(storage): prevent readiness after native migration failures by @rjregenold in https://github.com/rustfs/rustfs/pull/7652
- fix(admin): expose OIDC account display fields by @GatewayJ in https://github.com/rustfs/rustfs/pull/7654
- fix(replication): correct peer joins and remote-state reporting by @jkossis in https://github.com/rustfs/rustfs/pull/7650
- feat(ci): add fault-tolerance degradation suite to the functional chain by @majinghe in https://github.com/rustfs/rustfs/pull/7663
- fix(ci): repair functional defaults and chain regression checks by @overtrue in https://github.com/rustfs/rustfs/pull/7664
- "feat(ci): add fault-tolerance degradation suite to the functional chain" by @majinghe in https://github.com/rustfs/rustfs/pull/7667
- fix(ci): align security workflow tests with chain by @cxymds in https://github.com/rustfs/rustfs/pull/7679
- test(kms): cover non-default Vault Transit paths by @hkwi in https://github.com/rustfs/rustfs/pull/7657
- fix(s3): bound stalled UploadPart request bodies by @cxymds in https://github.com/rustfs/rustfs/pull/7659
- fix: enforce S3 permissions for recursive force deletion by @cxymds in https://github.com/rustfs/rustfs/pull/7661
- fix(tables): reject reserved warehouse locations by @GatewayJ in https://github.com/rustfs/rustfs/pull/7671
- fix(e2e): require a verified server binary for every e2e run by @overtrue in https://github.com/rustfs/rustfs/pull/7687
- fix(ci): bind nightly lanes to one resolved source by @overtrue in https://github.com/rustfs/rustfs/pull/7688
- feat(ci): measure queue and execution time by run attempt by @overtrue in https://github.com/rustfs/rustfs/pull/7689
- fix(ci): verify complete functional chain evidence by @overtrue in https://github.com/rustfs/rustfs/pull/7690
- fix(kms): classify KMS/SSE error contracts and SSE-S3 headers by @reatang in https://github.com/rustfs/rustfs/pull/7697
- Collect bounded Connect environment inventory by @overtrue in https://github.com/rustfs/rustfs/pull/7710
- Add Connect service license commands by @overtrue in https://github.com/rustfs/rustfs/pull/7711
- Add consent-bound diagnostic scheduling by @overtrue in https://github.com/rustfs/rustfs/pull/7713
- feat(connect): advertise environment diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/7714
- feat(connect): add consent-bound profile exports by @overtrue in https://github.com/rustfs/rustfs/pull/7716
- feat(connect): add bounded local log capture by @overtrue in https://github.com/rustfs/rustfs/pull/7718
- feat(connect): add bounded network performance producer by @overtrue in https://github.com/rustfs/rustfs/pull/7719
- Add bounded local telemetry export commands by @overtrue in https://github.com/rustfs/rustfs/pull/7720
- Add bounded drive performance command by @overtrue in https://github.com/rustfs/rustfs/pull/7721
- Add bounded top diagnostic captures by @overtrue in https://github.com/rustfs/rustfs/pull/7722
- Add client-to-deployment performance diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/7726
- Add a local environment inventory command by @overtrue in https://github.com/rustfs/rustfs/pull/7728
- feat(connect): add bounded object performance diagnostics by @overtrue in https://github.com/rustfs/rustfs/pull/7734
- Add authenticated inter-node network performance probes by @overtrue in https://github.com/rustfs/rustfs/pull/7739
- fix(site-replication): keep an operator's bucket-level target to a peer instead of taking it over by @reatang in https://github.com/rustfs/rustfs/pull/7709
- chore(deps): update flake.lock by @houseme in https://github.com/rustfs/rustfs/pull/7733
- feat(connect): support explicit enterprise proxies by @overtrue in https://github.com/rustfs/rustfs/pull/7745
- feat(connect): emit drive unavailable log events by @overtrue in https://github.com/rustfs/rustfs/pull/7747
- feat(connect): add local inspect export producer by @overtrue in https://github.com/rustfs/rustfs/pull/7750
- test(connect): cover nested allocator profile stats by @overtrue in https://github.com/rustfs/rustfs/pull/7717
- docs(security): add presigned copy advisory lesson by @overtrue in https://github.com/rustfs/rustfs/pull/7754
- fix(ecstore): refuse RMW and reads of unreadable bucket configs by @overtrue in https://github.com/rustfs/rustfs/pull/7759
- refactor(filemeta): own persisted metadata key authority by @overtrue in https://github.com/rustfs/rustfs/pull/7760
- Sync network performance protocol fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/7761
- Sync site replication result fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/7762
- Sync telemetry producer fixtures by @overtrue in https://github.com/rustfs/rustfs/pull/7763
- refactor(rio): own trailer source and drop s3s dependency by @overtrue in https://github.com/rustfs/rustfs/pull/7764
- Deliver diagnostic scheduler receipts to Connect by @overtrue in https://github.com/rustfs/rustfs/pull/7767
- fix(ecstore): refuse writes on unreadable bucket configs with 503 by @overtrue in https://github.com/rustfs/rustfs/pull/7768
- feat(connect): add site replication performance producer by @overtrue in https://github.com/rustfs/rustfs/pull/7769
- refactor(ecstore): read persisted object-metadata keys from the filemeta authority (A3b) by @overtrue in https://github.com/rustfs/rustfs/pull/7770
- feat(connect): add device license renewal client by @overtrue in https://github.com/rustfs/rustfs/pull/7771
- feat(connect): add approved artifact relay by @overtrue in https://github.com/rustfs/rustfs/pull/7772
- fix(connect): export relay CLI types by @overtrue in https://github.com/rustfs/rustfs/pull/7773
- feat(connect): add device report upload client by @overtrue in https://github.com/rustfs/rustfs/pull/7774
- feat(connect): add typed telemetry trace source by @overtrue in https://github.com/rustfs/rustfs/pull/7775
- fix(connect): avoid shadowing replication URL helper by @overtrue in https://github.com/rustfs/rustfs/pull/7777
- fix(connect): restore site replication test nonce by @overtrue in https://github.com/rustfs/rustfs/pull/7778
- fix(connect): restore rustfs build after site replication perf producer by @overtrue in https://github.com/rustfs/rustfs/pull/7779
- fix(rustfs): restore test compilation by @overtrue in https://github.com/rustfs/rustfs/pull/7780
- feat(connect): sign site replication target pair by @overtrue in https://github.com/rustfs/rustfs/pull/7781
- refactor(filemeta): own RestoreStatus and drop the s3s dependency (A3c) by @overtrue in https://github.com/rustfs/rustfs/pull/7782
- feat(connect): add service license relay import by @overtrue in https://github.com/rustfs/rustfs/pull/7784
- feat(admin): add a gateway key inventory for the S3 stack switch by @overtrue in https://github.com/rustfs/rustfs/pull/7785
- feat(server): add RUSTFS_S3_STACK with a gateway GetBucketLocation path by @overtrue in https://github.com/rustfs/rustfs/pull/7786
- revert: remove M1 gateway git dependency until CI can access rustfs/gateway by @overtrue in https://github.com/rustfs/rustfs/pull/7787
- fix: retry IAM migration quorum failures on startup by @overtrue in https://github.com/rustfs/rustfs/pull/7788
- fix: retry interrupted uploads through proxies by @overtrue in https://github.com/rustfs/rustfs/pull/7789
- fix(connect): capture telemetry from server runtime by @overtrue in https://github.com/rustfs/rustfs/pull/7790
- fix: classify explicit proxy failures by @overtrue in https://github.com/rustfs/rustfs/pull/7791
- fix: skip IAM migration when legacy volume is absent by @overtrue in https://github.com/rustfs/rustfs/pull/7792
- fix(release): include CLI in Linux artifacts by @overtrue in https://github.com/rustfs/rustfs/pull/7794
- fix(release): serialize Linux binary links by @overtrue in https://github.com/rustfs/rustfs/pull/7797
- feat(connect): expose live lock count snapshots by @overtrue in https://github.com/rustfs/rustfs/pull/7801
- feat(connect): capture live API activity by @overtrue in https://github.com/rustfs/rustfs/pull/7804
- feat(connect): collect native Linux thread states by @overtrue in https://github.com/rustfs/rustfs/pull/7806
- feat(connect): capture live RPC activity by @overtrue in https://github.com/rustfs/rustfs/pull/7807
- test(connect): verify top.disk release artifacts by @overtrue in https://github.com/rustfs/rustfs/pull/7808
- test(connect): require native top.disk runner by @overtrue in https://github.com/rustfs/rustfs/pull/7809
- feat(connect): capture bounded local CPU profiles by @overtrue in https://github.com/rustfs/rustfs/pull/7811
- ci: retain top disk acceptance archive by @overtrue in https://github.com/rustfs/rustfs/pull/7812
- fix(connect): observe host traffic in top net by @overtrue in https://github.com/rustfs/rustfs/pull/7814
- ci: enable CPU profiling in supported release builds by @overtrue in https://github.com/rustfs/rustfs/pull/7815
- test(connect): verify profile cpu release artifacts by @overtrue in https://github.com/rustfs/rustfs/pull/7818
- test(connect): retain CPU profile verification key by @overtrue in https://github.com/rustfs/rustfs/pull/7819
- test(connect): retain CPU profile import bundle by @overtrue in https://github.com/rustfs/rustfs/pull/7820
- feat(connect): expose object inspect CLI by @overtrue in https://github.com/rustfs/rustfs/pull/7821
- feat(connect): wrap diagnostic reports for upload by @overtrue in https://github.com/rustfs/rustfs/pull/7822
- fix(connect): parse inspect paths as paths by @overtrue in https://github.com/rustfs/rustfs/pull/7826
- feat(connect): verify typed diagnostic jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7827
- fix(connect): accept KMS report upload authorization by @overtrue in https://github.com/rustfs/rustfs/pull/7828
- Run signed diagnostic jobs in the RustFS service by @overtrue in https://github.com/rustfs/rustfs/pull/7829
- fix(connect): emit canonical report manifest time by @overtrue in https://github.com/rustfs/rustfs/pull/7830
- Upload diagnostic job results through support bundles by @overtrue in https://github.com/rustfs/rustfs/pull/7831
- fix(connect): emit canonical top envelope time by @overtrue in https://github.com/rustfs/rustfs/pull/7836
- fix(connect): publish diagnostic producer capabilities by @overtrue in https://github.com/rustfs/rustfs/pull/7837
- fix(io-metrics): drop the rustfs-common edge by injecting the S3 telemetry observer by @overtrue in https://github.com/rustfs/rustfs/pull/7795
- fix(replication): count a bodiless 405 as a replicated delete marker by @reatang in https://github.com/rustfs/rustfs/pull/7756
- fix(kms): refuse key ids that leave the key prefix on the Vault backends by @reatang in https://github.com/rustfs/rustfs/pull/7727
- Preserve safe profile job failure reasons by @overtrue in https://github.com/rustfs/rustfs/pull/7860
- Freeze the heartbeat producer capability registry by @overtrue in https://github.com/rustfs/rustfs/pull/7861
- fix: resume GET body after peer short EOF by @houseme in https://github.com/rustfs/rustfs/pull/7852
- ci: file scheduled-failure issues in rustfs/backlog by @majinghe in https://github.com/rustfs/rustfs/pull/7847
- fix(admin): keep the gateway key inventory off the s3s surface by @overtrue in https://github.com/rustfs/rustfs/pull/7817
- fix(s3): honor presigned UploadPart checksum queries by @overtrue in https://github.com/rustfs/rustfs/pull/7748
- fix(auth): reject unsigned x-amz headers on header-signed SigV4 requests by @overtrue in https://github.com/rustfs/rustfs/pull/7796
- fix(table-catalog): map transient lock failures to unavailable by @marshawcoco in https://github.com/rustfs/rustfs/pull/7841
- Verify profile service jobs on native Linux by @overtrue in https://github.com/rustfs/rustfs/pull/7862
- Authorize the private Connect acceptance checkout by @overtrue in https://github.com/rustfs/rustfs/pull/7863
- Run profile service acceptance directly by @overtrue in https://github.com/rustfs/rustfs/pull/7864
- Retain profile service failure evidence by @overtrue in https://github.com/rustfs/rustfs/pull/7868
- fix: update dependencies and preserve transport errors by @dependabot[bot] in https://github.com/rustfs/rustfs/pull/7798
- ci: expect BACKLOG_ISSUE_TOKEN in scheduled alert wiring checks by @majinghe in https://github.com/rustfs/rustfs/pull/7867
- Pace diagnostic job result redelivery by @overtrue in https://github.com/rustfs/rustfs/pull/7869
- Execute authenticated top.api service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7872
- feat(connect): execute top.locks service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7874
- fix(ci): gate Connect acceptance on x86 build job by @overtrue in https://github.com/rustfs/rustfs/pull/7875
- fix(ci): repair E2E inventory and network CLI coverage by @overtrue in https://github.com/rustfs/rustfs/pull/7871
- feat(connect): execute performance network jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7877
- feat(connect): execute bounded drive performance jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7878
- Preserve the top API service job nonce by @overtrue in https://github.com/rustfs/rustfs/pull/7879
- feat(connect): execute thread profile service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7880
- Execute authenticated top.rpc service jobs by @overtrue in https://github.com/rustfs/rustfs/pull/7881
- ci: add service diagnostic acceptance workflows by @overtrue in https://github.com/rustfs/rustfs/pull/7882
- ci: add threads and RPC acceptance workflows by @overtrue in https://github.com/rustfs/rustfs/pull/7883
- fix(connect): deliver diagnostic results until expiry by @overtrue in https://github.com/rustfs/rustfs/pull/7886
- feat(connect): export signed environment inventory by @overtrue in https://github.com/rustfs/rustfs/pull/7887
- fix: recover interrupted GETs and heal operations by @overtrue in https://github.com/rustfs/rustfs/pull/7876
- fix: keep top locks within its capture window by @overtrue in https://github.com/rustfs/rustfs/pull/7888
- fix: recover heal after peer boot epoch changes by @overtrue in https://github.com/rustfs/rustfs/pull/7889
- ci: register the table suite workflow on the default branch by @majinghe in https://github.com/rustfs/rustfs/pull/7893
- test(ecstore): synchronize causal cleanup observations by @overtrue in https://github.com/rustfs/rustfs/pull/7894
- fix(ecstore): create markers for repeated versioned deletes by @GatewayJ in https://github.com/rustfs/rustfs/pull/7884
- Preserve top.locks signed job nonce by @overtrue in https://github.com/rustfs/rustfs/pull/7898
- fix(ecstore): roll back failed delete marker writes by @overtrue in https://github.com/rustfs/rustfs/pull/7899
- chore(deps): refresh RustFS tokio tar dependency by @houseme in https://github.com/rustfs/rustfs/pull/7907
- fix(ci): retain failed functional chain reports and check runners by @majinghe in https://github.com/rustfs/rustfs/pull/7906
- fix(ci): bound non-performance functional suites to one hour by @majinghe in https://github.com/rustfs/rustfs/pull/7911
- ci(build): run linux build lanes on sm-standard-4 runners by @majinghe in https://github.com/rustfs/rustfs/pull/7917
- fix(ecstore): admit transformed small objects inline by plaintext size by @reatang in https://github.com/rustfs/rustfs/pull/7916
- ci(chain): stop gating all suites on the performance runner by @majinghe in https://github.com/rustfs/rustfs/pull/7924
- perf(rustfs): skip redundant content-sha256 pass on signed PUTs by @reatang in https://github.com/rustfs/rustfs/pull/7928
- ci: register the fault-tolerance suite workflow on the default branch by @majinghe in https://github.com/rustfs/rustfs/pull/7929
- chore(release): merge release into main after 1.0.0 by @overtrue in https://github.com/rustfs/rustfs/pull/7935
- fix(ecstore): keep decommission multipart on reserved target by @cxymds in https://github.com/rustfs/rustfs/pull/7937
- fix(heal): match legacy null version during replacement readback by @cxymds in https://github.com/rustfs/rustfs/pull/7933
- fix(heal): certify metadata health and marker repair receipts by @cxymds in https://github.com/rustfs/rustfs/pull/7932
- ci(ft): upload the fault-tolerance report to the dashboard by @majinghe in https://github.com/rustfs/rustfs/pull/7939
- ci: drop dead references to the deleted release branch by @overtrue in https://github.com/rustfs/rustfs/pull/7945
- build(deps): update dependency versions by @houseme in https://github.com/rustfs/rustfs/pull/7942
- perf(s3select): accelerate ScanRange record scanning by @GatewayJ in https://github.com/rustfs/rustfs/pull/7934
- fix(ci): bound the fault-tolerance dashboard upload step by @overtrue in https://github.com/rustfs/rustfs/pull/7948
- chore(release): prepare 1.0.1 by @overtrue in https://github.com/rustfs/rustfs/pull/7946
- fix(ecstore): forward quota admission on CopyObject destination writes by @overtrue in https://github.com/rustfs/rustfs/pull/7947
- feat(tables): support staged table creation by @GatewayJ in https://github.com/rustfs/rustfs/pull/7919
- refactor(obs): depend on dial9 crate by @houseme in https://github.com/rustfs/rustfs/pull/7949
- fix(ecstore): reuse metadata read guards during writes by @jkossis in https://github.com/rustfs/rustfs/pull/7941
- fix(ilm): keep expiry pending gauge balanced and drain overwrite tails by @overtrue in https://github.com/rustfs/rustfs/pull/7944
- fix(ecstore): keep the single-block bound on every inline candidate by @overtrue in https://github.com/rustfs/rustfs/pull/7954
- Allow 127.0.0.0/8 as loopback addresses for binding by @aredridel in https://github.com/rustfs/rustfs/pull/7943
- fix(ecstore): hide and reclaim ancestors of delete residue in prefix listings by @overtrue in https://github.com/rustfs/rustfs/pull/7955
- fix(readiness): smooth pool metadata timeout flaps by @houseme in https://github.com/rustfs/rustfs/pull/7956
- fix(heal): prevent MRF starvation of integrity repairs by @houseme in https://github.com/rustfs/rustfs/pull/7963
- fix(lock): contain slow peer RPC admission storms by @houseme in https://github.com/rustfs/rustfs/pull/7970
- fix(rebalance): defer retryable source cleanup failures by @cxymds in https://github.com/rustfs/rustfs/pull/7977
- feat(release): add workspace cargo publish tooling by @houseme in https://github.com/rustfs/rustfs/pull/7973
- fix(ci): reject incomplete fault-tolerance runs by @GatewayJ in https://github.com/rustfs/rustfs/pull/7961
- feat(helm): add ingress support for both console and endpoint by @kokorousaki in https://github.com/rustfs/rustfs/pull/7972
- ci(performance): move the performance suite to its own concurrency group by @majinghe in https://github.com/rustfs/rustfs/pull/7984
- fix(decommission): keep scanner backlog handoff conflicts recoverable by @cxymds in https://github.com/rustfs/rustfs/pull/7979
- fix(notify): validate bucket notification config before saving by @cxymds in https://github.com/rustfs/rustfs/pull/7980
- ci(performance): drop stale shared-lock comment from the performance workflow by @overtrue in https://github.com/rustfs/rustfs/pull/7987
- fix(scanner): resume and persist checkpoints across leader handoff by @houseme in https://github.com/rustfs/rustfs/pull/7982
- build(deps): refresh workspace dependencies by @houseme in https://github.com/rustfs/rustfs/pull/7986
- fix(ecstore): preserve vectored bitrot writes by @houseme in https://github.com/rustfs/rustfs/pull/7981
- fix(helm): default the ingress backend port and refresh the nix cli hashes by @overtrue in https://github.com/rustfs/rustfs/pull/7990
- @aredridel made their first contribution in https://github.com/rustfs/rustfs/pull/7943
- @kokorousaki made their first contribution in https://github.com/rustfs/rustfs/pull/7972
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0...1.0.1-preview.5
8.10.2
Update urgency: SECURITY: There are security fixes in the release.
- #15673 Commands queued in a transaction could still access keys whose ACL permissions were revoked before the transaction was executed
- #15722 The cluster bus protocol has no authentication of its own unless
tls-clusteris enabled, so any host able to reach a node's bus port could join the cluster and threaten it. A cluster node now warns at startup when its bus port is left unauthenticated, and the newcluster-bus-port-protected-modeoption (defaultno) makes refusing to run in that state an explicit choice: set it toyesand the node starts only whentls-clusterauthenticates the bus - TimeSeries: Prevented Redis from crashing when adding samples to a compressed Time Series key restored from a malformed RDB payload
- RedisSearch: KNN queries on indexes with very long vector field names could cause the server to crash
- Vector Sets: Deeply nested JSON used in Vector Set queries could cause the server to crash
8.8.3
Update urgency: SECURITY: There are security fixes in the release.
- #15673 Commands queued in a transaction could still access keys whose ACL permissions were revoked before the transaction was executed
- #15722 The cluster bus protocol has no authentication of its own unless
tls-clusteris enabled, so any host able to reach a node's bus port could join the cluster and threaten it. A cluster node now warns at startup when its bus port is left unauthenticated, and the newcluster-bus-port-protected-modeoption (defaultno) makes refusing to run in that state an explicit choice: set it toyesand the node starts only whentls-clusterauthenticates the bus - TimeSeries: Prevented Redis from crashing when adding samples to a compressed Time Series key restored from a malformed RDB payload
- Vector Sets: Deeply nested JSON used in Vector Set queries could cause the server to crash
8.6.7
Update urgency: SECURITY: There are security fixes in the release.
- #15673 Commands queued in a transaction could still access keys whose ACL permissions were revoked before the transaction was executed
- #15722 The cluster bus protocol has no authentication of its own unless
tls-clusteris enabled, so any host able to reach a node's bus port could join the cluster and threaten it. A cluster node now warns at startup when its bus port is left unauthenticated, and the newcluster-bus-port-protected-modeoption (defaultno) makes refusing to run in that state an explicit choice: set it toyesand the node starts only whentls-clusterauthenticates the bus - TimeSeries: Prevented Redis from crashing when adding samples to a compressed Time Series key restored from a malformed RDB payload
- Vector Sets: Deeply nested JSON used in Vector Set queries could cause the server to crash
8.4.7
Update urgency: SECURITY: There are security fixes in the release.
- #15673 Commands queued in a transaction could still access keys whose ACL permissions were revoked before the transaction was executed
- #15722 The cluster bus protocol has no authentication of its own unless
tls-clusteris enabled, so any host able to reach a node's bus port could join the cluster and threaten it. A cluster node now warns at startup when its bus port is left unauthenticated, and the newcluster-bus-port-protected-modeoption (defaultno) makes refusing to run in that state an explicit choice: set it toyesand the node starts only whentls-clusterauthenticates the bus - TimeSeries: Prevented Redis from crashing when adding samples to a compressed Time Series key restored from a malformed RDB payload
- Vector Sets: Deeply nested JSON used in Vector Set queries could cause the server to crash
8.2.10
Update urgency: SECURITY: There are security fixes in the release.
- #15722 The cluster bus protocol has no authentication of its own unless
tls-clusteris enabled, so any host able to reach a node's bus port could join the cluster and threaten it. A cluster node now warns at startup when its bus port is left unauthenticated, and the newcluster-bus-port-protected-modeoption (defaultno) makes refusing to run in that state an explicit choice: set it toyesand the node starts only whentls-clusterauthenticates the bus - TimeSeries: Prevented Redis from crashing when adding samples to a compressed Time Series key restored from a malformed RDB payload
- Vector Sets: Deeply nested JSON used in Vector Set queries could cause the server to crash
2.30.1 (2026-09-17)
This release contains bug fixes since the 2.30.0 release. We recommend that you upgrade at the next available opportunity.
Bugfixes
- #10580 Fix missing conflicts for
INSERT ... ON CONFLICTwith multiple unique constraints - #10583 Fix
NULLconflict resolution on single-column bloom filtering - #10592 Fix duplicate rows from
DeferredChunkAppendwhenLIMITis not pushed down - #10593 Fix
cannot cast type cstringerror inDeferredChunkAppendqueries
Thanks