1. 15 Mar, 2018 5 commits
  2. 12 Mar, 2018 1 commit
    • Oran Agra's avatar
      Adding real allocator fragmentation to INFO and MEMORY command + active defrag test · 806736cd
      Oran Agra authored
      other fixes / improvements:
      - LUA script memory isn't taken from zmalloc (taken from libc malloc)
        so it can cause high fragmentation ratio to be displayed (which is false)
      - there was a problem with "fragmentation" info being calculated from
        RSS and used_memory sampled at different times (now sampling them together)
      
      other details:
      - adding a few more allocator info fields to INFO and MEMORY commands
      - improve defrag test to measure defrag latency of big keys
      - increasing the accuracy of the defrag test (by looking at real grag info)
        this way we can use an even lower threshold and still avoid false positives
      - keep the old (total) "fragmentation" field unchanged, but add new ones for spcific things
      - add these the MEMORY DOCTOR command
      - deduct LUA memory from the rss in case of non jemalloc allocator (one for which we don't "allocator active/used")
      - reduce sampling rate of the rss and allocator info
      806736cd
  3. 09 Jan, 2018 1 commit
  4. 01 Dec, 2017 9 commits
  5. 24 Nov, 2017 1 commit
  6. 23 Nov, 2017 1 commit
    • Oran Agra's avatar
      fix string to double conversion, stopped parsing on \0 even if the string has more data. · adf2701c
      Oran Agra authored
      getLongLongFromObject calls string2ll which has this line:
      /* Return if not all bytes were used. */
      so if you pass an sds with 3 characters "1\01" it will fail.
      
      but getLongDoubleFromObject calls strtold, and considers it ok if eptr[0]==`\0`
      i.e. if the end of the string found by strtold ends with null terminator
      
      127.0.0.1:6379> set a 1
      OK
      127.0.0.1:6379> setrange a 2 2
      (integer) 3
      127.0.0.1:6379> get a
      "1\x002"
      127.0.0.1:6379> incrbyfloat a 2
      "3"
      127.0.0.1:6379> get a
      "3"
      adf2701c
  7. 30 Oct, 2017 1 commit
  8. 03 Jul, 2017 1 commit
    • antirez's avatar
      Fix GEORADIUS edge case with huge radius. · b2cd9fca
      antirez authored
      This commit closes issue #3698, at least for now, since the root cause
      was not fixed: the bounding box function, for huge radiuses, does not
      return a correct bounding box, there are points still within the radius
      that are left outside.
      
      So when using GEORADIUS queries with radiuses in the order of 5000 km or
      more, it was possible to see, at the edge of the area, certain points
      not correctly reported.
      
      Because the bounding box for now was used just as an optimization, and
      such huge radiuses are not common, for now the optimization is just
      switched off when the radius is near such magnitude.
      
      Three test cases found by the Continuous Integration test were added, so
      that we can easily trigger the bug again, both for regression testing
      and in order to properly fix it as some point in the future.
      b2cd9fca
  9. 16 Jun, 2017 1 commit
  10. 15 Jun, 2017 1 commit
  11. 22 Apr, 2017 3 commits
    • antirez's avatar
      Defrag: test currently disabled, too many false positives. · c861e1e1
      antirez authored
      Related to #3786.
      c861e1e1
    • antirez's avatar
      Defrag: fix test false positive. · a1739085
      antirez authored
      Apparently 1.4 is too low compared to what you get in certain setups
      (including mine). I raised it to 1.55 that hopefully is still enough to
      test that the fragmentation went down from 1.7 but without incurring in
      issues, however the test setup may be still fragile so certain times this
      may lead to false positives again, it's hard to test for these things
      in a determinsitic way.
      
      Related to #3786.
      a1739085
    • oranagra's avatar
      add test for active defrag · 0fb5c4eb
      oranagra authored
      0fb5c4eb
  12. 15 Mar, 2017 1 commit
  13. 22 Feb, 2017 2 commits
  14. 20 Dec, 2016 1 commit
  15. 05 Dec, 2016 1 commit
    • antirez's avatar
      Geo: improve fuzz test. · b1fc06f7
      antirez authored
      The test now uses more diverse radius sizes, especially sizes near or
      greater the whole earth surface are used, that are known to trigger edge
      cases. Moreover the PRNG seeding was probably resulting into the same
      sequence tested over and over again, now seeding unsing the current unix
      time in milliseconds.
      
      Related to #3631.
      b1fc06f7
  16. 18 Nov, 2016 1 commit
  17. 31 Oct, 2016 1 commit
  18. 14 Oct, 2016 1 commit
  19. 24 Aug, 2016 1 commit
  20. 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
  21. 06 Jul, 2016 1 commit
  22. 28 Jun, 2016 3 commits
  23. 15 Jun, 2016 1 commit