1. 22 1月, 2015 3 次提交
    • M
      Fix potential invalid read past end of array · 29049507
      Matt Stancliff 提交于
      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.
      29049507
    • M
      Fix cluster reset memory leak · 30152554
      Matt Stancliff 提交于
      [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: ???
      30152554
    • M
      Fix sending uninitialized bytes · 72b8574c
      Matt Stancliff 提交于
      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)
      72b8574c
  2. 21 1月, 2015 11 次提交
  3. 13 1月, 2015 3 次提交
    • A
      Cluster: fetch my IP even if msg is not MEET for the first time. · cf76af6b
      antirez 提交于
      In order to avoid that misconfigured cluster nodes at some time may
      force an IP update on other nodes, it is required that nodes update
      their own address only on MEET messages. However it does not make sense
      to do this the first time a node is contacted and yet does not have an
      IP, we just risk that myself->ip remains not assigned if there are
      messages lost or cluster creation procedures that don't make sure
      everybody is targeted by at least one incoming MEET message.
      
      Also fix the logging of the IP switch avoiding the :-1 tail.
      cf76af6b
    • A
      Cluster: clusterMsgDataGossip structure, explict padding + minor stuff. · 5b0f4a83
      antirez 提交于
      Also explicitly set version to 0, add a protocol version define, improve
      comments in the gossip structure.
      
      Note that the structure layout is the same after the change, we are just
      making the padding explicit with an additional not used 16 bits field.
      So this commit is still able to talk with the previous versions of
      cluster nodes.
      5b0f4a83
    • A
      Suppress valgrind error about write sending uninitialized data. · 237ab727
      antirez 提交于
      Valgrind checks that the buffers we transfer via syscalls are all
      composed of bytes actually initialized. This is useful, it makes we able
      to avoid leaking informations in non initialized parts fo messages
      transferred to other hosts. This commit fixes one of such issues.
      237ab727
  4. 12 1月, 2015 5 次提交
  5. 10 1月, 2015 4 次提交
    • M
      Remove RDB AUX memory leaks · eb7d67a3
      Matt Stancliff 提交于
      eb7d67a3
    • M
      Supervise redis processes only if configured · 36a3b753
      Matt Stancliff 提交于
      Adds configuration option 'supervised [no | upstart | systemd | auto]'
      
      Also removed 'bzero' from the previous implementation because it's 2015.
      (We could actually statically initialize those structs, but clang
      throws an invalid warning when we try, so it looks bad even though it
      isn't bad.)
      
      Fixes #2264
      36a3b753
    • M
      Define default pidfile when creating pid · 5e8b7e4f
      Matt Stancliff 提交于
      We want pidfile to be NULL on startup so we can detect if the user
      set an explicit value versus only using the default value.
      
      Closes #1967
      Fixes #2076
      5e8b7e4f
    • R
      Create PID file even if in foreground · e6d499a4
      rebx 提交于
      Previously, Redis only wrote the pid file if
      it was daemonizing, but many times it's useful to have
      the pid written out even if you're in the foreground.
      
      Some background for this is:
      I usually run redis via daemontools. That entails running
      redis-server on the foreground. Given that, I'd also want
      redis-server to create a pidfile so other processes (e.g. nagios)
      can run checks for that.
      
      Closes #463
      e6d499a4
  6. 09 1月, 2015 7 次提交
  7. 08 1月, 2015 7 次提交