1. 27 Oct, 2020 2 commits
  2. 26 Oct, 2020 3 commits
    • Yossi Gottlieb's avatar
      Fix wrong zmalloc_size() assumption. (#7963) · 9824fe3e
      Yossi Gottlieb authored
      When using a system with no malloc_usable_size(), zmalloc_size() assumed
      that the heap allocator always returns blocks that are long-padded.
      
      This may not always be the case, and will result with zmalloc_size()
      returning a size that is bigger than allocated. At least in one case
      this leads to out of bound write, process crash and a potential security
      vulnerability.
      
      Effectively this does not affect the vast majority of users, who use
      jemalloc or glibc.
      
      This problem along with a (different) fix was reported by Drew DeVault.
      9824fe3e
    • Oran Agra's avatar
      Attempt to fix sporadic test failures due to wait_for_log_messages (#7955) · 4e2e5be2
      Oran Agra authored
      The tests sometimes fail to find a log message.
      Recently i added a print that shows the log files that are searched
      and it shows that the message was in deed there.
      The only reason i can't think of for this seach to fail, is we we
      happened to read an incomplete line, which didn't match our pattern and
      then on the next iteration we would continue reading from the line after
      it.
      
      The fix is to always re-evaluation the previous line.
      4e2e5be2
    • filipe oliveira's avatar
      redis-benchmark: add tests, --version, a minor bug fixes (#7947) · 01acfa71
      filipe oliveira authored
      
      
      - add test suite coverage for redis-benchmark
      - add --version (similar to what redis-cli has)
      - fix bug sending more requests than intended when pipeline > 1.
      - when done sending requests, avoid freeing client in the write handler, in theory before
        responses are received (probably dead code since the read handler will call clientDone first)
      Co-authored-by: default avatarOran Agra <oran@redislabs.com>
      01acfa71
  3. 25 Oct, 2020 3 commits
  4. 23 Oct, 2020 1 commit
  5. 22 Oct, 2020 4 commits
  6. 20 Oct, 2020 2 commits
  7. 19 Oct, 2020 2 commits
    • Wen Hui's avatar
      fix double fclose in aofrewrite (#7919) · 04a0af90
      Wen Hui authored
      minor fix for a bug which happen on error handling code
      and doesn't look like it could have caused any real harm
      (fd number wouldn't have been reused yet)
      04a0af90
    • Wen Hui's avatar
      Support ACL for Sentinel Mode (#7888) · 0047702a
      Wen Hui authored
      
      
      This commit implements ACL for Sentinel mode, main work of this PR includes:
      
      - Update Sentinel command table in order to better support ACLs.
      - Fix couple of things which currently blocks the support for ACL on sentinel mode.
      - Provide "sentinel sentinel-user" and "sentinel sentinel-pass " configuration in order to let sentinel authenticate with a specific user in other sentinels.
      - requirepass is kept just for compatibility with old config files
      Co-authored-by: default avatarOran Agra <oran@redislabs.com>
      0047702a
  8. 18 Oct, 2020 5 commits
  9. 14 Oct, 2020 1 commit
    • Oran Agra's avatar
      Allow requirepass config to clear the password (#7899) · 19418b6b
      Oran Agra authored
      This is a compatibility issue with redis 5.0 that was introduced by ACL.
      Before this commit, setting requirepass to an empty string will result
      in a server that needs an empty AUTH, unlike redis 5.0 which would
      accept connections without an AUTH.
      19418b6b
  10. 13 Oct, 2020 4 commits
  11. 12 Oct, 2020 1 commit
    • guybe7's avatar
      Minor improvements to module blocked on keys (#7903) · addf47dc
      guybe7 authored
      - Clarify some documentation comments
      - Make sure blocked-on-keys client privdata is accessible
        from withing the timeout callback
      - Handle blocked clients in beforeSleep - In case a key
        becomes "ready" outside of processCommand
      
      See #7879 #7880
      addf47dc
  12. 11 Oct, 2020 8 commits
    • Andreas Lind's avatar
      Support redis-cli -u rediss://... (#7900) · 8b497881
      Andreas Lind authored
      8b497881
    • Yossi Gottlieb's avatar
      Modules: fix RM_GetCommandKeys API. (#7901) · 056a43e1
      Yossi Gottlieb authored
      This cleans up and simplifies the API by passing the command name as the
      first argument. Previously the command name was specified explicitly,
      but was still included in the argv.
      056a43e1
    • Meir Shpilraien (Spielrein)'s avatar
      Add Module API for version and compatibility checks (#7865) · adc3183c
      Meir Shpilraien (Spielrein) authored
      
      
      * Introduce a new API's: RM_GetContextFlagsAll, and
      RM_GetKeyspaceNotificationFlagsAll that will return the
      full flags mask of each feature. The module writer can
      check base on this value if the Flags he needs are
      supported or not.
      
      * For each flag, introduce a new value on redismodule.h,
      this value represents the LAST value and should be there
      as a reminder to update it when a new value is added,
      also it will be used in the code to calculate the full
      flags mask (assuming flags are incrementally increasing).
      In addition, stated that the module writer should not use
      the LAST flag directly and he should use the GetFlagAll API's.
      
      * Introduce a new API: RM_IsSubEventSupported, that returns for a given
      event and subevent, whether or not the subevent supported.
      
      * Introduce a new macro RMAPI_FUNC_SUPPORTED(func) that returns whether
      or not a function API is supported by comparing it to NULL.
      
      * Introduce a new API: int RM_GetServerVersion();, that will return the
      current Redis version in the format 0x00MMmmpp; e.g. 0x00060008;
      
      * Changed unstable version from 999.999.999 to 255.255.255
      Co-authored-by: default avatarOran Agra <oran@redislabs.com>
      Co-authored-by: default avatarYossi Gottlieb <yossigo@gmail.com>
      adc3183c
    • Yossi Gottlieb's avatar
      Module API: Add RM_GetClientCertificate(). (#7866) · 0aec98dc
      Yossi Gottlieb authored
      This API function makes it possible to retrieve the X.509 certificate
      used by clients to authenticate TLS connections.
      0aec98dc
    • Yossi Gottlieb's avatar
      Modules: Add RM_GetDetachedThreadSafeContext(). (#7886) · 907da058
      Yossi Gottlieb authored
      The main motivation here is to provide a way for modules to create a
      single, global context that can be used for logging.
      
      Currently, it is possible to obtain a thread-safe context that is not
      attached to any blocked client by using `RM_GetThreadSafeContext`.
      However, the attached context is not linked to the module identity so
      log messages produced are not tagged with the module name.
      
      Ideally we'd fix this in `RM_GetThreadSafeContext` itself but as it
      doesn't accept the current context as an argument there's no way to do
      that in a backwards compatible manner.
      907da058
    • Yossi Gottlieb's avatar
      Modules: add RM_GetCommandKeys(). · 7d117d75
      Yossi Gottlieb authored
      This is essentially the same as calling COMMAND GETKEYS but provides a
      more efficient interface that can be used in every context (i.e. not a
      Redis command).
      7d117d75
    • Yossi Gottlieb's avatar
      Introduce getKeysResult for getKeysFromCommand. · 9b7f8ba8
      Yossi Gottlieb authored
      Avoid using a static buffer for short key index responses, and make it
      caller's responsibility to stack-allocate a result type. Responses that
      don't fit are still allocated on the heap.
      9b7f8ba8
    • Uri Shachar's avatar
      Support getting configuration from both stdin and file at the same time (#7893) · dab5ec9b
      Uri Shachar authored
      This allows supplying secret configuration (for example - masterauth) via a secure channel
      instead of having it in a plaintext file / command line param, while still allowing for most
      of the configuration to reside there.
      
      Also, remove 'special' case handling for --check-rdb which hasn't been relevant
      since 4.0.0.
      dab5ec9b
  13. 08 Oct, 2020 2 commits
    • Felipe Machado's avatar
      Adds new pop-push commands (LMOVE, BLMOVE) (#6929) · c3f9e017
      Felipe Machado authored
      
      
      Adding [B]LMOVE <src> <dst> RIGHT|LEFT RIGHT|LEFT. deprecating [B]RPOPLPUSH.
      
      Note that when receiving a BRPOPLPUSH we'll still propagate an RPOPLPUSH,
      but on BLMOVE RIGHT LEFT we'll propagate an LMOVE
      
      improvement to existing tests
      - Replace "after 1000" with "wait_for_condition" when wait for
        clients to block/unblock.
      - Add a pre-existing element to target list on basic tests so
        that we can check if the new element was added to the correct
        side of the list.
      - check command stats on the replica to make sure the right
        command was replicated
      Co-authored-by: default avatarOran Agra <oran@redislabs.com>
      c3f9e017
    • Madelyn Olson's avatar
  14. 07 Oct, 2020 1 commit
  15. 06 Oct, 2020 1 commit
    • Oran Agra's avatar
      Allow blocked XREAD on a cluster replica (#7881) · 216c1106
      Oran Agra authored
      I suppose that it was overlooked, since till recently none of the blocked commands were readonly.
      
      other changes:
      - add test for the above.
      - add better support for additional (and deferring) clients for
        cluster tests
      - improve a test which left the client in MULTI state.
      216c1106