1. 23 Apr, 2013 1 commit
    • antirez's avatar
      Test: fix RDB test checking file permissions. · c4656119
      antirez authored
      When the test is executed using the root account, setting the permission
      to 222 does not work as expected, as root can read files with 222
      permission.
      
      Now we skip the test if root is detected.
      
      This fixes issue #1034 and the duplicated #1040 issue.
      
      Thanks to Jan-Erik Rediger (@badboy on Github) for finding a way to reproduce the issue.
      c4656119
  2. 22 Apr, 2013 1 commit
  3. 19 Apr, 2013 3 commits
  4. 18 Apr, 2013 1 commit
    • antirez's avatar
      Redis/Jemalloc Gitignore were too aggressive. · d04afd62
      antirez authored
      Redis gitignore was too aggressive since simply broken.
      
      Jemalloc gitignore was too agressive because it is conceived to just
      keep the files that allow to generate all the rest in development
      environments (so for instance the "configure" file is excluded).
      d04afd62
  5. 11 Apr, 2013 2 commits
    • antirez's avatar
      redis-cli: raise error on bad command line switch. · f8ae70cf
      antirez authored
      Previously redis-cli never tried to raise an error when an unrecognized
      switch was encountered, as everything after the initial options is to be
      transmitted to the server.
      
      However this is too liberal, as there are no commands starting with "-".
      So the new behavior is to produce an error if there is an unrecognized
      switch starting with "-". This should not break past redis-cli usages
      but should prevent broken options to be silently discarded.
      
      As far the first token not starting with "-" is encountered, all the
      rest is considered to be part of the command, so you cna still use
      strings starting with "-" as values, like in:
      
          redis-cli --port 6380 set foo --my-value
      f8ae70cf
    • antirez's avatar
      redis-cli: --latency-history mode implemented. · 0280c2f2
      antirez authored
      0280c2f2
  6. 09 Apr, 2013 4 commits
  7. 08 Apr, 2013 1 commit
    • antirez's avatar
      Cluster: properly send ping to nodes not pinged foro too much time. · f09b2508
      antirez authored
      In commit d728ec6d it was introduced the concept of sending a ping to
      every node not receiving a ping since node_timeout/2 seconds.
      However the code was located in a place that was not executed because of
      a previous conditional causing the loop to re-iterate.
      
      This caused false positives in nodes availability detection.
      
      The current code is still not perfect as a node may be detected to be in
      PFAIL state even if it does not reply for just node_timeout/2 seconds
      that is not correct. There is a plan to improve this code ASAP.
      f09b2508
  8. 04 Apr, 2013 5 commits
  9. 03 Apr, 2013 1 commit
  10. 02 Apr, 2013 3 commits
    • antirez's avatar
      Throttle BGSAVE attempt on saving error. · b237de33
      antirez authored
      When a BGSAVE fails, Redis used to flood itself trying to BGSAVE at
      every next cron call, that is either 10 or 100 times per second
      depending on configuration and server version.
      
      This commit does not allow a new automatic BGSAVE attempt to be
      performed before a few seconds delay (currently 5).
      
      This avoids both the auto-flood problem and filling the disk with
      logs at a serious rate.
      
      The five seconds limit, considering a log entry of 200 bytes, will use
      less than 4 MB of disk space per day that is reasonable, the sysadmin
      should notice before of catastrofic events especially since by default
      Redis will stop serving write queries after the first failed BGSAVE.
      
      This fixes issue #849
      b237de33
    • antirez's avatar
      Version bumped to 2.9.9. · b14fda7d
      antirez authored
      b14fda7d
    • Salvatore Sanfilippo's avatar
      Merge pull request #1017 from jbergstroem/build-improvements · 63457d1a
      Salvatore Sanfilippo authored
      Build improvements
      63457d1a
  11. 29 Mar, 2013 1 commit
  12. 28 Mar, 2013 6 commits
  13. 27 Mar, 2013 4 commits
  14. 26 Mar, 2013 7 commits
    • antirez's avatar
      redis-trib: ClusterNode #info_string output modified. · 4fa30b78
      antirez authored
      The hope is that the new one is more readable.
      4fa30b78
    • antirez's avatar
      Allow SELECT while loading the DB. · df69155e
      antirez authored
      Fixes issue #1024.
      df69155e
    • antirez's avatar
      TTL / PTTL commands: two bugs fixed. · 873f328f
      antirez authored
      This commit fixes two corner cases for the TTL command.
      
      1) When the key was already logically expired (expire time older
      than current time) the command returned -1 instead of -2.
      
      2) When the key was existing and the expire was found to be exactly 0
      (the key was just about to expire), the command reported -1 (that is, no
      expire) instead of a TTL of zero (that is, about to expire).
      873f328f
    • antirez's avatar
      Flag PUBLISH as read-only in the command table. · 8bb5eb73
      antirez authored
      8bb5eb73
    • antirez's avatar
      Transactions: propagate MULTI/EXEC only when needed. · 71f3e743
      antirez authored
      MULTI/EXEC is now propagated to the AOF / Slaves only once we encounter
      the first command that is not a read-only one inside the transaction.
      
      The old behavior was to always propagate an empty MULTI/EXEC block when
      the transaction was composed just of read only commands, or even
      completely empty. This created two problems:
      
      1) It's a bandwidth waste in the replication link and a space waste
         inside the AOF file.
      
      2) We used to always increment server.dirty to force the propagation of
         the EXEC command, resulting into triggering RDB saves more often
         than needed.
      
      Note: even read-only commands may also trigger writes that will be
      propagated, when we access a key that is found expired and Redis will
      synthesize a DEL operation. However there is no need for this to stay
      inside the transaction itself, but only to be ordered.
      
      So for instance something like:
      
          MULTI
          GET foo
          SET key zap
          EXEC
      
      May be propagated into:
      
          DEL foo
          MULTI
          SET key zap
          EXEC
      
      While the DEL is outside the transaction, the commands are delivered in
      the right order and it is not possible for other commands to be inserted
      between DEL and MULTI.
      71f3e743
    • antirez's avatar
      02c269e2
    • antirez's avatar
      Transactions: use the propagate() API to propagate MULTI. · 2f497340
      antirez authored
      The behavior is the same, but the code is now cleaner and uses the
      proper interface instead of dealing directly with AOF/replication
      functions.
      2f497340