-
Notifications
You must be signed in to change notification settings - Fork 26
Closed
Description
- Reported as: lp:1339334
- Reported by: lp:~martin-b69y0hv8h
- Reported at: 2014-07-08T20:38:24Z
Imported from Launchpad using lp2gh.
I think I've found the cause....
In memcached_instance_st::close_socket(), we reset read_buffer_length and read_ptr, but not read_data_length. So, read_data_length says we still have lots of data in the buffer, whereas read_data_length says it's empty.
If repack_input_buffer is called, we'll skip the initial "if" statement, then we'll try to read some more, but put the data at read_ptr + read_data_length, i.e. not at the start of the buffer, but further along.
I think I'm actually seeing this bug in practice. At least, I'm seeing old keys being returned by new requests in the presence of servers going away and coming back.
Metadata
Metadata
Assignees
Labels
No labels