Redis 2.8.11 is out

319 views
Skip to first unread message

Salvatore Sanfilippo

unread,
Jun 11, 2014, 4:42:19 AM6/11/14
to Redis DB
Hi all,

Redis 2.8.11 is out fixing a bug introduced by fixing a bug in Redis
2.8.10. Since you are into software, too, I hope you'll not laugh
reading my previous sentence.

The full story of the bug is here: https://github.com/antirez/redis/issues/1118

However a TL;DR is needed:

In Redis 2.8.10 we fixed a Lua numerical type -> Redis command
argument precision loss issue.
This fix introduced a problem when the Redis command called from Lua
is actually a string, but "looks like a number". The joy of implicit
conversions in functions names with a sharp name as lua_isnumber(),
eh?

In Redis 2.8.11 we fixed this issue (thanks to Josiah, Matt, and
others) as well.

In some way the bug introduced with the 2.8.10 fix is worst than the
one fixed, so I suggest upgrading to 2.8.11 if you are running 2.8.10
and you use Lua scripting, otherwise your strings may turn into their
conversion to numbers, which is semantically broken a lot more than
loss of precision.

There is one more interesting bug fixed as you'll see below (but this
was broken since the start of Redis so not a big deal from the point
of view of upgrading), regarding block operations on lists.

This is the full changelog:

# UPGRADE URGENCY: HIGH if you use Lua scripting, LOW otherwise.

* [FIX] A previous fix for Lua -> Redis numerical precision enhancement
introduced a new problem. In Redis 2.8.10 commands called from Lua
passing a string that "looks like" a very large number, may actually
use as argument the string converted as a float. This bug is now
fixed.
* [FIX] Now commands other than *PUSH* adding elements to a list will be able
to awake clients blocked in a blocking POP operation.
* [FIX] Cygwin compilation fixes.

Regards,
Salvatore

--
Salvatore 'antirez' Sanfilippo
open source developer - GoPivotal
http://invece.org

To "attack a straw man" is to create the illusion of having refuted a
proposition by replacing it with a superficially similar yet
unequivalent proposition (the "straw man"), and to refute it
— Wikipedia (Straw man page)
Reply all
Reply to author
Forward
0 new messages