1. 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
  2. 06 Jul, 2016 1 commit
  3. 28 Jun, 2016 3 commits
  4. 15 Jun, 2016 2 commits
  5. 05 Jun, 2016 1 commit
  6. 31 May, 2016 1 commit
  7. 18 May, 2016 1 commit
  8. 06 May, 2016 1 commit
  9. 25 Apr, 2016 1 commit
  10. 18 Apr, 2016 1 commit
  11. 02 Mar, 2016 4 commits
  12. 18 Feb, 2016 1 commit
  13. 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
  14. 11 Dec, 2015 2 commits
  15. 28 Nov, 2015 1 commit
  16. 04 Nov, 2015 1 commit
  17. 03 Nov, 2015 1 commit
  18. 30 Oct, 2015 3 commits
  19. 09 Oct, 2015 1 commit
  20. 06 Oct, 2015 1 commit
  21. 15 Sep, 2015 1 commit
    • antirez's avatar
      Test: fix false positive in HSTRLEN test. · 846da5b2
      antirez authored
      HINCRBY* tests later used the value "tmp" that was sometimes generated
      by the random key generation function. The result was ovewriting what
      Tcl expected to be inside Redis with another value, causing the next
      HSTRLEN test to fail.
      846da5b2
  22. 14 Sep, 2015 3 commits
    • antirez's avatar
      GEORADIUS: Don't report duplicates when radius is huge. · 3c23b5ff
      antirez authored
      Georadius works by computing the center + neighbors squares covering all
      the area of the specified position and radius. Then a distance filter is
      used to remove elements which are actually outside the range.
      
      When a huge radius is used, like 5000 km or more, adjacent neighbors may
      collide and be the same, leading to the reporting of the same element
      multiple times. This only happens in the edge case of huge radius but is
      not ideal.
      
      A robust but slow solution would involve qsorting the range to remove
      all the duplicates. However since the collisions are only in adjacent
      boxes, for the way they are ordered in the code, it is much faster to
      just check if the current box is the same as the previous one processed.
      
      This commit adds a regression test for the bug.
      
      Fixes #2767.
      3c23b5ff
    • antirez's avatar
      Test: MOVE expire test improved. · 0a91fc45
      antirez authored
      Related to #2765.
      0a91fc45
    • antirez's avatar
      MOVE now can move TTL metadata as well. · f529a01c
      antirez authored
      MOVE was not able to move the TTL: when a key was moved into a different
      database number, it became persistent like if PERSIST was used.
      
      In some incredible way (I guess almost nobody uses Redis MOVE) this bug
      remained unnoticed inside Redis internals for many years.
      Finally Andy Grunwald discovered it and opened an issue.
      
      This commit fixes the bug and adds a regression test.
      
      Close #2765.
      f529a01c
  23. 07 Sep, 2015 1 commit
    • antirez's avatar
      Test: print info on HSTRLEN test failure. · 467de61c
      antirez authored
      This additional info may provide more clues about the test randomly
      failing from time to time. Probably the failure is due to some previous
      test that overwrites the logical content in the Tcl variable, but this
      will make the problem more obvious.
      467de61c
  24. 12 Aug, 2015 1 commit
  25. 09 Jul, 2015 1 commit
    • antirez's avatar
      GEOENCODE / GEODECODE commands removed. · b96af595
      antirez authored
      Rationale:
      
      1. The commands look like internals exposed without a real strong use
      case.
      2. Whatever there is an use case, the client would implement the
      commands client side instead of paying RTT just to use a simple to
      reimplement library.
      3. They add complexity to an otherwise quite straightforward API.
      
      So for now KILLED ;-)
      b96af595
  26. 29 Jun, 2015 4 commits