1. 04 Nov, 2019 3 commits
  2. 03 Nov, 2019 1 commit
    • Oran Agra's avatar
      Module API for loading and saving long double · 779aebc9
      Oran Agra authored
      looks like each platform implements long double differently (different bit count)
      so we can't save them as binary, and we also want to avoid creating a new RDB
      format version, so we save these are hex strings using "%La".
      
      This commit includes a change in the arguments of ld2string to support this.
      as well as tests for coverage and short reads.
      
      coded by @guybe7
      779aebc9
  3. 29 Oct, 2019 1 commit
    • Oran Agra's avatar
      Modules hooks: complete missing hooks for the initial set of hooks · 51c3ff8d
      Oran Agra authored
      * replication hooks: role change, master link status, replica online/offline
      * persistence hooks: saving, loading, loading progress
      * misc hooks: cron loop, shutdown, module loaded/unloaded
      * change the way hooks test work, and add tests for all of the above
      
      startLoading() now gets flag indicating what is loaded.
      stopLoading() now gets an indication of success or failure.
      adding startSaving() and stopSaving() with similar args and role.
      51c3ff8d
  4. 28 Oct, 2019 1 commit
    • Oran Agra's avatar
      Module api tests for RM_Call · 0399b5a2
      Oran Agra authored
      Adding a test for coverage for RM_Call in a new "misc" unit
      to be used for various short simple tests
      
      also solves compilation warnings in redismodule.h and fork.c
      0399b5a2
  5. 24 Oct, 2019 4 commits
  6. 23 Oct, 2019 1 commit
  7. 10 Oct, 2019 1 commit
  8. 09 Oct, 2019 1 commit
  9. 08 Oct, 2019 1 commit
    • antirez's avatar
      Geo: output 10 chars of geohash, not 11. · 009862ab
      antirez authored
      This does not limit the actual precision, because the last digit bits were
      garbage, and the shift value became even negative in the last iteration.
      009862ab
  10. 07 Oct, 2019 4 commits
    • Yossi Gottlieb's avatar
      TLS: Configuration options. · 61733ded
      Yossi Gottlieb authored
      Add configuration options for TLS protocol versions, ciphers/cipher
      suites selection, etc.
      61733ded
    • Oran Agra's avatar
      TLS: Implement support for write barrier. · 6b629480
      Oran Agra authored
      6b629480
    • Oran Agra's avatar
      diskless replication rdb transfer uses pipe, and writes to sockets form the parent process. · 5a477946
      Oran Agra authored
      misc:
      - handle SSL_has_pending by iterating though these in beforeSleep, and setting timeout of 0 to aeProcessEvents
      - fix issue with epoll signaling EPOLLHUP and EPOLLERR only to the write handlers. (needed to detect the rdb pipe was closed)
      - add key-load-delay config for testing
      - trim connShutdown which is no longer needed
      - rioFdsetWrite -> rioFdWrite - simplified since there's no longer need to write to multiple FDs
      - don't detect rdb child exited (don't call wait3) until we detect the pipe is closed
      - Cleanup bad optimization from rio.c, add another one
      5a477946
    • Yossi Gottlieb's avatar
      TLS: Connections refactoring and TLS support. · b087dd1d
      Yossi Gottlieb authored
      * Introduce a connection abstraction layer for all socket operations and
      integrate it across the code base.
      * Provide an optional TLS connections implementation based on OpenSSL.
      * Pull a newer version of hiredis with TLS support.
      * Tests, redis-cli updates for TLS support.
      b087dd1d
  11. 03 Oct, 2019 3 commits
  12. 30 Sep, 2019 2 commits
  13. 26 Sep, 2019 1 commit
  14. 22 Sep, 2019 1 commit
  15. 18 Aug, 2019 2 commits
  16. 30 Jul, 2019 1 commit
  17. 24 Jul, 2019 1 commit
  18. 22 Jul, 2019 1 commit
  19. 17 Jul, 2019 2 commits
    • Oran Agra's avatar
      prevent diskless replica from terminating on short read · c56b4ddc
      Oran Agra authored
      now that replica can read rdb directly from the socket, it should avoid exiting
      on short read and instead try to re-sync.
      
      this commit tries to have minimal effects on non-diskless rdb reading.
      and includes a test that tries to trigger this scenario on various read cases.
      c56b4ddc
    • Oran Agra's avatar
      Module API for Forking · 56258c6b
      Oran Agra authored
      * create module API for forking child processes.
      * refactor duplicate code around creating and tracking forks by AOF and RDB.
      * child processes listen to SIGUSR1 and dies exitFromChild in order to
        eliminate a valgrind warning of unhandled signal.
      * note that BGSAVE error reply has changed.
      
      valgrind error is:
        Process terminating with default action of signal 10 (SIGUSR1)
      56258c6b
  20. 08 Jul, 2019 1 commit
    • Oran Agra's avatar
      diskless replication on slave side (don't store rdb to file), plus some other related fixes · 2de544cf
      Oran Agra authored
      The implementation of the diskless replication was currently diskless only on the master side.
      The slave side was still storing the received rdb file to the disk before loading it back in and parsing it.
      
      This commit adds two modes to load rdb directly from socket:
      1) when-empty
      2) using "swapdb"
      the third mode of using diskless slave by flushdb is risky and currently not included.
      
      other changes:
      --------------
      distinguish between aof configuration and state so that we can re-enable aof only when sync eventually
      succeeds (and not when exiting from readSyncBulkPayload after a failed attempt)
      also a CONFIG GET and INFO during rdb loading would have lied
      
      When loading rdb from the network, don't kill the server on short read (that can be a network error)
      
      Fix rdb check when performed on preamble AOF
      
      tests:
      run replication tests for diskless slave too
      make replication test a bit more aggressive
      Add test for diskless load swapdb
      2de544cf
  21. 22 May, 2019 1 commit
    • Angus Pearson's avatar
      Implement `SCAN cursor [TYPE type]` modifier suggested in issue #6107. · bf963253
      Angus Pearson authored
      Add tests to check basic functionality of this optional keyword, and also tested with
      a module (redisgraph). Checked quickly with valgrind, no issues.
      
      Copies name the type name canonicalisation code from `typeCommand`, perhaps this would
      be better factored out to prevent the two diverging and both needing to be edited to
      add new `OBJ_*` types, but this is a little fiddly with C strings.
      
      The [redis-doc](https://github.com/antirez/redis-doc/blob/master/commands.json) repo
      will need to be updated with this new arg if accepted.
      
      A quirk to be aware of here is that the GEO commands are backed by zsets not their own
      type, so they're not distinguishable from other zsets.
      
      Additionally, for sparse types this has the same behaviour as `MATCH` in that it may
      return many empty results before giving something, even for large `COUNT`s.
      bf963253
  22. 14 May, 2019 1 commit
    • antirez's avatar
      Test: fix slowlog test false positive. · 1a1ba483
      antirez authored
      In fast systems "SLOWLOG RESET" is fast enough to don't be logged even
      when the time limit is "1" sometimes. Leading to false positives such
      as:
      
      [err]: SLOWLOG - can be disabled in tests/unit/slowlog.tcl
      Expected '1' to be equal to '0'
      1a1ba483
  23. 13 May, 2019 1 commit
    • antirez's avatar
      Fix test false positive introduced by threaded I/O. · 4f4676a1
      antirez authored
      Now clients that are ready to be terminated asynchronously are processed
      more often in beforeSleep() instead of being processed in serverCron().
      This means that the test will not be able to catch the moment the client
      was terminated, also note that the 'omem' figure now changes in big
      steps, because of the new client output buffers layout.
      
      So we have to change the test range in order to accomodate for that.
      Yet the test is useful enough to be worth taking, even if its precision
      is reduced by this commit. Probably if we get more problems, a thing
      that makes sense is just to check that the limit is < 200k. That's more
      than enough actually.
      4f4676a1
  24. 10 May, 2019 1 commit
  25. 05 May, 2019 1 commit
    • Oran Agra's avatar
      make replication tests more stable on slow machines · ba809f26
      Oran Agra authored
      solving few replication related tests race conditions which fail on slow machines
      
      bugfix in slave buffers test: since the test is executed twice, each time with
      a different commands count, the threshold for the delta can't be a constant.
      ba809f26
  26. 15 Apr, 2019 1 commit
  27. 08 Apr, 2019 1 commit