1. 06 Jul, 2016 12 commits
  2. 05 Jul, 2016 2 commits
    • antirez's avatar
      redis-cli: check SELECT reply type just in state updated. · ef6a4df2
      antirez authored
      In issues #3361 / #3365 a problem was reported / fixed with redis-cli
      not updating correctly the current DB on error after SELECT.
      
      In theory this bug was fixed in 0042fb0e, but actually the commit only
      fixed the prompt updating, not the fact the state was set in a wrong
      way.
      
      This commit removes the check in the prompt update, now that hopefully
      it is the state that is correct, there is no longer need for this check.
      ef6a4df2
    • Salvatore Sanfilippo's avatar
      Merge pull request #3365 from sskorgal/unstable · 0df28659
      Salvatore Sanfilippo authored
      Fix for redis_cli printing default DB when select command fails. #3361
      0df28659
  3. 04 Jul, 2016 4 commits
    • antirez's avatar
      Sentinel: fix cross-master Sentinel address update. · c383be3b
      antirez authored
      This commit both fixes the crash reported with issue #3364 and
      also properly closes the old links after the Sentinel address for the
      other masters gets updated.
      
      The two problems where:
      
      1. The Sentinel that switched address may not monitor all the masters,
         it is possible that there is no match, and the 'match' variable is
         NULL. Now we check for no match and 'continue' to the next master.
      
      2. By ispecting the code because of issue "1" I noticed that there was a
         problem in the code that disconnects the link of the Sentinel that
         needs the address update. Basically link->disconnected is non-zero
         even if just *a single link* (cc -- command link or pc -- pubsub
         link) are disconnected, so to check with if (link->disconnected)
         in order to close the links risks to leave one link connected.
      
      I was able to manually reproduce the crash at "1" and verify that the
      commit resolves the issue.
      
      Close #3364.
      c383be3b
    • antirez's avatar
      CONFIG GET is now no longer case sensitive. · b2cc8bcc
      antirez authored
      Like CONFIG SET always was. Close #3369.
      b2cc8bcc
    • antirez's avatar
      Fix test for new RDB checksum failure message. · a0dd0140
      antirez authored
      a0dd0140
    • antirez's avatar
      Make tcp-keepalive default to 300 in internal conf. · b99ad1bd
      antirez authored
      We already changed the default in the redis.conf template, but I forgot
      to change the internal config as well.
      b99ad1bd
  4. 01 Jul, 2016 7 commits
  5. 30 Jun, 2016 1 commit
    • antirez's avatar
      In Redis RDB check: initial POC. · e97fadb0
      antirez authored
      So far we used an external program (later executed within Redis) and
      parser in order to check RDB files for correctness. This forces, at each
      RDB format update, to have two copies of the same format implementation
      that are hard to keep in sync. Morover the former RDB checker only
      checked the very high-level format of the file, without actually trying
      to load things in memory. Certain corruptions can only be handled by
      really loading key-value pairs.
      
      This first commit attempts to unify the Redis RDB loadig code with the
      task of checking the RDB file for correctness. More work is needed but
      it looks like a sounding direction so far.
      e97fadb0
  6. 28 Jun, 2016 3 commits
  7. 27 Jun, 2016 2 commits
    • antirez's avatar
    • antirez's avatar
      Fix quicklistReplaceAtIndex() by updating the quicklist ziplist size. · 5e176e1a
      antirez authored
      The quicklist takes a cached version of the ziplist representation size
      in bytes. The implementation must update this length every time the
      underlying ziplist changes. However quicklistReplaceAtIndex() failed to
      fix the length.
      
      During LSET calls, the size of the ziplist blob and the cached size
      inside the quicklist diverged. Later, when this size is used in an
      authoritative way, for example during nodes splitting in order to copy
      the nodes, we end with a duplicated node that may contain random
      garbage.
      
      This commit should fix issue #3343, however several problems were found
      reviewing the quicklist.c code in search of this bug that should be
      addressed soon or later.
      
      For example:
      
      1. To take a cached ziplist length is fragile since failing to update it
      leads to this kind of issues.
      
      2. The node splitting code needs auditing. For example it works just for
      a side effect of ziplistDeleteRange() to be able to cope with a wrong
      count of elem...
      5e176e1a
  8. 24 Jun, 2016 1 commit
  9. 23 Jun, 2016 8 commits