]> git.saurik.com Git - redis.git/commit
Set LUA_MASKCOUNT hook more selectively. Fixes issue #480.
authorantirez <antirez@gmail.com>
Fri, 27 Apr 2012 09:41:25 +0000 (11:41 +0200)
committerantirez <antirez@gmail.com>
Fri, 27 Apr 2012 09:41:25 +0000 (11:41 +0200)
commit0ad10db22098ef1555236719743e02da7cb85e00
treee6d2c90c92a6cce1d714b5f90f415b9bc79c04a9
parenta3eb7ac87d00cbd74b0dd386dba83748cea2465c
Set LUA_MASKCOUNT hook more selectively. Fixes issue #480.

An user reported a crash with Redis scripting (see issue #480 on
github), inspection of the kindly provided strack trace showed that
server.lua_caller was probably set to NULL. The stack trace also slowed
that the call to the hook was originating from a point where we just
used to set/get a few global variables in the Lua state.

What was happening is that we did not set the timeout hook selectively
only when the user script was called. Now we set it more selectively,
specifically only in the context of the lua_pcall() call, and make sure
to remove the hook when the call returns. Otherwise the hook can get
called in random contexts every time we do something with the Lua
state.
src/scripting.c