Details
Description
There is a race condition in ArithmeticCommandContext where a SET operation is performed between the ArithmeticCommandContext::getItem() and ArithmeticCommandContext::storeNewItem(), causing the call to bucket_store() to return ENGINE_NOT_STORED. Currently we just return this error to the memcached client however, this brakes the behaviour of this interface that existed before the refactoring of our arithmetic operations (see v4.5.0). Thus, we should resolve this race condition by trying to re-perform the arithmetic operation by resetting the ArithmeticCommandContext state machine.
Attachments
Issue Links
Activity
Field | Original Value | New Value |
---|---|---|
Assignee | Trond Norbye [ trond ] | Richard deMellow [ richard.demellow ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Actual Start | 2019-04-16 08:26 (issue has been started) |
Link | This issue relates to CBSE-6638 [ CBSE-6638 ] |
Fix Version/s | Mad-Hatter [ 15037 ] |
Affects Version/s | 5.5.0 [ 14610 ] |
Fix Version/s | 6.0.2 [ 15919 ] | |
Fix Version/s | 5.5.3 [ 15520 ] |
Fix Version/s | 5.5.4 [ 16003 ] | |
Fix Version/s | 5.5.3 [ 15520 ] |
Fix Version/s | 6.0.2 [ 15919 ] | |
Fix Version/s | 5.5.4 [ 16003 ] |
Resolution | Fixed [ 1 ] | |
Status | In Progress [ 3 ] | Resolved [ 5 ] |
Actual End | 2019-04-23 03:56 (issue has been resolved) |
VERIFICATION STEPS | Closed based on unit tests attached with defect. | |
Status | Resolved [ 5 ] | Closed [ 6 ] |
Build couchbase-server-5.5.4-4336 contains kv_engine commit 454186c with commit message:
MB-33852: Fix NOT_STORED being returned from arithmetic op