1. 24 Feb, 2021 6 commits
  2. 23 Feb, 2021 2 commits
    • Yossi Gottlieb's avatar
      Fix compile errors with no HAVE_MALLOC_SIZE. (#8533) · dd885780
      Yossi Gottlieb authored
      Also adds a new daily CI test, relying on the fact that we don't use malloc_size() on alpine libmusl.
      
      Fixes #8531
      dd885780
    • Yossi Gottlieb's avatar
      Fix failed tests on Linux Alpine and add a CI job. (#8532) · 95ea7454
      Yossi Gottlieb authored
      * Remove linux/version.h dependency.
      
      This introduces unnecessary dependencies, and generally not a good idea
      as the platform we build on may be different than the platform we run
      on.
      
      To determine if sync_file_range exists we can simply rely on header file
      hints.
      
      * Fix setproctitle() on libmusl.
      
      The previous ifdef checks were a bit too strict for no apparent
      reason.
      
      * Fix tests failure on Linux with no backtrace.
      
      * Add alpine daily CI job.
      95ea7454
  3. 22 Feb, 2021 6 commits
  4. 21 Feb, 2021 3 commits
    • Yossi Gottlieb's avatar
      Fix allowed length for REPLCONF ip-address. (#8517) · d828f90c
      Yossi Gottlieb authored
      Originally this was limited to IPv6 address length, but effectively it
      has been used for host names and now that Sentinel accepts that as well
      we need to be able to store full hostnames.
      
      Fixes #8507
      d828f90c
    • Huang Zw's avatar
      Client tracking tracking-redir-broken push len is 2 not 3 (#8456) · f687ac0c
      Huang Zw authored
      When redis responds with tracking-redir-broken push message (RESP3),
      it was responding with a broken protocol: an array of 3 elements, but only
      pushes 2 elements.
      
      Some bugs in the test make this pass. Read the push reply
      will consume an extra reply, because the reply length is 3, but there
      are only two elements, so the next reply will be treated as third
      element. So the test is corrected too.
      
      Other changes:
      * checkPrefixCollisionsOrReply success should return 1 instead of -1,
        this bug didn't have any implications.
      * improve client tracking tests to validate more of the response it reads.
      f687ac0c
    • Gnanesh's avatar
      EXPIRE, EXPIREAT, SETEX, GETEX: Return error when expire time overflows (#8287) · 0772098b
      Gnanesh authored
      
      
      Respond with error if expire time overflows from positive to negative of vice versa.
      
      * `SETEX`, `SET EX`, `GETEX` etc would have already error on negative value,
      but now they would also error on overflows (i.e. when the input was positive but
      after the manipulation it becomes negative, which would have passed before)
      * `EXPIRE` and `EXPIREAT` was ok taking negative values (would implicitly delete
      the key), we keep that, but we do error if the user provided a value that changes
      sign when manipulated (except the case of changing sign when `basetime` is added)
      Signed-off-by: default avatarGnanesh <gnaneshkunal@outlook.com>
      Co-authored-by: default avatarOran Agra <oran@redislabs.com>
      0772098b
  5. 20 Feb, 2021 1 commit
    • Jim Brunner's avatar
      dict: pause rehash, minor readability refactor (#8515) · 06966d2a
      Jim Brunner authored
      The `dict` field `iterators` is misleading and incorrect. 
      This variable is used for 1 purpose - to pause rehashing.
      
      The current `iterators` field doesn't actually count "iterators".
      It counts "safe iterators".  But - it doesn't actually count safe iterators
      either.  For one, it's only incremented once the safe iterator begins to
      iterate, not when it's created.  It's also incremented in `dictScan` to
      prevent rehashing (and commented to make it clear why `iterators` is
      being incremented during a scan).
      
      This update renames the field as `pauserehash` and creates 2 helper
      macros `dictPauseRehashing(d)` and `dictResumeRehashing(d)`
      06966d2a
  6. 17 Feb, 2021 2 commits
  7. 16 Feb, 2021 5 commits
  8. 15 Feb, 2021 3 commits
  9. 14 Feb, 2021 1 commit
  10. 11 Feb, 2021 1 commit
    • Yossi Gottlieb's avatar
      Fix duplicate replicas issue. (#8481) · 94bc26e6
      Yossi Gottlieb authored
      We need to store replicas referenced by their announced address (IP or
      address). Before that, if hostnames were used and the IP address
      changed, duplicate entries would have been created.
      94bc26e6
  11. 10 Feb, 2021 2 commits
  12. 09 Feb, 2021 2 commits
  13. 08 Feb, 2021 3 commits
  14. 07 Feb, 2021 2 commits
    • Oran Agra's avatar
      Optimize HRANDFIELD and ZRANDMEMBER case 4 when ziplist encoded (#8444) · 62b1f320
      Oran Agra authored
      
      
      It is inefficient to repeatedly pick a single random element from a
      ziplist.
      For CASE4, which is when the user requested a low number of unique
      random picks from the collectoin, we used thta pattern.
      
      Now we use a different algorithm that picks unique elements from a
      ziplist, and guarentee no duplicate but doesn't provide random order
      (which is only needed in the non-unique random picks case)
      
      Unrelated changes:
      * change ziplist count and indexes variables to unsigned
      * solve compilation warnings about uninitialized vars in gcc 10.2
      Co-authored-by: default avatarxinluton <xinluton@qq.com>
      62b1f320
    • Yossi Gottlieb's avatar
      Add --insecure option to command line tools. (#8416) · be83bb13
      Yossi Gottlieb authored
      Disable certificate validation, making it possible to connect to servers
      without configuring full trust chain.
      
      The use of this option is insecure and makes the connection vulnerable
      to man in the middle attacks.
      be83bb13
  15. 05 Feb, 2021 1 commit
    • Viktor Söderqvist's avatar
      RM_ZsetRem: Delete key if empty (#8453) · aea6e71e
      Viktor Söderqvist authored
      Without this fix, RM_ZsetRem can leave empty sorted sets which are
      not allowed to exist.
      
      Removing from a sorted set while iterating seems to work (while
      inserting causes failed assetions). RM_ZsetRangeEndReached is
      modified to return 1 if the key doesn't exist, to terminate
      iteration when the last element has been removed.
      aea6e71e