1. 22 Nov, 2019 1 commit
    • zhaozhao.zz's avatar
      scripting: flag lua_client as CLIENT_MULTI after redis.replicate_commands() immediately · 097c4a65
      zhaozhao.zz authored
      To avoid nested MULTI/EXEC, we check the lua_caller's flag,
      if we are in the MULTI context we flag the lua_client as
      CLIENT_MULTI, but it's not enough we shoud flag lua_client
      as CLIENT_MULTI after redis.replicate_commands() immediately
      or the first write command after redis.replicate_commands()
      cannot know it's in an transaction, I know the missing CLIENT_MULTI
      doesn't have any effect now, but it's a real bug and we should fix
      it, in case someday we allow some dangerous command like BLPOP.
      097c4a65
  2. 07 Oct, 2019 1 commit
    • Yossi Gottlieb's avatar
      TLS: Connections refactoring and TLS support. · b087dd1d
      Yossi Gottlieb authored
      * Introduce a connection abstraction layer for all socket operations and
      integrate it across the code base.
      * Provide an optional TLS connections implementation based on OpenSSL.
      * Pull a newer version of hiredis with TLS support.
      * Tests, redis-cli updates for TLS support.
      b087dd1d
  3. 04 Oct, 2019 1 commit
  4. 02 Oct, 2019 1 commit
    • Oran Agra's avatar
      On LUA script timeout, print the script SHA to the log · 98426e98
      Oran Agra authored
      since the slowlog and other means that can help you detect the bad script
      are only exposed after the script is done. it might be a good idea to at least
      print the script name (sha) to the log when it timeouts.
      98426e98
  5. 20 Sep, 2019 2 commits
  6. 17 Sep, 2019 4 commits
  7. 16 Sep, 2019 6 commits
  8. 13 Sep, 2019 3 commits
  9. 17 Jul, 2019 1 commit
    • Oran Agra's avatar
      Module API for Forking · 56258c6b
      Oran Agra authored
      * create module API for forking child processes.
      * refactor duplicate code around creating and tracking forks by AOF and RDB.
      * child processes listen to SIGUSR1 and dies exitFromChild in order to
        eliminate a valgrind warning of unhandled signal.
      * note that BGSAVE error reply has changed.
      
      valgrind error is:
        Process terminating with default action of signal 10 (SIGUSR1)
      56258c6b
  10. 18 Mar, 2019 1 commit
  11. 29 Jan, 2019 1 commit
  12. 09 Jan, 2019 3 commits
  13. 09 Oct, 2018 1 commit
  14. 30 Sep, 2018 1 commit
  15. 11 Sep, 2018 1 commit
  16. 05 Sep, 2018 3 commits
    • antirez's avatar
      Use commands (effects) replication by default in scripts. · 7895835d
      antirez authored
      See issue #5250 and issue #5292 for more info.
      7895835d
    • antirez's avatar
      Safer script stop condition on OOM. · 7e11825e
      antirez authored
      Here the idea is that we do not want freeMemoryIfNeeded() to propagate a
      DEL command before the script and change what happens in the script
      execution once it reaches the slave. For example see this potential
      issue (in the words of @soloestoy):
      
      On master, we run the following script:
      
          if redis.call('get','key')
          then
              redis.call('set','xxx','yyy')
          end
          redis.call('set','c','d')
      
      Then when redis attempts to execute redis.call('set','xxx','yyy'), we call freeMemoryIfNeeded(), and the key may get deleted, and because redis.call('set','xxx','yyy') has already been executed on master, this script will be replicated to slave.
      
      But the slave received "DEL key" before the script, and will ignore maxmemory, so after that master has xxx and c, slave has only one key c.
      
      Note that this patch (and other related work) was authored collaboratively in
      issue #5250 with the help of @soloestoy and @oranagra.
      
      Related to issue #5250.
      7e11825e
    • antirez's avatar
      Propagate read-only scripts as SCRIPT LOAD. · 092e4de6
      antirez authored
      See issue #5250 and the new comments added to the code in this commit
      for details.
      092e4de6
  17. 03 Sep, 2018 2 commits
  18. 31 Aug, 2018 3 commits
  19. 26 Aug, 2018 1 commit
  20. 31 Jul, 2018 1 commit
  21. 22 Jul, 2018 1 commit
  22. 21 Jul, 2018 1 commit