1. 29 Nov, 2016 2 commits
  2. 28 Nov, 2016 2 commits
    • antirez's avatar
      PSYNC2: stop sending newlines to sub-slaves when master is down. · eab865a0
      antirez authored
      This actually includes two changes:
      
      1) No newlines to take the master-slave link up when the upstream master
      is down. Doing this is dangerous because the sub-slave often is received
      replication protocol for an half-command, so can't receive newlines
      without desyncing the replication link, even with the code in order to
      cancel out the bytes that PSYNC2 was using. Moreover this is probably
      also not needed/sane, because anyway the slave can keep serving
      requests, and because if it's configured to don't serve stale data, it's
      a good idea, actually, to break the link.
      
      2) When a +CONTINUE with a different ID is received, we now break
      connection with the sub-slaves: they need to be notified as well. This
      was part of the original specification but for some reason it was not
      implemented in the code, and was alter found as a PSYNC2 bug in the
      integration testing.
      eab865a0
    • antirez's avatar
      PSYNC2: Test (WIP). · 16559a02
      antirez authored
      This is the PSYNC2 test that helped find issues in the code, and that
      still can show a protocol desync from time to time. Work is in progress
      in order to find the issue. For now the test is not enabled in "make
      test" and must be run manually.
      16559a02
  3. 18 Nov, 2016 1 commit
  4. 31 Oct, 2016 1 commit
  5. 14 Oct, 2016 1 commit
  6. 24 Aug, 2016 1 commit
  7. 27 Jul, 2016 1 commit
    • antirez's avatar
      Multiple GEORADIUS bugs fixed. · 356a6304
      antirez authored
      By grepping the continuous integration errors log a number of GEORADIUS
      tests failures were detected.
      
      Fortunately when a GEORADIUS failure happens, the test suite logs enough
      information in order to reproduce the problem: the PRNG seed,
      coordinates and radius of the query.
      
      By reproducing the issues, three different bugs were discovered and
      fixed in this commit. This commit also improves the already good
      reporting of the fuzzer and adds the failure vectors as regression
      tests.
      
      The issues found:
      
      1. We need larger squares around the poles in order to cover the area
      requested by the user. There were already checks in order to use a
      smaller step (larger squares) but the limit set (+/- 67 degrees) is not
      enough in certain edge cases, so 66 is used now.
      
      2. Even near the equator, when the search area center is very near the
      edge of the square, the north, south, west or ovest square may not be
      able to fully cover the specified radius. Now a test is performed at the
      edge of the initial guessed search area, and larger squares are used in
      case the test fails.
      
      3. Because of rounding errors between Redis and Tcl, sometimes the test
      signaled false positives. This is now addressed.
      
      Whenever possible the original code was improved a bit in other ways. A
      debugging example stanza was added in order to make the next debugging
      session simpler when the next bug is found.
      356a6304
  8. 22 Jul, 2016 2 commits
    • antirez's avatar
      8b76d55f
    • antirez's avatar
      Sentinel: check Slave INFO state more often when disconnected. · 3e9ce38b
      antirez authored
      During the initial handshake with the master a slave will report to have
      a very high disconnection time from its master (since technically it was
      disconnected since forever, so the current UNIX time in seconds is
      reported).
      
      However when the slave is connected again the Sentinel may re-scan the
      INFO output again only after 10 seconds, which is a long time. During
      this time Sentinels will consider this instance unable to failover, so
      a useless delay is introduced.
      
      Actaully this hardly happened in the practice because when a slave's
      master is down, the INFO period for slaves changes to 1 second. However
      when a manual failover is attempted immediately after adding slaves
      (like in the case of the Sentinel unit test), this problem may happen.
      
      This commit changes the INFO period to 1 second even in the case the
      slave's master is not down, but the slave reported to be disconnected
      from the master (by publishing, last time we checked, a master
      disconnection time field in INFO).
      
      This change is required as a result of an unrelated change in the
      replication code that adds a small delay in the master-slave first
      synchronization.
      3e9ce38b
  9. 06 Jul, 2016 1 commit
  10. 04 Jul, 2016 1 commit
  11. 28 Jun, 2016 3 commits
  12. 15 Jun, 2016 2 commits
  13. 05 Jun, 2016 1 commit
  14. 31 May, 2016 2 commits
  15. 18 May, 2016 1 commit
  16. 06 May, 2016 1 commit
  17. 05 May, 2016 2 commits
  18. 02 May, 2016 1 commit
    • antirez's avatar
      Cluster regression test for #3043. · 9c48f28e
      antirez authored
      The test works but is very slow so far, since it involves resharding
      1/5 of all the cluster slots from master 0 to the other 4 masters and
      back into the original master.
      9c48f28e
  19. 25 Apr, 2016 1 commit
  20. 18 Apr, 2016 1 commit
  21. 02 Mar, 2016 4 commits
  22. 18 Feb, 2016 1 commit
  23. 17 Feb, 2016 1 commit
    • antirez's avatar
      Cluster: resharding test provides more state when failing. · 15f37ebd
      antirez authored
      Now elements added to lists are incremental numbers in order to
      understand, when inconsistencies are found, what is the order in which
      the elements were added. Also the error now provides both the expected
      and found value.
      15f37ebd
  24. 02 Feb, 2016 1 commit
  25. 15 Jan, 2016 2 commits
  26. 08 Jan, 2016 1 commit
    • antirez's avatar
      Scripting: handle trailing comments. · f43c794b
      antirez authored
      This fix, provided by Paul Kulchenko (@pkulchenko), allows the Lua
      scripting engine to evaluate statements with a trailing comment like the
      following one:
      
          EVAL "print() --comment" 0
      
      Lua can't parse the above if the string does not end with a newline, so
      now a final newline is always added automatically. This does not change
      the SHA1 of scripts since the SHA1 is computed on the body we pass to
      EVAL, without the other code we add to register the function.
      
      Close #2951.
      f43c794b
  27. 02 Jan, 2016 1 commit
  28. 29 Dec, 2015 1 commit