@@ -10,6 +10,195 @@ HIGH: There is a critical bug that may affect a subset of users. Upgrade!
1010CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
1111--------------------------------------------------------------------------------
1212
13+ ================================================================================
14+ Redis 3.2.2 Released Thu Jul 28 14:14:54 CEST 2016
15+ ================================================================================
16+
17+ Upgrade urgency MODERATE: A Redis server and a Sentinel crash are now fixed.
18+ GEORADIUS errors in reported entries are fixed.
19+
20+ Hi all! Redis 3.2.2 is finally out with non trivial bugfixes and a few new
21+ features. Let's start from the bugs:
22+
23+ 1. There was a bug in the List type implementation, able to cause the
24+ crash of the server under certain (non trivial to replicate) circumstances
25+ when the LSET command was used. Now the bug is fixed and a new stress tester
26+ that was able to easily trigger the bug was added to the test suite.
27+
28+ 2. Redis Sentinel, when monitoring multiple masters, could crash after
29+ a Sentinel address update event.
30+
31+ 3. Redis Sentinel now checks slaves INFO state more often when disconnected.
32+ This is not really a bug fix, but may allow to more easily detect that
33+ a slave is able to fail over its master reducing certain delays.
34+
35+ 4. It was possible, under a variety of conditions, that the AOF and RDB children
36+ process could spawn at the same time. This is known to trash disk I/O,
37+ AOF performances, and to ultimately create latency in the Redis server.
38+ Normally Redis avoids to have the two writing children at the same time, but
39+ there were edge cases discovered by Oran Agra (that also co-authored the
40+ fix with me) where the double-fork could happen. In order to fix this bug
41+ non trivial changes to the replication code were operated, however it was
42+ important to back port this fix into 3.2.2 because the bug could lead to
43+ bad latency experiences in certain cases.
44+
45+ 5. Many GEORADIUS bugs are now fixed \o/. This started as a failing CI
46+ test. I grepped for more clues and there were a number of random failures
47+ in the points reported by GEORADIUS. The errors were found to be related
48+ to three different bugs (one of these was a bug in the test itself).
49+ It's not a critical bug: the effect is to, sometimes, don't report objects
50+ that are near the radius, but only with specific sets of coordinates
51+ and radius settings. However now the issues are fixed and the error
52+ vectors were added as regression tests.
53+
54+ And now the good news (not that bug fixes are not good...), that is, the
55+ new features!
56+
57+ 1. Now slaves support the slave-announce-ip and slave-announce-port options.
58+ Using these features a slave can be reported by the master `INFO` output
59+ and `ROLE` command as having arbitrary IP and port. This allows to have
60+ Sentinel deployments when working with containers or NAT-ed environments
61+ more easily.
62+
63+ 2. The RDB check utlity is now part of Redis and uses the same RDB code that
64+ Redis uses in order to load the dataset in memory, so a given version
65+ of Redis is always able to check the RDB it produced... without another
66+ external check tool which is supposed to be taken in sync with the
67+ rdb.c implementation. This in turn also means that the new RDB checking
68+ is able to spot more complex bugs, since it really loads the dataset
69+ instead of just skipping bytes.
70+
71+ About the redis-check-dump utility, now it is also able to show certain
72+ information about the RDB file, like the version that produced it, when
73+ it was produced, and so forth. Example:
74+
75+ ./redis-check-rdb dump.rdb
76+ [offset 0] Checking RDB file dump.rdb
77+ [offset 32] AUX FIELD redis-ver = '3.2.2'
78+ [offset 46] AUX FIELD redis-bits = '64'
79+ [offset 58] AUX FIELD ctime = '1469710178'
80+ [offset 73] AUX FIELD used-mem = '1186528'
81+
82+ The ability to check how much memory was used by the instance that produced
83+ the RDB file can be especially useful.
84+
85+ For credits and the full change log, see the list of commits below, that was
86+ modified in order to be a bit less verbose compared to the last releases.
87+
88+ Enjoy!
89+ Salvatore
90+
91+ antirez in commit 0a45fbc:
92+ Ability of slave to announce arbitrary ip/port to master.
93+ 6 files changed, 129 insertions(+), 17 deletions(-)
94+
95+ antirez in commit c3982c0:
96+ redis-benchmark: new option to show server errors on stdout.
97+ 1 file changed, 17 insertions(+), 1 deletion(-)
98+
99+ antirez in commit fdafe23:
100+ Multiple GEORADIUS bugs fixed.
101+ 6 files changed, 177 insertions(+), 21 deletions(-)
102+
103+ antirez in commit a1bfe22:
104+ Replication: when possible start RDB saving ASAP.
105+ 1 file changed, 8 insertions(+), 2 deletions(-)
106+
107+ antirez in commit 7ca69af:
108+ Sentinel: new test unit 07 that tests master down conditions.
109+ 1 file changed, 68 insertions(+)
110+
111+ antirez in commit 5b5e652:
112+ Sentinel: check Slave INFO state more often when disconnected.
113+ 2 files changed, 10 insertions(+), 3 deletions(-)
114+
115+ antirez in commit 21cffc2:
116+ Avoid simultaneous RDB and AOF child process.
117+ 4 files changed, 51 insertions(+), 8 deletions(-)
118+
119+ antirez in commit 017378e:
120+ Replication: start BGSAVE for replication always in replicationCron().
121+ 1 file changed, 15 insertions(+), 12 deletions(-)
122+
123+ antirez in commit 940be9a:
124+ Regression test for issue #3333.
125+ 1 file changed, 6 insertions(+)
126+
127+ antirez in commit 21736b4:
128+ getLongLongFromObject: use string2ll() instead of strict_strtoll().
129+ 1 file changed, 1 insertion(+), 6 deletions(-)
130+
131+ antirez in commit 0b748e9:
132+ redis-cli: check SELECT reply type just in state updated.
133+ 1 file changed, 1 insertion(+), 1 deletion(-)
134+
135+ sskorgal in commit 1158386:
136+ Fix for redis_cli printing default DB when select command fails.
137+ 1 file changed, 1 insertion(+), 1 deletion(-)
138+
139+ antirez in commit 026f9fc:
140+ Sentinel: fix cross-master Sentinel address update.
141+ 1 file changed, 9 insertions(+), 2 deletions(-)
142+
143+ antirez in commit 11523b3:
144+ CONFIG GET is now no longer case sensitive.
145+ 1 file changed, 12 insertions(+), 12 deletions(-)
146+
147+ antirez in commit f5a7f4f:
148+ Fix test for new RDB checksum failure message.
149+ 1 file changed, 1 insertion(+), 1 deletion(-)
150+
151+ antirez in commit 4c6ff74:
152+ Make tcp-keepalive default to 300 in internal conf.
153+ 1 file changed, 1 insertion(+), 1 deletion(-)
154+
155+ antirez in commit 27dbec2:
156+ In Redis RDB check: more details in error reportings.
157+ 1 file changed, 24 insertions(+), 13 deletions(-)
158+
159+ antirez in commit 41f3004:
160+ In Redis RDB check: log decompression errors.
161+ 2 files changed, 23 insertions(+), 2 deletions(-)
162+
163+ antirez in commit 278fe3e:
164+ In Redis RDB check: log object type on error.
165+ 1 file changed, 27 insertions(+), 2 deletions(-)
166+
167+ antirez in commit a117dfa:
168+ Added a trivial program to randomly corrupt RDB files in /utils.
169+ 1 file changed, 44 insertions(+)
170+
171+ antirez in commit f5110c3:
172+ In Redis RDB check: minor output message changes.
173+ 1 file changed, 4 insertions(+), 1 deletion(-)
174+
175+ antirez in commit 35b18bf:
176+ In Redis RDB check: better error reporting.
177+ 4 files changed, 71 insertions(+), 14 deletions(-)
178+
179+ antirez in commit f578f08:
180+ In Redis RDB check: initial POC.
181+ 2 files changed, 189 insertions(+), 647 deletions(-)
182+
183+ tielei in commit 7f1e1ca:
184+ A string with 21 chars is not representable as a 64-bit integer.
185+ 1 file changed, 2 insertions(+), 2 deletions(-)
186+
187+ antirez in commit 7a3a595:
188+ Test: new randomized stress tester for #3343 alike bugs.
189+ 1 file changed, 27 insertions(+), 2 deletions(-)
190+
191+ antirez in commit c75ca10:
192+ Stress tester WIP.
193+ 1 file changed, 3 insertions(+)
194+
195+ antirez in commit 2c3fcf8:
196+ Regression test for issue #3343 exact min crash sequence.
197+ 1 file changed, 16 insertions(+)
198+
199+ antirez in commit 7041967:
200+ Fix quicklistReplaceAtIndex() by updating the quicklist ziplist size.
201+ 1 file changed, 1 insertion(+)
13202
14203================================================================================
15204Redis 3.2.1 Released Fri Jun 17 15:01:56 CEST 2016
0 commit comments