1. 31 Aug, 2018 1 commit
    • 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
  2. 29 Aug, 2018 4 commits
  3. 27 Aug, 2018 7 commits
  4. 26 Aug, 2018 5 commits
  5. 25 Aug, 2018 1 commit
  6. 23 Aug, 2018 1 commit
    • zhaozhao.zz's avatar
      networking: make setProtocolError simple and clear · f2ad89a3
      zhaozhao.zz authored
      Function setProtocolError just records proctocol error
      details in server log, set client as CLIENT_CLOSE_AFTER_REPLY.
      It doesn't care about querybuf sdsrange, because we
      will do it after procotol parsing.
      f2ad89a3
  7. 21 Aug, 2018 1 commit
    • Oran Agra's avatar
      Fix unstable tests on slow machines. · c8452ab0
      Oran Agra authored
      Few tests had borderline thresholds that were adjusted.
      
      The slave buffers test had two issues, preventing the slave buffer from growing:
      1) the slave didn't necessarily go to sleep on time, or woke up too early,
         now using SIGSTOP to make sure it goes to sleep exactly when we want.
      2) the master disconnected the slave on timeout
      c8452ab0
  8. 14 Aug, 2018 4 commits
  9. 13 Aug, 2018 2 commits
  10. 03 Aug, 2018 4 commits
  11. 02 Aug, 2018 3 commits
  12. 01 Aug, 2018 6 commits
  13. 31 Jul, 2018 1 commit