You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MB-34367 [SR]: Clear engineSpecific on non-success IO complete
For SyncWrites, ep-engine returns EWOULDBLOCK once the prepare has
been accepted, in the golden path blocking the connection until the
SyncWrite completes at which point notify_io_complete is called with
ENGINE_SUCCESS. This results in memcached re-calling the same method
again, which now returns success (as ep-engine records the fact a
SyncWrite is in progrss via storeEngineSpecific().
If a SyncWrite is aborted then the notify_io_complete() is passed
status:ambiguous; which memcached immediately returns to the client.
However, in the non-success case the previous engineSpecific is *not*
cleared. As a consequence the _next_ SyncWrite call by the same client
will immediately return success.
Fix by clearing the engineSpecific on a non-success status code for
notify_IO_complete.
Change-Id: Ie55f23d44e807e01dc16a861724c12cfeb6fe660
Reviewed-on: http://review.couchbase.org/109912
Tested-by: Build Bot <[email protected]>
Reviewed-by: Jim Walker <[email protected]>
Reviewed-by: Trond Norbye <[email protected]>
0 commit comments