- 29 Oct, 2013 11 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
Pieter Noordhuis authored
The irrelevant bits shouldn't be masked to 1. This can result in slots being skipped when the hash table is resized between calls to the iterator.
-
Pieter Noordhuis authored
-
Pieter Noordhuis authored
-
- 28 Oct, 2013 1 commit
-
-
antirez authored
-
- 09 Oct, 2013 1 commit
-
-
antirez authored
-
- 04 Oct, 2013 4 commits
-
-
antirez authored
Sometimes when we resurrect a cached master after a successful partial resynchronization attempt, there is pending data in the output buffers of the client structure representing the master (likely REPLCONF ACK commands). If we don't reinstall the write handler, it will never be installed again by addReply*() family functions as they'll assume that if there is already data pending, the write handler is already installed. This bug caused some slaves after a successful partial sync to never send REPLCONF ACK, and continuously being detected as timing out by the master, with a disconnection / reconnection loop.
-
antirez authored
Since we started sending REPLCONF ACK from slaves to masters, the lastinteraction field of the client structure is always refreshed as soon as there is room in the socket output buffer, so masters in timeout are detected with too much delay (the socket buffer takes a lot of time to be filled by small REPLCONF ACK <number> entries). This commit only counts data received as interactions with a master, solving the issue.
-
antirez authored
There was a bug that over-esteemed the amount of backlog available, however this could only happen when a slave was asking for an offset that was in the "future" compared to the master replication backlog. Now this case is handled well and logged as an incident in the master log file.
-
antirez authored
-
- 26 Sep, 2013 1 commit
-
-
Michel Martens authored
-
- 17 Sep, 2013 1 commit
-
-
antirez authored
-
- 04 Sep, 2013 1 commit
-
-
antirez authored
The code freed a reply object that was never created, resulting in a segfault every time randomkey returned a key that was deleted before we queried it for size.
-
- 03 Sep, 2013 2 commits
-
-
Maxim Zakharov authored
-
Maxim Zakharov authored
-
- 30 Aug, 2013 3 commits
- 29 Aug, 2013 1 commit
-
-
antirez authored
Multiple missing calls to lua_pop prevented the error handler function pushed on the stack for lua_pcall() to be popped before returning, causing a memory leak in almost all the code paths of EVAL (both successful calls and calls returning errors). This caused two issues: Lua leaking memory (and this was very visible from INFO memory output, as the 'used_memory_lua' field reported an always increasing amount of memory used), and as a result slower and slower GC cycles resulting in all the CPU being used. Thanks to Tanguy Le Barzic for noticing something was wrong with his 2.8 slave, and for creating a testing EC2 environment where I was able to investigate the issue.
-
- 27 Aug, 2013 9 commits
-
-
Salvatore Sanfilippo authored
fix lua_cmsgpack pack map as array
-
antirez authored
-
antirez authored
When no encoding is possible, at least try to reallocate the sds string with one that does not waste memory (with free space at the end of the buffer) when the string is large enough.
-
antirez authored
We are sure that a string that is longer than 21 chars cannot be represented by a 64 bit signed integer, as -(2^64) is 21 chars: strlen(-18446744073709551616) => 21
-
antirez authored
-
antirez authored
The call to sdsMakeRoomFor() did not accounted for the amount of data already present in the query buffer, resulting into over-allocation.
-
antirez authored
This command is only useful for low-level debugging of memory issues due to sds wasting memory as empty buffer at the end of the string.
-
antirez authored
-
antirez authored
-
- 22 Aug, 2013 2 commits
- 21 Aug, 2013 3 commits