1. 14 May, 2015 2 commits
    • antirez's avatar
      05dbc820
    • antirez's avatar
      Sentinel: use active/last time for ping logic · 58d2bb95
      antirez authored
      The PING trigger was improved again by using two fields instead of a
      single one to remember when the last ping was sent:
      
      1. The "active" ping is the time at which we sent the last ping that
      still received no reply. However we continue to ping non replying
      instances even if they have an old active ping: the link may be
      disconnected and reconencted in the meantime so the older pings may get
      lost even if it's a TCP socket.
      
      2. The "last" ping is the time at which we really sent the last ping
      on the wire, and this is used in order to throttle the amount of pings
      we send during failures (when no pong is received).
      
      All in all the failure detector effectiveness should be identical but we
      avoid to flood instances with pings during failures or when they are
      slow.
      58d2bb95
  2. 13 May, 2015 1 commit
  3. 12 May, 2015 3 commits
  4. 11 May, 2015 2 commits
  5. 08 May, 2015 4 commits
  6. 07 May, 2015 1 commit
    • antirez's avatar
      Sentinel: don't detect duplicated Sentinels, just address switch · a0cd75cd
      antirez authored
      Since with a previous commit Sentinels now persist their unique ID, we
      no longer need to detect duplicated Sentinels and re-add them. We remove
      and re-add back using different events only in the case of address
      switch of the same Sentinel, without generating a new +sentinel event.
      a0cd75cd
  7. 06 May, 2015 1 commit
    • antirez's avatar
      Sentinel: persist its unique ID across restarts. · 794fc4c9
      antirez authored
      Previously Sentinels always changed unique ID across restarts, relying
      on the server.runid field. This is not a good idea, and forced Sentinel
      to rely on detection of duplicated Sentinels and a potentially dangerous
      clean-up and re-add operation of the Sentinel instance that was
      rebooted.
      
      Now the ID is generated at the first start and persisted in the
      configuration file, so that a given Sentinel will have its unique
      ID forever (unless the configuration is manually deleted or there is a
      filesystem corruption).
      794fc4c9
  8. 05 May, 2015 4 commits
  9. 04 May, 2015 6 commits
  10. 29 Apr, 2015 3 commits
  11. 28 Apr, 2015 4 commits
    • antirez's avatar
      Fix Sentinel memory leak (hiredis bug) · c806dd79
      antirez authored
      This fixes issue #2535, that was actually an hiredis library bug (I
      submitted an issue and fix to the redis/hiredis repo as well).
      
      When an asynchronous hiredis connection subscribes to a Pub/Sub channel
      and gets an error, and in other related conditions, the function
      redisProcessCallbacks() enters a code path where the link is
      disconnected, however the function returns before freeing the allocated
      reply object. This causes a memory leak. The memory leak was trivial to
      trigger in Redis Sentinel, which uses hiredis, every time we tried to
      subscribe to an instance that required a password, in case the Sentinel
      was configured either with the wrong password or without password at
      all. In this case, the -AUTH error caused the leaking code path to be
      executed.
      
      It was verified with Valgrind that after this change the leak no longer
      happens in Sentinel with a misconfigured authentication password.
      c806dd79
    • clark.kang's avatar
      fix sentinel memory leak · eff212ea
      clark.kang authored
      eff212ea
    • Jan-Erik Rediger's avatar
      One more small fix · fb532881
      Jan-Erik Rediger authored
      fb532881
    • Jan-Erik Rediger's avatar
      Fix spelling and grammatical errors in readme · 3ff49aff
      Jan-Erik Rediger authored
      Closes #2549
      3ff49aff
  12. 27 Apr, 2015 2 commits
  13. 26 Apr, 2015 2 commits
  14. 24 Apr, 2015 1 commit
  15. 23 Apr, 2015 1 commit
  16. 21 Apr, 2015 1 commit
  17. 20 Apr, 2015 2 commits