Redis 6.0.10
============
Upgrade urgency MODERATE: several bugs with moderate impact are fixed,
Here is a comprehensive list of changes in this release compared to 6.0.9.
Command behavior changes:
* SWAPDB invalidates WATCHed keys
* SORT command behaves differently when used on a writable replica
* EXISTS should not alter LRU
In Redis 5.0 and 6.0 it would have touched the LRU/LFU of the key.
* OBJECT should not reveal logically expired keys
Will now behave the same TYPE or any other non-DEBUG command.
* GEORADIUS[BYMEMBER] can fail with -OOM if Redis is over the memory limit
Other behavior changes:
* Sentinel: Fix missing updates to the config file after SENTINEL SET command
* CONFIG REWRITE is atomic and safer, but requires write access to the config file's folder
This change was already present in 6.0.9, but was missing from the release notes.
Bug fixes with compatibility implications (bugs introduced in Redis 6.0):
* Fix RDB CRC64 checksum on big-endian systems
If you're using big-endian please consider the compatibility implications with
RESTORE, replication and persistence.
* Fix wrong order of key/value in Lua's map response
If your scripts use redis.setresp() or return a map (new in Redis 6.0), please
consider the implications.
Bug fixes:
* Fix an issue where a forked process deletes the parent's pidfile
* Fix crashes when enabling io-threads-do-reads
* Fix a crash in redis-cli after executing cluster backup
* Handle output buffer limits for module blocked clients
Could result in a module sending reply to a blocked client to go beyond the limit.
* Fix setproctitle related crashes.
Caused various crashes on startup, mainly on Apple M1 chips or under instrumentation.
* Backup/restore cluster mode keys to slots map for repl-diskless-load=swapdb
In cluster mode with repl-diskless-load, when loading failed, slot map wouldn't
have been restored.
* Fix oom-score-adj-values range, and bug when used in config file
Enabling setting this in the config file in a line after enabling it, would
have been buggy.
* Reset average ttl when empty databases
Just causing misleading metric in INFO
* Disable rehash when Redis has child process
This could have caused excessive CoW during BGSAVE, replication or AOFRW.
* Further improved ACL algorithm for picking categories
Output of ACL GETUSER is now more similar to the one provided by ACL SETUSER.
* Fix bug with module GIL being released prematurely
Could in theory (and rarely) cause multi-threaded modules to corrupt memory.
* Reduce effect of client tracking causing feedback loop in key eviction
* Fix cluster access to unaligned memory (SIGBUS on old ARM)
* Fix saving of strings larger than 2GB into RDB files
Additional improvements:
* Avoid wasteful transient memory allocation in certain cases
Platform / toolchain support related improvements:
* Fix crash log registers output on ARM.
* Add a check for an ARM64 Linux kernel bug
Due to the potential severity of this issue, Redis will print log warning on startup.
* Raspberry build fix.
New configuration options:
* oom-score-adj-values config can now take absolute values (besides relative ones)
Module related fixes:
* Moved RMAPI_FUNC_SUPPORTED so that it's usable
* Improve timer accuracy
* Allow '\0' inside of result of RM_CreateStringPrintf