Valkey 9.0 release notes ======================== Upgrade urgency levels: | Level | Meaning | |----------|---------------------------------------------------------------------| | LOW | No need to upgrade unless there are new features you want to use. | | MODERATE | Program an upgrade of the server, but it's not urgent. | | HIGH | There is a critical bug that may affect a subset of users. Upgrade! | | CRITICAL | There is a critical bug affecting MOST USERS. Upgrade ASAP. | | SECURITY | There are security fixes in the release. | Valkey 9.0.6 - Released Tue 01 September 2026 ----------------------------------------------- Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible. ### Security Fixes * 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) ### Bug Fixes * 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) Valkey 9.0.5 - Released Tue 21 July 2026 ------------------------------------------ Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible. ### Security Fixes * CVE-2026-56684: Fix a use-after-free in TLS connection handling that could allow an authenticated client to achieve remote code execution using CLIENT KILL (#4234) * CVE-2026-63639: Reject corrupt stream RDB files containing a shared NACK across consumers, which could allow remote code execution. Reported by @z0v3r1n and @lifip. (#4073) ### Bug Fixes * Strictly validate CRLF terminators when parsing the RESP protocol; malformed requests now get a protocol error instead of being misparsed by @enjoy-binbin (#2872) * Fix a use-after-free crash when creating slot import jobs during manual slot migrations by @twooster (#3283) * Fix a memory leak in ZDIFF and ZDIFFSTORE when the result set becomes empty before all inputs are processed by @sarthakaggarwal97 (#3342) * Fix HPERSIST sending a malformed reply that desynchronized the connection when used on a key of the wrong type by @madolson (#3516) * Fix a crash from a race between IO threads and asynchronous client freeing by @deepakrn (#3458) * Fix a double free when loading a stream with corrupt consumer PEL data from RDB or RESTORE by @enjoy-binbin (#3498) * Fix listpack corruption and a subsequent crash when XTRIM marks the last entry of a stream listpack node as deleted by @smkher (#3591) * Fix malformed replies when module callbacks build deferred-length arrays while a client's deferred reply buffer is active by @eifrah-aws (#3578) * Fix a NULL pointer crash in TLS pending-data handling by @zuiderkwast (#3641) * Fix a server crash when multiple RDMA clients disconnect at the same time by @quanyeyang (#3448) * Fix a use-after-free when ACL LOAD deletes a user whose clients cannot be freed immediately by @ranshid (#3800) * Fix a use-after-free when a module unregisters the first registered cluster message receiver for a message type by @eifrah-aws (#3846) * Fix HRANDFIELD looping forever when a hash has fewer non-expired fields than the requested count by @cjx-zar (#4047) * Fix clients being left on the wrong database after module keyspace notifications for commands like MOVE and COPY by @enjoy-binbin (#4024) * Fix a Sentinel crash during coordinated failover when the connection to the old primary is disconnected by @lukepalmer (#4068) * Fix underestimation of client output buffer memory when replies reference shared objects, so buffer limits are enforced correctly by @dvkashapov (#3306) * Fix a crash on ARM/aarch64 caused by memory-ordering races in the IO thread job queue by @jjuleslasarte (#3878) * Fix a crash when active hash field expiration leaves a single entry in a large expiration time-bucket by @ranshid (#3950) * Fix a file descriptor leak when a blocking connection attempt, such as MIGRATE to an unreachable host, times out by @madolson (#3541) * Fix a potential crash from a dangling slot migration job reference when the migration client is reset by @murphyjacob4 (#3554) * Remove cached EVAL scripts when their scripting engine is unregistered, preventing dangling engine references by @eifrah-aws (#3503) * Fix a memory leak in GEOSEARCH BYPOLYGON when argument parsing fails, such as on an invalid COUNT by @bandalgomsu (#3568) * Fix a crash when a slot migration target node is removed from the cluster before the migration connects by @chenshi5012 (#3596) * Fix a crash when the module GetLRU/SetLRU/GetLFU/SetLFU APIs are called with a NULL key by @yaronsananes (#3610) * Fix an assertion failure in hash field expiration commands when a module blocks the client in a keyspace notification by @enjoy-binbin (#3743) * Fix a cluster UPDATE log message reading shard IDs past their fixed-length buffer by @enjoy-binbin (#3942) * Fix undefined behavior in the failover delay calculation when cluster-node-timeout is set below 30 milliseconds by @enjoy-binbin (#3941) * Reject zipmap RESTORE payloads with overflowing length fields that could cause out-of-bounds access on 32-bit builds by @madolson (#3920) * Reject NAN scores in listpack- and ziplist-encoded sorted sets on RDB/RESTORE load, preventing a later crash on skiplist conversion by @madolson (#3921) * Fix a startup crash on 32-bit systems with 64-bit time_t, such as Alpine 3.23, caused by time value formatting mismatches by @chenshi5012 (#3787) * Fix corrupted client replies when IO threads are enabled, caused by a race between in-flight writes and reply buffer reuse by @nanyan0312 (#4060) * COMMAND INFO in RESP3 now returns the subcommands field as an Array instead of a Set for commands without subcommands by @rickrams (#3939) * The dual-channel replication RDB connection now announces the configured replica-announce-ip, avoiding stale replica entries behind NAT by @jdheyburn (#2846) * Prevent replicas from processing stale cluster packets and incorrectly promoting themselves to an empty primary within a shard by @zhijun42 (#2811) * Send the replica version on the dual-channel RDB connection so full syncs of data like hash field TTLs no longer fail by @hpatro (#4105) * Fix slot migration failure handling running twice on ownership changes and an out-of-order error reply in the internal SYNCSLOTS FINISH command by @chx9 (#3723) * Allow slot-migration-max-failover-repl-bytes to be set to -1 to disable the limit, as documented by @enjoy-binbin (#3443) * Fix CONFIG REWRITE producing negative values for memory configs such as maxmemory when set to very large values by @enjoy-binbin (#3440) * Reject SENTINEL SET values containing control characters and safely quote Sentinel config values to prevent config file injection by @eifrah-aws (#3847) * Reject control characters and delimiters in cluster AUX fields and validate cluster-announce-ip to prevent nodes.conf corruption or injection by @eifrah-aws (#3848) * Fix changes to lua-enable-insecure-api via CONFIG SET not taking effect when the option was set at startup by @enjoy-binbin (#4182) * Fix incorrect memory overhead reported for watched keys in client memory usage tracking by @enjoy-binbin (#3359) * Replica logs now report 'Connection reset by peer' instead of the misleading 'Success' when the primary closes the connection by @abmathur-ie (#3580) * Redact key names and user data from more log messages when hide-user-data-from-log is enabled by @zackcam (#3872) * Fix INFO replication reporting negative sync transfer sizes when the RDB exceeds 2GB during disk-based sync by @chx9 (#3811) * Increase the maximum process title length from 255 to 1024 characters to avoid truncation with long installation paths by @pkhartsk (#3843) * valkey-cli --cluster del-node can now remove unreachable or failed nodes instead of failing with 'No such node ID' by @yang-z-o (#3209) * Fix valkey-cli crashing after --eval script execution on jemalloc/tcmalloc builds by @bandalgomsu (#3281) * valkey-cli --cluster fix now spreads uncovered slots randomly across primaries instead of assigning them all to one node by @abmathur-ie (#3586) Valkey 9.0.4 - May 5, 2026 -------------------------- Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible. ### Security fixes * (CVE-2026-23479) Use-After-Free in unblock client flow * (CVE-2026-25243) Invalid Memory Access in RESTORE command * (CVE-2026-23631) Use-after-free when full sync occurs during a yielding Lua/function execution Valkey 9.0.3 - February 23, 2026 ------------------ Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible. ### Security fixes * (CVE-2025-67733) RESP Protocol Injection via Lua error_reply * (CVE-2026-21863) Remote DoS with malformed Valkey Cluster bus message * (CVE-2026-27623) Reset request type after handling empty requests ### Bug fixes * Avoids crash during MODULE UNLOAD when ACL rules reference a module command and subcommand (#3160) * Fix server assert on ACL LOAD when current user loses permission to channels (#3182) * Fix bug causing no response flush sometimes when IO threads are busy (#3205) Valkey 9.0.2 - February 3, 2026 ------------------------------- Upgrade urgency HIGH: There are critical bugs that may affect a subset of users. ### Bug fixes * Avoid memory leak of new argv when HEXPIRE commands target only non-exiting fields (#2973) * Fix HINCRBY and HINCRBYFLOAT to update volatile key tracking (#2974) * Avoid empty hash object when HSETEX added no fields (#2998) * Fix case-sensitive check for the FNX and FXX arguments in HSETEX (#3000) * Prevent assertion in active expiration job after a hash with volatile fields is overwritten (#3003, #3007) * Fix HRANDFIELD to return null response when no field could be found (#3022) * Fix HEXPIRE to not delete items when validation rules fail and expiration is in the past (#3023, #3048) * Fix how hash is handling overriding of expired fields overwrite (#3060) * HSETEX - Always issue keyspace notifications after validation (#3001) * Make zero a valid TTL for hash fields during import mode and data loading (#3006) * Trigger prepareCommand on argc change in module command filters (#2945) * Restrict TTL from being negative and avoid crash in import-mode (#2944) * Fix chained replica crash when doing dual channel replication (#2983) * Skip slot cache optimization for AOF client to prevent key duplication and data corruption (#3004) * Fix used_memory_dataset underflow due to miscalculated used_memory_overhead (#3005) * Avoid duplicate calculations of network-bytes-out in slot stats with copy-avoidance (#3046) * Fix XREAD returning error on empty stream with + ID (#2742) ### Performance/Efficiency Improvements * Track reply bytes in I/O threads if commandlog-reply-larger-than is -1 (#3086, #3126). This makes it possible to mitigate a performance regression in 9.0.1 caused by the bug fix #2652. Valkey 9.0.1 - December 9, 2025 ------------------------------- Upgrade urgency MODERATE: Program an upgrade of the server, but it's not urgent. ### Bug fixes * Authenticate slot migration client on source node to internal user (#2785) * Bug fix: reset io_last_written on c->buf resize to prevent stale pointers (#2786) * Sentinel: fix regression requiring "+failover" ACL in failover path (#2780) * Cluster: Avoid usage of light weight messages to nodes with not ready bidirectional links (#2817) * Send duplicate multi meet packet only for node which supports it in mixed clusters (#2840) * Fix: LTRIM should not call signalModifiedKey when no elements are removed (#2787) * Fix build on some 32-bit ARM by only using NEON on AArch64 (#2873) * Fix deadlock in IO-thread shutdown during panic (#2898) * Fix COMMANDLOG large-reply when using reply copy avoidance (#2652) * Fix CLUSTER SLOTS crash when called from module timer callback (#2915) Valkey 9.0.0 GA - October 21, 2025 ------------------------------------- Upgrade urgency LOW: This is the first release of Valkey 9.0 which includes stability, bug fixes, and incremental improvements over the third release candidate. ### Bug fixes * HSETEX with FXX should not create an object if it does not exist (#2716) * Fix crash when aborting a slot migration while child snapshot is active (#2721) * Fix double MOVED reply on unblock at failover (#2734) * Fix memory leak with CLIENT LIST/KILL duplicate filters (#2362) * Fix incorrect accounting after completed atomic slot migration (#2749) * Fix Lua VM crash after FUNCTION FLUSH ASYNC + FUNCTION LOAD (#1826,#2750) * Fix invalid memory address caused by hashtable shrinking during safe iteration (#2753) Valkey 9.0.0-rc3 - October 7, 2025 ------------------------------------- Upgrade urgency LOW: This is the third release candidate of Valkey 9.0.0, focused on stability, bug fixes, and incremental improvements. ### Security fixes * (CVE-2025-49844) A Lua script may lead to remote code execution * (CVE-2025-46817) A Lua script may lead to integer overflow and potential RCE * (CVE-2025-46818) A Lua script can be executed in the context of another user * (CVE-2025-46819) LUA out-of-bound read ### Performance/Efficiency * Optimize skiplist random level generation logic (#2631) ### Cluster and Replication * Redirect blocked clients after failover (#2329) * Prevent exposure of importing keys on replicas during atomic slot migration (#2635) * Add slot migration client flags and module context flags (#2639) * Introduce SYNCSLOTS CAPA for forwards compatibility (#2688) ### Bug Fixes * Fix atomic slot migration snapshot never proceeding with hz 1 (#2636) * Defrag if slab 1/8 full to fix defrag didn't stop issue (#2656) * Fix module key memory usage accounting (#2661) * Fix dual rdb channel connection error log (#2658) ### Commands * Implement a lolwut for version 9 (#2646) Valkey 9.0.0-rc2 - September 23, 2025 ------------------------------------- Upgrade urgency LOW: This is the second release candidate of Valkey 9.0.0, focused on stability, bug fixes, and incremental improvements. **Attention Valkey Module maintainers**: There is a new module option to indicate support for the Atomic Slot Migration (ASM) feature. Modules must explicitly opt in to ASM; otherwise, this feature will be disabled in clusters that load modules without ASM support. ### Bug Fixes * Fix module context object re-use in scripting engines (#2358) * Fix pre-size hashtables per slot when reading RDB files (#2466) * Do not migrate script functions in atomic slot migration (#2547) * Don't use AVX2 instructions if the CPU don't support it (#2571) ### Performance/Efficiency * Optimized pipelining by parsing and prefetching multiple commands (#2092) ### Cluster and Replication * Make cluster failover delay relative to node timeout (#2449) * Separate RDB snapshotting from atomic slot migration (#2533) ### Module API * Added new module API event for tracking authentication attempts (#2237) * Added READONLY flag to ClientInfo.flags output structure (#2522) * Make modules opt-in to atomic slot migration and add server events (#2593) ### Configuration * Added new cluster-announce-client-(port|tls-port) configs (#2429) * CONFIG RESETSTATS now also resets cluster related stats (#2458) * Make CONFIG GET command return sorted output (#2493) ### Commands * Update reply schema for LMOVE and BLMOVE (#2541) * Most deprecated commands are now un-deprecated (#2546) ### Upgrade * Relaxed RDB check for foreign RDB formats (#2543) ### CLI * Added word-jump navigation (Alt/Option/Ctrl + ←/→) to valkey-cli (#2583) Valkey 9.0.0-rc1 - August 14, 2025 ---------------------------------- Upgrade urgency LOW: This is the first release candidate of Valkey 9.0.0, with performance improvements, atomic slot migrations, hash field expiration, and numbered databases in cluster mode, as well as a whole host of new items as listed below. ### New Features * Client Commands Extended Filtering by @sarthakaggarwal97 (#1466) * Add multi-database support to cluster mode by @xbasel (#1671) * Support BYPOLYGON option for GEOSEARCH by @KarthikSubbarao (#1809) * Introduce MPTCP by @pizhenwei (#1811) * Add sentinel_total_tilt to sentinel INFO sentinel by @carlosfu (#1904) * Add support for automatic client authentication via TLS certificate fields by @omanges (#1920) * Add --hotkeys-count option for valkey-cli by @hwware (#1933) * Introduce atomic slot migration by @murphyjacob4 (#1949) * Introduce MPTCP for replica by @pizhenwei (#1961) * Add DELIFEQ command by @LinusU (#1975) * Allow dynamic modification of io-threads num by @ayush933 (#2033) * Introduce HASH items expiration by @ranshid (#2089) * Add SAFE option to SHUTDOWN to reject shutdown in unsafe situations by @enjoy-binbin (#2195) * Support negative filtering for client command filters by @soloestoy (#2378) ### New Configs * Auto-failover on shutdown unified config by @zuiderkwast (#2292) ### Logging and Tooling Improvements * Add node pfail and fail count to cluster info metrics by @hpatro (#1910) * Introduce support for lttng based tracing by @artikell (#2070) ### Performance/Efficiency Improvements * Optimize bitcount command by SIMD by @chzhoo (#1741) * Save RDB file to disk using a background thread on replica(s) (#1784) * Improve replication stability by prioritizing replication traffic in the replica by @xbasel (#1838) * Optimize hyperloglog commands with ARM NEON SIMD instructions by @xbasel (#1859) * Optimize BITCOUNT using ARM NEON SIMD by @xbasel (#1867) * Optimize string-to-integer performance using AVX512 by @zhulipeng (#1944) * Improve system responsiveness by limiting number of new cluster link connections per cycle by @hpatro (#2009) * Optimize hash table performance using SIMD by @zhulipeng (#2030) * Improve performance of network operations by directly writing responses to clients by @xbasel (#2078) * Allow shrinking hashtables in low memory situations by @Fusl (#2095) * Optimize string2ll with load-time CPU feature check using IFUNC resolver by @zhulipeng (#2099) * Optimize WATCH by equalStringObjects early length check by @vitahlin (#2107) * Optimize GEORADIUS command performance with pre-allocated buffer by @chzhoo (#2116) * Improve zcount performance by combing range element ranks calculation with range elements search to @SoftlyRaining (#2129) * Optimize scan/sscan/hscan/zscan commands by replacing list with vector by @chzhoo (#2160) ### Cluster * Trigger manual failover on SIGTERM / shutdown to cluster primary by @enjoy-binbin (#1091) * Add CLUSTER FLUSHSLOT command by @wuranxx (#1384) * Allow replicas to become primaries without data by using CLUSTER REPLICATE NO ONE by @skolosov-snap (#1674) * Add cluster bus port out of range error message for CLUSTER MEET command by @hwware (#1686) * Add cluster-manual-failover-timeout to configure the timeout for manual failover by @enjoy-binbin (#1690) ### Module * Add new module API flag to bypass command validation by @sungming2 (#1357) ### Bug Fixes * Avoid shard id update of replica if it doesn't match with primary shard id by @hpatro (#573) * Change "Redis ver." to "Valkey ver." in LOLWUT output by @sarthakaggarwal97 (#1559) * Fix temp file leak during replication error handling by @enjoy-binbin (#1721) * Fix raxRemove crash at memcpy() due to key size exceeds max Rax size by @VoletiRam (#1722) * Respect process umask when creating data files by @kronwerk (#1725) * Fix error "SSL routines::bad length" when connTLSWrite is called second time with smaller buffer by @zori-janea (#1737) * cmd's out bytes need count deferred reply by @soloestoy (#1760) * Enable TCP_NODELAY by default in incoming and outgoing connections by @sungming2 (#1763) * Ignore stale gossip packets that arrive out of order by @enjoy-binbin (#1777) * Remove unicode optimization in Lua cjson library by @rjd15372 (#1785) * Save config file and broadcast PONG message on configEpoch change by @enjoy-binbin (#1813) * Fix engine crash on module client blocking during keyspace events by @yairgott (#1819) * Fix bug where invalidation messages were getting sent to closing clients by @madolson (#1823) * Fix ACL LOAD crash on replica since the primary client don't has a user by @bogdanp05 (#1842) * Fix RANDOMKEY infinite loop during CLIENT PAUSE by @li-benson (#1850) * Improve clarity of errors for GEO commands when member does not exist by @chx9 (#1943) * Fix panic in primary when blocking shutdown after previous block with timeout by @murphyjacob4 (#1948) * fix cluster slot stats assertion during promotion of replica by @Fusl (#1950) * Fix incorrect lag reported in XINFO GROUPS by @nesty92 (#1952) * Fix crash during TLS handshake with I/O threads by @uriyage (#1955) * Disallow sending REPLY ON / OFF / SKIP inside a multi-exec transaction by @sarthakaggarwal97 (#1966) * Fix random element in skewed sparse hash table by @zuiderkwast (#2085) * Allow mixing quoted and unquoted inline args by @Fusl (#2098) * Only mark the client reprocessing flag when unblocked on keys by @ranshid (#2109) * CLIENT UNBLOCK should't be able to unpause paused clients by @enjoy-binbin (#2117) * Fix memory corruption in sharded pubsub unsubscribe by @uriyage (#2137) * Detect SSL_new() returning NULL in outgoing connections by @zuiderkwast (#2140) * Correctly handle large cluster bus extensions which may have resulted in dropped cluster packets by @madolson (#2144) * Converge divergent shard-id persisted in nodes.conf to primary's shard ID by @hpatro (#2174) * Fix replica can't finish failover when config epoch is outdated by @enjoy-binbin (#2178) * Fix CLUSTER SLOTS/NODES showing wrong port after updating port/tls-port by @enjoy-binbin (#2186) * Fix use-after-free when active expiration triggers hashtable to shrink by @gusakovy (#2257) * Redact user data when a module crashes for not handling I/O errors enabled by @YueTang-Vanessa (#2274) * Generate a new shard_id when the replica executes CLUSTER RESET SOFT by @enjoy-binbin (#2283) * Fix missing response when AUTH returns an error inside a transaction by @enjoy-binbin (#2287) * Fix memory leak when shrinking a hashtable without entries by @yzc-yzc (#2288) * Fix MEMORY USAGE to consider embedded keys by @yulazariy (#2290) * Fix replicas claiming to still have slots after manual failover by @enjoy-binbin (#2301) * Prevent bad memory access when NOTOUCH client gets unblocked by @uriyage (#2347) * Fix large allocations crashing Valkey during active defrag by @Fusl (#2353) ### Build and Tooling * Support for RDB analysis reports by @artikell (#1743) * Implement RPS control for valkey-benchmark by @artikell (#1761) * valkey-cli: ensure output ends with a newline if missing when printing reply by @xbasel (#1782) * Drop lua object files on clean by @secwall (#1812) * Check both arm64 and aarch64 for ARM based system architecture by @eifrah-aws (#1829) * Add --sequential option to valkey-benchmark to support populating entire keyspace by @SoftlyRaining (#1839) * Support environment variable VALKEYCLI_AUTH alongside REDISCLI_AUTH in valkey-cli by @HiranmoyChowdhury (#1995) * Add MGET test to valkey-benchmark by @zuiderkwast (#2015) * Add support to send multiple arbitrary commands to valkey-benchmark by @zuiderkwast (#2057) * Support RDMA for valkey-cli and benchmark by @pizhenwei (#2059) * Support MPTCP for valkey-cli and benchmark by @pizhenwei (#2067) * Allow valkey-benchmark to support multiple random (or sequential) placeholders by @SoftlyRaining (#2102) * Change default values of valkey-cli to use valkey naming, and added fallback to old values by @avifenesh (#2334) * Fix duplicate Acks for RDMA events and fix extremely large max latency for RDMA benchmark (#2430) ### Behavior Change * Move auth check to the front, before command exist/arity/protected check by @enjoy-binbin (#1475) * Include command fullname in error message when returning errors in multi-execs by @enjoy-binbin (#2286) * Add STALE command flag to SCRIPT-EXISTS, SCRIPT-SHOW and SCRIPT-FLUSH by @enjoy-binbin (#2419) ### Contributors * abmathur-ie @abmathur-ie * Allen Samuels @allenss-amazon * amanosme @amanosme * Amit Nagler @naglera * Anastasia Alexandrova @nastena1606 * aradz44 @aradz44 * Arthur Lee @arthurkiller * asagegeLiu @asagege * Avi Fenesh @avifenesh * Ayush Sharma @ayush933 * bandalgomsu @bandalgomsu * Baswanth @baswanth09 * Benson-li @li-benson * Binbin @enjoy-binbin * Björn Svensson @bjosv * Bogdan Petre @bogdanp05 * carlosfu @carlosfu * charsyam @charsyam * chenshi @chenshi5012 * chzhoo @chzhoo * cjx-zar @cjx-zar * cxljs @cxljs * Daniil Kashapov @dvkashapov * Deepak Nandihalli @deepakrn * eifrah-aws @eifrah-aws * George Padron @DoozkuV * Hanxi Zhang @hanxizh9910 * Harkrishn Patro @hpatro * Hiranmoy Das Chowdhury @HiranmoyChowdhury * Hüseyin Açacak @huseyinacacak-janea * Jacob Murphy @murphyjacob4 * jeon1226 @jeon1226 * Jim Brunner @JimB123 * jjuleslasarte @jjuleslasarte * Joe Heyburn @jdheyburn * Josh Soref @jsoref * jzy1688 @jzy1688 * KarthikSubbarao @KarthikSubbarao * Katie Holly @Fusl * kronwerk @kronwerk * kukey @kukey * Linus Unnebäck @LinusU * Lipeng Zhu @zhulipeng * lovelypiska @chx9 * lucasyonge @lucasyonge * Luke Palmer @lukepalmer * Madelyn Olson @madolson * Marek Zoremba @zori-janea * Matthew @utdrmac * Meinhard Zhou @MeinhardZhou * muelstefamzn @muelstefamzn * nanyan @nanyan0312 * Nathan Scott @natoscott * nesty92 @nesty92 * Nicky-2000 @Nicky-2000 * Nikhil Manglore @Nikhil-Manglore * nitaicaro @nitaicaro * Omkar Mestry @omanges * Ping Xie @PingXie * pkhartsk @pkhartsk * Quanye Yang @quanyeyang * Rain Valentine @rainsupreme * Ran Shidlansik @ranshid * Ricardo Dias @rjd15372 * Rick Ramsay @rickrams * Roshan Khatri @roshkhatri * sananes @yaronsananes * Sarthak Aggarwal @sarthakaggarwal97 * Satheesha CH Gowda @satheeshaGowda * Saurabh K @smkher * secwall @secwall * Sergey Kolosov @skolosov-snap * Seungmin Lee @sungming2 * Shai Zarka @zarkash-aws * Simon Baatz @gmbnomis * skyfirelee @artikell * Stav Ben-Tov @stav-bentov * sushil paneru @sushilpaneru1 * Thalia Archibald @thaliaarchi * Tjaden Hess @tjade273 * Tony Wooster @twooster * Tristan Su @foobar * uriyage @uriyage * Vadym Khoptynets @poiuj * Viktor Söderqvist @zuiderkwast * Vitah Lin @vitahlin * VoletiRam @VoletiRam * WelongZuo @WelongZuo * Wen Hui @hwware * wuranxx @wuranxx * xbasel @xbasel * Yair Gottdenker @yairgott * Yakov Gusakov @gusakovy * Yang Zhao @yang-z-o * youngmore1024 @youngmore1024 * YueTang-Vanessa @YueTang-Vanessa * yulazariy @yulazariy * yzc-yzc @yzc-yzc * zackcam @zackcam * zhaozhao.zz @soloestoy * zhenwei pi @pizhenwei * Zhijun Liao @zhijun42 * アンドリー・アンドリ @odaysec