- 20 11月, 2019 2 次提交
-
-
由 Guy Benoish 提交于
Calling XADD with 0-0 or 0 would result in creating an empty key and storing it in the database. Even worse, because XADD will reply with error the action will not be replicated, creating a master-replica inconsistency
-
由 Loris Cro 提交于
-
- 15 11月, 2019 9 次提交
- 07 11月, 2019 3 次提交
-
-
由 antirez 提交于
One problem with the solution proposed so far in #6537 is that key lookups outside a command execution via call(), still used a cached time. The cached time needed to be refreshed in multiple places, especially because of modules callbacks from timers, cluster bus, and thread safe contexts, that may use RM_Open(). In order to avoid this problem, this commit introduces the ability to detect if we are inside call(): this way we can use the reference fixed time only when we are in the context of a command execution or Lua script, but for the asynchronous lookups, we can still use mstime() to get a fresh time reference.
-
由 antirez 提交于
After the thread in #6537 and thanks to the suggestions received, this commit updates the original patch in order to: 1. Solve the problem of updating the time in multiple places by updating it in call(). 2. Avoid introducing a new field but use our cached time. This required some minor refactoring to the function updating the time, and the introduction of a new cached time in microseconds in order to use less gettimeofday() calls.
-
由 zhaozhao.zz 提交于
Calling lookupKey*() many times to search a key in one command may get different result. That's because lookupKey*() calls expireIfNeeded(), and delete the key when reach the expire time. So we can get an robj before the expire time, but a NULL after the expire time. The worst is that may lead to Redis crash, for example `RPOPLPUSH foo foo` the first time we get a list form `foo` and hold the pointer, but when we get `foo` again it's expired and deleted. Now we hold a freed memory, when execute rpoplpushHandlePush() redis crash. To fix it, we can refactor the judgment about whether a key is expired, using the same basetime `server.cmd_start_mstime` instead of calling mstime() everytime.
-
- 01 11月, 2019 1 次提交
-
-
由 antirez 提交于
See #6525, this likely creates a NULL deference if the client was terminated by Redis between the creation of the blocked client and the creation of the thread safe context.
-
- 25 9月, 2019 9 次提交
-
-
由 antirez 提交于
-
由 antirez 提交于
Thanks to @JohnSully for noticing this problem.
-
由 Oran Agra 提交于
these had severe impact for small zsets, for instance ones with just one element that is longer than 64 (causing it not to be ziplist encoded)
-
由 Oran Agra 提交于
for instance detached thread safe contexts, or various callbacks that don't provide a context.
-
由 antirez 提交于
See for reference PR #6337. Thanks to @git-hulk for spotting this.
-
由 antirez 提交于
Related to #6296.
-
由 antirez 提交于
-
由 antirez 提交于
-
由 zhaozhao.zz 提交于
-
- 05 9月, 2019 5 次提交
-
-
由 Salvatore Sanfilippo 提交于
RM_ReplyWithCString was missing registration
-
由 Salvatore Sanfilippo 提交于
backport module rdb aux data into 5.0
-
由 Oran Agra 提交于
When implementing the code that saves and loads these aux fields we used rdb format that was added for that in redis 5.0, but then we added the 'when' field which meant that the old redis-check-rdb won't be able to skip these. this fix adds an opcode as if that 'when' is part of the module data. (cherry picked from commit 3bfcae24)
-
- 04 9月, 2019 1 次提交
-
-
由 antirez 提交于
Before this commit we may have not consumer buffers when a read error is encountered. Such buffers may contain errors that are important clues for the user: for instance a protocol error in the payload we send in pipe mode will cause the server to abort the connection. If the user does not get the protocol error, debugging what is happening can be a nightmare. This commit fixes issue #3756.
-
- 01 8月, 2019 3 次提交
-
-
由 wubostc 提交于
-
由 antirez 提交于
-
由 chendianqiang 提交于
-
- 31 7月, 2019 1 次提交
-
-
由 antirez 提交于
-
- 30 7月, 2019 1 次提交
-
-
由 John Sully 提交于
-
- 07 7月, 2019 3 次提交
-
-
由 swilly22 提交于
-
由 Itamar Haber 提交于
Signed-off-by: NItamar Haber <itamar@redislabs.com>
-
由 Itamar Haber 提交于
Signed-off-by: NItamar Haber <itamar@redislabs.com>
-
- 16 5月, 2019 1 次提交
-
-
由 antirez 提交于
-
- 15 5月, 2019 1 次提交
-
-
由 Christian Zeller 提交于
-