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 5 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 5 commits
  10. 14 May, 2019 1 commit
    • antirez's avatar
      Test: fix slowlog test false positive. · 7ac7ffd5
      antirez authored
      In fast systems "SLOWLOG RESET" is fast enough to don't be logged even
      when the time limit is "1" sometimes. Leading to false positives such
      as:
      
      [err]: SLOWLOG - can be disabled in tests/unit/slowlog.tcl
      Expected '1' to be equal to '0'
      7ac7ffd5
  11. 13 May, 2019 9 commits