• Nathan Parry's avatar
    redis-cli --rdb fails if server sends a ping · 0f4dbd9a
    Nathan Parry authored
    Redis pings slaves in "pre-synchronization stage" with newlines. (See
    https://github.com/antirez/redis/blob/2.6.9/src/replication.c#L814)
    However, redis-cli does not expect this - it sees the newline as the end
    of the bulk length line, and ends up returning 0 as bulk the length.
    This manifests as the following when running redis-cli:
    
        $ ./src/redis-cli --rdb some_file
        SYNC sent to master, writing 0 bytes to 'some_file'
        Transfer finished with success.
    
    With this commit, we just ignore leading newlines while reading the bulk
    length line.
    
    To reproduce the problem, load enough data into Redis so that the
    preparation of the RDB snapshot takes long enough for a ping to occur
    while redis-cli is waiting for the data.
    0f4dbd9a
redis-cli.c 42 KB