summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2016-06-17 15:15:21 +0200
committerantirez <antirez@gmail.com>2016-06-17 15:15:21 +0200
commit04c7261f03cc423bcc089b27b5a24ad260279b22 (patch)
tree414efe6f08c3d5eda4bd3525d457238d4f0da5ef
parent8207e828043e37a0d7e058530d2886bb3ff395ff (diff)
downloadredis-3.2.1.tar.gz
Redis 3.2.1.3.2.1
-rw-r--r--00-RELEASENOTES521
-rw-r--r--src/version.h2
2 files changed, 522 insertions, 1 deletions
diff --git a/00-RELEASENOTES b/00-RELEASENOTES
index dfed8591e..ee7dec298 100644
--- a/00-RELEASENOTES
+++ b/00-RELEASENOTES
@@ -10,6 +10,527 @@ 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.
--------------------------------------------------------------------------------
+
+================================================================================
+Redis 3.2.1 Released Fri Jun 17 15:01:56 CEST 2016
+================================================================================
+
+Upgrade urgency HIGH: Critical fix to Redis Sentinel, due to 3.2.0 regression
+ compared to 3.0.
+
+Hey, this is Redis 3.2.1, and this release should bring some grain of
+maturity to Redis 3.2. The list of commits following this note will tell
+you the details, but the main things addressed in this release are the
+following:
+
+1. A critical bug in Sentinel was hopefully fixed. During the big 3.2
+ refactoring of Redis Sentinel, in order to implement connection sharing
+ to make Sentinel able to scale better (few Sentinels to monitor many
+ masters), a bug was introduced that mis-counted the number of pending
+ commands in the Redis link. This in turn resulted into an inability to talk
+ with certain Redis instances. A common result of this bug was the inability
+ of Redis Sentinel to reconfigure back the old master, after a failover,
+ when it is reachable again, as the slave of the new master. This was due
+ to the inability to talk with the old master at all.
+
+2. BITFIELD bugs fixed.
+
+3. GEO commands fixes on syntax errors and edge cases.
+
+4. RESTORE now accepts dumps generated by older Redis versions.
+
+5. Jemalloc now is really configured to save you memory, for a problem a
+ change in the jemalloc configuration did not really survived when the
+ 3.2.0 release was finalized.
+
+6. TTL and TYPE command no longer alter the last access time of a key, for
+ LRU evictions purposes. A new TOUCH command was introduced *just* to
+ update the access time of a key.
+
+7. A bug was fixed in redis-cli, that connected to the instance running on the
+ port 6379 if there was one, regardless of what was specified.
+
+8. TCP keep alive is now enabled by default. This should fix most ghost
+ connections problems without resulting in any practical change in otherwise
+ sane deployments.
+
+9. A Sentinel crash that could happen during failovers was fixed.
+
+And of course, more minor things that you can read in the detailed log
+below. There are still reported bugs for 3.2 that were not fixed in this
+release, but nothing critical AFAIK, and I wanted to release this one ASAP,
+so likely a new release will not be too far.
+
+Enjoy,
+Salvatore
+
++-------------------------------------------------------------------------------
+| config set list-max-ziplist-size didn't support negative values, unlike config file
+| By oranagra, 2016-05-22 20:35:14 +0300
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/8207e828043e37a0d7e058530d2886bb3ff395ff
+
+
+ src/config.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
++-------------------------------------------------------------------------------
+| Fix Sentinel pending commands counting.
+| By antirez, 2016-06-16 19:24:34 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/6ad0371c9b4206a7a6692d50c9a301457baf9b6d
+
+This bug most experienced effect was an inability of Redis to
+reconfigure back old masters to slaves after they are reachable again
+after a failover. This was due to failing to reset the count of the
+pending commands properly, so the master appeared fovever down.
+
+Was introduced in Redis 3.2 new Sentinel connection sharing feature
+which is a lot more complex than the 3.0 code, but more scalable.
+
+Many thanks to people reporting the issue, and especially to
+@sskorgal for investigating the issue in depth.
+
+Hopefully closes #3285.
+
+ src/sentinel.c | 1 +
+ 1 file changed, 1 insertion(+)
+
++-------------------------------------------------------------------------------
+| redis-cli: really connect to the right server.
+| By antirez, 2016-06-16 17:23:31 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/58f1d446c35e8fe62df7c9ebe10f3c40a386c022
+
+I recently introduced populating the autocomplete help array with the
+COMMAND command if available. However this was performed before parsing
+the arguments, defaulting to instance 6379. After the connection is
+performed it remains stable.
+
+The effect is that if there is an instance running on port 6339,
+whatever port you specify is ignored and 6379 is connected to instead.
+The right port will be selected only after a reconnection.
+
+Close #3314.
+
+ src/redis-cli.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
++-------------------------------------------------------------------------------
+| Remove debug printing
+| By Jan-Erik Rediger, 2016-05-21 13:50:01 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/b6007b324b81dbd4ffe519b3bdb19ab65fbb407f
+
+
+ src/redis-cli.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
++-------------------------------------------------------------------------------
+| RESTORE: accept RDB dumps with older versions.
+| By antirez, 2016-06-16 15:53:57 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/f592b4d3178963878084a522b4fd050772c335ae
+
+Reference issue #3218.
+
+Checking the code I can't find a reason why the original RESTORE
+code was so opinionated about restoring only the current version. The
+code in to `rdb.c` appears to be capable as always to restore data from
+older versions of Redis, and the only places where it is needed the
+current version in order to correctly restore data, is while loading the
+opcodes, not the values itself as it happens in the case of RESTORE.
+
+For the above reasons, this commit enables RESTORE to accept older
+versions of values payloads.
+
+ src/cluster.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
++-------------------------------------------------------------------------------
+| CLIENT error message was out of date
+| By oranagra, 2016-05-23 11:42:21 +0300
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/047ced4473ee35485e22e45db8b8b4a272bf1177
+
+
+ src/networking.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
++-------------------------------------------------------------------------------
+| fix georadius returns multiple replies
+| By oranagra, 2016-05-23 13:58:50 +0300
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/14e04847ac2960aefe31dccbec63d2503cf09ca5
+
+
+ src/geo.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
++-------------------------------------------------------------------------------
+| Minor aesthetic fixes to PR #3264.
+| By antirez, 2016-06-16 12:54:33 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/bd23ea3f9f3defbbdf512864ee1a88fd02665a7f
+
+Comment format fixed + local var modified from camel case to underscore
+separators as Redis code base normally does (camel case is mostly used
+for global symbols like structure names, function names, global vars,
+...).
+
+ src/bitops.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
++-------------------------------------------------------------------------------
+| check WRONGTYPE in BITFIELD before looping on the operations.
+| By oranagra, 2016-05-24 23:31:36 +0300
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/2a3ee58ec73b6abdeeb4890937b25191119bce35
+
+optimization: lookup key only once, and grow at once to the max need
+fixes #3259 and #3221, and also an early return if wrongtype is discovered by SET
+
+ src/bitops.c | 27 ++++++++++++++++++---------
+ 1 file changed, 18 insertions(+), 9 deletions(-)
+
++-------------------------------------------------------------------------------
+| fix crash in BITFIELD GET on non existing key or wrong type see #3259
+| By oranagra, 2016-05-24 14:52:43 +0300
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/a2e27b810edfad18b3ecc9c176a4606f94a2f0e4
+
+this was a bug in the recent refactoring: bee963c4459223d874e3294a0d8638a588d33c8e
+
+ src/bitops.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
++-------------------------------------------------------------------------------
+| fix check when can't send the command to the promoted slave
+| By MOON_CLJ, 2016-05-26 13:10:12 +0800
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/26555f5e008b099b888ef39cabec632f4b31a038
+
+
+ src/sentinel.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
++-------------------------------------------------------------------------------
+| Test TOUCH and new TTL / TYPE behavior about object access time.
+| By antirez, 2016-06-15 17:15:18 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/f1c237cb6a647ad5400b0ebce124fd9802ea7f89
+
+
+ tests/test_helper.tcl | 1 +
+ tests/unit/introspection-2.tcl | 23 +++++++++++++++++++++++
+ 2 files changed, 24 insertions(+)
+
++-------------------------------------------------------------------------------
+| GETRANGE: return empty string with negative, inverted start/end.
+| By antirez, 2016-06-15 12:48:58 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/d4831e328759bf5bd07c2c6e6ce1d60e84ba196f
+
+
+ src/bitops.c | 4 ++--
+ src/t_string.c | 4 ++++
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
++-------------------------------------------------------------------------------
+| Remove additional round brackets from fix for #3282.
+| By antirez, 2016-06-15 12:16:39 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/9942070f5a41fa3bc953e9628a7248aeb7c0befa
+
+
+ src/bitops.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
++-------------------------------------------------------------------------------
+| bitcount bug:return non-zero value when start > end (both negative)
+| By wenduo, 2016-05-30 16:21:08 +0800
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/f45fa5d05f47a5729786a69962119c9b3dc12645
+
+
+ src/bitops.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
++-------------------------------------------------------------------------------
+| Regression test for #3282.
+| By antirez, 2016-06-15 11:49:49 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/0cb86064e602a093a23b56943a7321fe1af64984
+
+
+ tests/unit/bitops.tcl | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
++-------------------------------------------------------------------------------
+| TTL and TYPE LRU access fixed. TOUCH implemented.
+| By antirez, 2016-06-14 15:33:59 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/b23aa6706ac79a1c86c64aef07bd35e38f10f842
+
+
+ src/db.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++-------
+ src/server.c | 1 +
+ src/server.h | 6 +++++-
+ 3 files changed, 60 insertions(+), 8 deletions(-)
+
++-------------------------------------------------------------------------------
+| redis-cli help.h updated.
+| By antirez, 2016-06-14 14:45:48 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/6e4204fec9c78f3300d887ebc3db014df2c8b33e
+
+
+ src/help.h | 43 +++++++++++++++++++++++++++++--------------
+ 1 file changed, 29 insertions(+), 14 deletions(-)
+
++-------------------------------------------------------------------------------
+| Fix GEORADIUS wrong output with radius > Earth radius.
+| By antirez, 2016-05-30 12:45:49 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/bb43f4cab2f756c0412ca2b94d9e29c3db5025ab
+
+Close #3266
+
+ deps/geohash-int/geohash_helper.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
++-------------------------------------------------------------------------------
+| Geo: fix typo in geohashEstimateStepsByRadius().
+| By antirez, 2016-05-30 15:31:19 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/16102bc0af0912a0c9a92aedddf796eb24a80b9e
+
+I'm the author of this line but I can't see a good reason for it to
+don't be a typo, a step of 26 should be valid with 52 bits per
+coordinate, moreover the line was:
+
+ if (step > 26) step = 25;
+
+So a step of 26 was actually already used, except when one of 27 was
+computed (which is invalid) only then it was trimmed to 25 instead of
+26.
+
+All tests passing after the change.
+
+ deps/geohash-int/geohash_helper.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
++-------------------------------------------------------------------------------
+| Avoid undefined behavior in BITFIELD implementation.
+| By antirez, 2016-05-31 11:52:07 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/014bf8044285c6d401d83e6e24829d276ab837f9
+
+Probably there is no compiler that will actaully break the code or raise
+a signal for unsigned -> signed overflowing conversion, still it was
+apparently possible to write it in a more correct way.
+
+All tests passing.
+
+ src/bitops.c | 23 +++++++++++++++--------
+ 1 file changed, 15 insertions(+), 8 deletions(-)
+
++-------------------------------------------------------------------------------
+| Now that SPOP can be called by scripts use BLPOP on 's' flag test.
+| By antirez, 2016-05-31 16:43:21 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/b4e5e2ec1ad7e9d1f4e7e559b61e0ecd4e50f2da
+
+
+ tests/unit/scripting.tcl | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
++-------------------------------------------------------------------------------
+| Test: run GEO tests by default.
+| By antirez, 2016-05-31 16:43:49 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/df419281a19e13429b27814a3e384f6f029c3519
+
+Thanks to @oranagra for noticing it was missing.
+
+ tests/test_helper.tcl | 1 +
+ 1 file changed, 1 insertion(+)
+
++-------------------------------------------------------------------------------
+| Enable tcp-keepalive by default.
+| By antirez, 2016-06-13 12:03:14 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/40cfe13141c7178d22fd43e4ffbecc37686e0b43
+
+
+ redis.conf | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
++-------------------------------------------------------------------------------
+| fix some compiler warnings
+| By Pierre Chapuis, 2016-06-05 15:34:43 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/a650aaaf4f074ec428b450ef88799db1dcd34b0f
+
+
+ src/bitops.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
++-------------------------------------------------------------------------------
+| Fixed typo in Sentinel compareSlavesForPromotion() comment.
+| By antirez, 2016-06-10 09:15:01 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/3fd4baf1e77f125a306d57b788b72de5026c0564
+
+
+ src/sentinel.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
++-------------------------------------------------------------------------------
+| fix comment "b>a" to "a > b"
+| By andyli, 2016-06-07 14:42:50 +0800
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/8d029a5950f4ef40723c02b5c486b171aff0189c
+
+
+ src/sentinel.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
++-------------------------------------------------------------------------------
+| fix pidfile in redis.conf
+| By bogdanvlviv, 2016-04-19 14:43:06 +0300
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/6937f5960d1803ca0eda1ab6f4bc60023f50c914
+
+
+ redis.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
++-------------------------------------------------------------------------------
+| Include 'fd_set' type name
+| By jspraul, 2016-06-07 16:46:00 -0400
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/b5758cc5ce6c51ff75c86f9216214fe4d5e4c257
+
+Fix an MSYS2-build-breaking error: unknown type name ‘fd_set’
+ src/ae_select.c | 1 +
+ 1 file changed, 1 insertion(+)
+
++-------------------------------------------------------------------------------
+| Allow SPOP from Lua scripts
+| By Itamar Haber, 2016-05-28 20:01:46 +0300
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/620783e3b582e9ba6e1d8fbd47987281ce0b6317
+
+The existing `R` flag appears to be sufficient and there's no apparent reason why the command should be blocked.
+ src/server.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
++-------------------------------------------------------------------------------
+| minor fixes - mainly signalModifiedKey, and GEORADIUS
+| By oranagra, 2016-05-09 09:12:38 +0300
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/603234076f4e59967f331bc97de3c0db9947c8ef
+
+
+ src/geo.c | 1 +
+ src/sds.c | 8 ++++----
+ src/server.c | 2 +-
+ src/server.h | 3 +--
+ src/t_set.c | 9 ++++++---
+ src/t_zset.c | 12 ++++++------
+ 6 files changed, 19 insertions(+), 16 deletions(-)
+
++-------------------------------------------------------------------------------
+| Code to access object string bytes repeated 3x refactored into 1 function.
+| By antirez, 2016-05-18 15:35:17 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/2e6b99499abb5ff1fbeee3bac4d064e5ff4ea256
+
+
+ src/bitops.c | 74 ++++++++++++++++++++++++++++++++----------------------------
+ 1 file changed, 39 insertions(+), 35 deletions(-)
+
++-------------------------------------------------------------------------------
+| fix crash in BITFIELD GET when key is integer encoded
+| By oranagra, 2016-05-10 11:19:45 +0300
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/dcaeafc8280eb8329e7ce68e7ab02c67d98f0cf4
+
+
+ src/bitops.c | 18 +++++++++++++++---
+ 1 file changed, 15 insertions(+), 3 deletions(-)
+
++-------------------------------------------------------------------------------
+| Clarify that the LOG_STR_SIZE includes null term.
+| By antirez, 2016-05-18 15:23:18 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/4ad088818a3353ebd619e8d43847b5d58108af20
+
+
+ src/server.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
++-------------------------------------------------------------------------------
+| Test for BITFIELD regression #3221.
+| By antirez, 2016-05-18 14:53:30 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/f991cdc3e19c187035855355808575efd6b4c149
+
+
+ tests/unit/bitfield.tcl | 5 +++++
+ 1 file changed, 5 insertions(+)
+
++-------------------------------------------------------------------------------
+| reduce struct padding by reordering members
+| By oranagra, 2016-05-16 20:12:11 +0300
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/cb3e89e2cb0753d2d111eaeadc9c73cbe24025ab
+
+
+ src/quicklist.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
++-------------------------------------------------------------------------------
+| Actually use --with-lg-quantum=3 to build jemalloc.
+| By antirez, 2016-05-18 11:58:36 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/a7f0fb448c110e125eece44dc955d6939e494daa
+
+This change is documented in deps/README.md but was lost in one way or
+the other, neutralizing the benefits of 24 bytes size classes (and
+others).
+
+Close #3208.
+
+ deps/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
++-------------------------------------------------------------------------------
+| redis-cli: integrate help.h with COMMAND output.
+| By antirez, 2016-05-07 13:03:25 +0200
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/029dc0d97fd492a2fd579796d4c1cc04053c7190
+
+Use the COMMAND output to fill with partial information the built-in
+help. This makes redis-cli able to at least complete commands that are
+exported by the Redis server it is connected to, but were not available
+in the help.h file when the redis-cli binary was compiled.
+
+ src/redis-cli.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++--------
+ 1 file changed, 70 insertions(+), 10 deletions(-)
+
++-------------------------------------------------------------------------------
+| Removed dofile() from Lua
+| By Adam Baldwin, 2012-10-25 20:27:10 -0700
++--------------------------------------------------------------------------------
+https://github.com/antirez/redis/commit/95def3aee044468504bb07633084afd49b085db3
+
+
+ src/scripting.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+
================================================================================
Redis 3.2.0 Released Fri May 06 08:47:10 CEST 2016
================================================================================
diff --git a/src/version.h b/src/version.h
index 97eb0d7b8..16a0038e6 100644
--- a/src/version.h
+++ b/src/version.h
@@ -1 +1 @@
-#define REDIS_VERSION "3.2.0"
+#define REDIS_VERSION "3.2.1"