Details
-
Bug
-
Resolution: Fixed
-
Major
-
6.5.0
-
Untriaged
-
Unknown
-
KV Sprint 2020-June
Description
Currently a DCP consumer can return the status codes bellow for a Prepare, Commit and abort. However, we don't handle of these status codes in an explicit manor and thus sometimes handle them incorrectly. This should be fixed to ensure we don't end up in situations like rebalance hang e.g. MB-36971 and MB-36794.
(A status marked as [x] is a handled status code and [ ] for unhandled explicitly)
DCP Prepare:
- [ ] ENGINE_E2BIG
- [ ] ENGINE_EWOULDBLOCK
// Don’t think we would see from a consumer - [ ] ENGINE_LOCKED
- [ ] ENGINE_SYNC_WRITE_IN_PROGRESS
- [ ] ENGINE_KEY_EEXISTS
- [ ] ENGINE_UNKNOWN_COLLECTION
DCP Commit:
See common
DCP Abort:
See common
Common between all three ops:
- [x] ENGINE_SUCCESS
- [x] ENGINE_DISCONNECT
- [x] ENGINE_EINVAL (disconnect for all ops)
- [x] ENGINE_KEY_ENOENT (we don't disconnect for prepare and should only be ever sent by an active)
- [ ] ENGINE_NOT_MY_VBUCKET
- [ ] ENGINE_TMPFAIL
- [ ] ENGINE_ENOMEM
- [ ] ENGINE_ERANGE
Attachments
Issue Links
- causes
-
MB-39922 System Test: Rebalance failed due to DCP disconnect triggered by DCP_MUTATION - Data exists for key
- Closed
- is duplicated by
-
MB-39548 [Jepsen] KeyEexists received from DCP Consumer for DCP_COMMIT
- Closed
-
MB-39547 [Jepsen] KeyEexists received from DCP Consumer for DCP_PREPARE
- Closed
-
MB-39766 [Magma] Rebalance fails with "bad replicators after rebalance"
- Closed
-
MB-39809 [Magma]Rebalance exited with reason mover_crashed
- Closed
-
MB-40053 [BucketDurability]: KeyEexists received from DCP Consumer for DCP_COMMIT
- Closed
- relates to
-
MB-39542 [Collections] - Rebalance in out + collections ttl data load fails in volume testing
- Closed
-
MB-39766 [Magma] Rebalance fails with "bad replicators after rebalance"
- Closed
-
MB-39809 [Magma]Rebalance exited with reason mover_crashed
- Closed