1. 06 Nov, 2019 1 commit
    • zhaozhao.zz's avatar
      expires: refactoring judgment about whether a key is expired · 68d71d83
      zhaozhao.zz authored
      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.
      68d71d83
  2. 31 Oct, 2019 1 commit
    • antirez's avatar
      Modules: fix thread safe context creation crash. · 62588dbf
      antirez authored
      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.
      62588dbf
  3. 25 Sep, 2019 9 commits
  4. 05 Sep, 2019 3 commits
  5. 04 Sep, 2019 1 commit
    • antirez's avatar
      redis-cli: always report server errors on read errors. · 08b03e23
      antirez authored
      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.
      08b03e23
  6. 31 Jul, 2019 4 commits
  7. 30 Jul, 2019 1 commit
  8. 07 Jul, 2019 3 commits
  9. 15 May, 2019 3 commits
    • antirez's avatar
      Redis 5.0.5 · c696aebd
      antirez authored
      c696aebd
    • antirez's avatar
      Narrow the effects of PR #6029 to the exact state. · 668661da
      antirez authored
      CLIENT PAUSE may be used, in other contexts, for a long time making all
      the slaves time out. Better for now to be more specific about what
      should disable senidng PINGs.
      
      An alternative to that would be to virtually refresh the slave
      interactions when clients are paused, however for now I went for this
      more conservative solution.
      668661da
    • chendianqiang's avatar
      stop ping when client pause · 3c2800e3
      chendianqiang authored
      3c2800e3
  10. 13 May, 2019 14 commits