1. 11 Sep, 2018 5 commits
  2. 07 Sep, 2018 4 commits
  3. 06 Sep, 2018 2 commits
  4. 05 Sep, 2018 7 commits
  5. 04 Sep, 2018 7 commits
  6. 03 Sep, 2018 6 commits
  7. 02 Sep, 2018 1 commit
  8. 31 Aug, 2018 6 commits
    • antirez's avatar
      Test: processing of master stream in slave -BUSY state. · febe102b
      antirez authored
      See #5297.
      febe102b
    • antirez's avatar
      After slave Lua script leaves busy state, re-process the master buffer. · 7fa49391
      antirez authored
      Technically speaking we don't really need to put the master client in
      the clients that need to be processed, since in practice the PING
      commands from the master will take care, however it is conceptually more
      sane to do so.
      7fa49391
    • antirez's avatar
      While the slave is busy, just accumulate master input. · 9ab91b8c
      antirez authored
      Processing command from the master while the slave is in busy state is
      not correct, however we cannot, also, just reply -BUSY to the
      replication stream commands from the master. The correct solution is to
      stop processing data from the master, but just accumulate the stream
      into the buffers and resume the processing later.
      
      Related to #5297.
      9ab91b8c
    • antirez's avatar
      Allow scripts to timeout even if from the master instance. · 83af8ef1
      antirez authored
      However the master scripts will be impossible to kill.
      
      Related to #5297.
      83af8ef1
    • antirez's avatar
      Allow scripts to timeout on slaves as well. · f5b29c64
      antirez authored
      See reasoning in #5297.
      f5b29c64
    • zhaozhao.zz's avatar
      networking: fix unexpected negative or zero readlen · dce7cefb
      zhaozhao.zz authored
      To avoid copying buffers to create a large Redis Object which
      exceeding PROTO_IOBUF_LEN 32KB, we just read the remaining data
      we need, which may less than PROTO_IOBUF_LEN. But the remaining
      len may be zero, if the bulklen+2 equals sdslen(c->querybuf),
      in client pause context.
      
      For example:
      
      Time1:
      
      python
      >>> import os, socket
      >>> server="127.0.0.1"
      >>> port=6379
      >>> data1="*3\r\n$3\r\nset\r\n$1\r\na\r\n$33000\r\n"
      >>> data2="".join("x" for _ in range(33000)) + "\r\n"
      >>> data3="\n\n"
      >>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      >>> s.settimeout(10)
      >>> s.connect((server, port))
      >>> s.send(data1)
      28
      
      Time2:
      
      redis-cli client pause 10000
      
      Time3:
      
      >>> s.send(data2)
      33002
      >>> s.send(data3)
      2
      >>> s.send(data3)
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      socket.error: [Errno 104] Connection reset by peer
      
      To fix that, we should check if remaining is greater than zero.
      dce7cefb
  9. 29 Aug, 2018 2 commits