1. 22 Jan, 2015 15 commits
    • antirez's avatar
      Merge branch 'testing' into 3.0 · 00e76ae8
      antirez authored
      00e76ae8
    • Matt Stancliff's avatar
      Fix cluster migrate memory leak · ebb07a0b
      Matt Stancliff authored
      Fixes valgrind error:
      48 bytes in 1 blocks are definitely lost in loss record 196 of 373
         at 0x4910D3: je_malloc (jemalloc.c:944)
         by 0x42807D: zmalloc (zmalloc.c:125)
         by 0x41FA0D: dictGetIterator (dict.c:543)
         by 0x41FA48: dictGetSafeIterator (dict.c:555)
         by 0x459B73: clusterHandleSlaveMigration (cluster.c:2776)
         by 0x45BF27: clusterCron (cluster.c:3123)
         by 0x423344: serverCron (redis.c:1239)
         by 0x41D6CD: aeProcessEvents (ae.c:311)
         by 0x41D8EA: aeMain (ae.c:455)
         by 0x41A84B: main (redis.c:3832)
      ebb07a0b
    • Matt Stancliff's avatar
      Fix potential invalid read past end of array · 98faed3a
      Matt Stancliff authored
      If array has N elements, we can't read +1 if we are already at N.
      
      Also, we need to move elements by their storage size in the array,
      not just by individual bytes.
      98faed3a
    • Matt Stancliff's avatar
      Fix cluster reset memory leak · 97ffeb7c
      Matt Stancliff authored
      [maybe] Fixes valgrind errors:
      32 bytes in 4 blocks are definitely lost in loss record 107 of 228
         at 0x80EA447: je_malloc (jemalloc.c:944)
         by 0x806E59C: zrealloc (zmalloc.c:125)
         by 0x80A9AFC: clusterSetMaster (cluster.c:801)
         by 0x80AEDC9: clusterCommand (cluster.c:3994)
         by 0x80682A5: call (redis.c:2049)
         by 0x8068A20: processCommand (redis.c:2309)
         by 0x8076497: processInputBuffer (networking.c:1143)
         by 0x8073BAF: readQueryFromClient (networking.c:1208)
         by 0x8060E98: aeProcessEvents (ae.c:412)
         by 0x806123B: aeMain (ae.c:455)
         by 0x806C3DB: main (redis.c:3832)
      
      64 bytes in 8 blocks are definitely lost in loss record 143 of 228
         at 0x80EA447: je_malloc (jemalloc.c:944)
         by 0x806E59C: zrealloc (zmalloc.c:125)
         by 0x80AAB40: clusterProcessPacket (cluster.c:801)
         by 0x80A847F: clusterReadHandler (cluster.c:1975)
         by 0x30000FF: ???
      
      80 bytes in 10 blocks are definitely lost in loss record 148 of 228
         at 0x80EA447: je_malloc (jemalloc.c:944)
         by 0x806E59C: zrealloc (zmalloc.c:125)
         by 0x80AAB40: clusterProcessPacket (cluster.c:801)
         by 0x80A847F: clusterReadHandler (cluster.c:1975)
         by 0x2FFFFFF: ???
      97ffeb7c
    • Matt Stancliff's avatar
      Fix sending uninitialized bytes · 4a36350d
      Matt Stancliff authored
      Fixes valgrind error:
      Syscall param write(buf) points to uninitialised byte(s)
         at 0x514C35D: ??? (syscall-template.S:81)
         by 0x456B81: clusterWriteHandler (cluster.c:1907)
         by 0x41D596: aeProcessEvents (ae.c:416)
         by 0x41D8EA: aeMain (ae.c:455)
         by 0x41A84B: main (redis.c:3832)
       Address 0x5f268e2 is 2,274 bytes inside a block of size 8,192 alloc'd
         at 0x4932D1: je_realloc (jemalloc.c:1297)
         by 0x428185: zrealloc (zmalloc.c:162)
         by 0x4269E0: sdsMakeRoomFor.part.0 (sds.c:142)
         by 0x426CD7: sdscatlen (sds.c:251)
         by 0x4579E7: clusterSendMessage (cluster.c:1995)
         by 0x45805A: clusterSendPing (cluster.c:2140)
         by 0x45BB03: clusterCron (cluster.c:2944)
         by 0x423344: serverCron (redis.c:1239)
         by 0x41D6CD: aeProcessEvents (ae.c:311)
         by 0x41D8EA: aeMain (ae.c:455)
         by 0x41A84B: main (redis.c:3832)
       Uninitialised value was created by a stack allocation
         at 0x457810: nodeUpdateAddressIfNeeded (cluster.c:1236)
      4a36350d
    • antirez's avatar
      Cluster test: wait for port to unbound in kill_instance. · c8f90374
      antirez authored
      Otherwise kill_instance + restart_instance in short succession will
      still find the port busy and will fail.
      c8f90374
    • antirez's avatar
      707d97ac
    • antirez's avatar
      4688f60b
    • antirez's avatar
      Cluster: node deletion cleanup / centralization. · 0a3edcbe
      antirez authored
      0a3edcbe
    • antirez's avatar
      Cluster: set the slaves->slaveof filed to NULL when master is freed. · 5130c253
      antirez authored
      Related to issue #2289.
      5130c253
    • Matt Stancliff's avatar
      Add --track-origins=yes to valgrind · 98f56f8f
      Matt Stancliff authored
      98f56f8f
    • Matt Stancliff's avatar
      fa470fe7
    • antirez's avatar
      luaRedisGenericCommand(): log error at WARNING level when re-entered. · 26698af3
      antirez authored
      Rationale is that when re-entering, it is likely due to Lua debugging
      hooks. Returning an error will be ignored in most cases, going totally
      unnoticed. With the log at least we leave a trace.
      
      Related to issue #2302.
      26698af3
    • antirez's avatar
      luaRedisGenericCommand() recursion: just return an error. · 9b92eddd
      antirez authored
      Instead of calling redisPanic() to abort the server.
      
      Related to issue #2302.
      9b92eddd
    • antirez's avatar
      Panic on recursive calls to luaRedisGenericCommand(). · 83a6cc33
      antirez authored
      Related to issue #2302.
      83a6cc33
  2. 21 Jan, 2015 1 commit
    • antirez's avatar
      AOF rewrite: set iterator var to NULL when freed. · 23cc0a3f
      antirez authored
      The cleanup code expects that if 'di' is not NULL, it is a valid
      iterator that should be freed.
      
      The result of this bug was a crash of the AOF rewriting process if an
      error occurred after the DBs data are written and the iterator is no
      longer valid.
      23cc0a3f
  3. 13 Jan, 2015 7 commits
  4. 12 Jan, 2015 1 commit
    • antirez's avatar
      Cluster: initialize mf_end. · 1584c7a3
      antirez authored
      Can't be initialized by resetManualFailover() since it's actual state
      the function uses, so we need to initialize it at startup time. Not
      really a bug in practical terms, but showed up into valgrind and is not
      technically correct anyway.
      1584c7a3
  5. 09 Jan, 2015 4 commits
  6. 08 Jan, 2015 6 commits
  7. 23 Dec, 2014 1 commit
    • antirez's avatar
      INFO loading stats: three fixes. · 1e8f1577
      antirez authored
      1. Server unxtime may remain not updated while loading AOF, so ETA is
      not updated correctly.
      
      2. Number of processed byte was not initialized.
      
      3. Possible division by zero condition (likely cause of issue #1932).
      1e8f1577
  8. 22 Dec, 2014 1 commit
  9. 19 Dec, 2014 1 commit
  10. 17 Dec, 2014 2 commits
  11. 16 Dec, 2014 1 commit