Details
-
Bug
-
Resolution: Fixed
-
Critical
-
5.0.0
-
Triaged
-
No
Description
Not all DCP clients implement NOOP support. This means KV engine has a hard time detecting if such clients are hung / unresponsive. We take a conservative approach and don't forcibly disconnect anyone. But this can lead to various problems if clients misbehave. e.g.
MB-23161- client has failed to drain our send buffer and we fail to delete a bucket.MB-22488- several hung backup clients caused view indexing to hang.
This ticket is to find a way to make KV Engine more resilient to such client behaviour. Some potentials include:
- Make DCP NOOP mandatory (might be too much effort for clients / horse may have already bolted on this one)
- Force clients to support NOOP as they adopt new features (e.g XATTRS / Collections) so the situation improves over time.
- Have our own internal watchdog that monitors and aggressively disconnects unresponsive non-NOOP clients.
Attachments
Issue Links
For Gerrit Dashboard: MB-23649 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
79856,15 | MB-23649: Force Noop for DCP streams using new features | master | kv_engine | Status: MERGED | +2 | +1 |
80019,4 | Cleanup DCP test classes for modularity | master | kv_engine | Status: MERGED | +2 | +1 |
80552,4 | MB-23649: Set dcp_noop_mandatory_for_v5_features value to 'true' by default | master | kv_engine | Status: MERGED | +2 | +1 |
80577,3 | MB-23649: Check DCP_OPEN flags for manditory_noop & fix tests | master | kv_engine | Status: MERGED | +2 | +1 |
80637,7 | MB-25235 Enabling Noop for view-engine | master | couchdb | Status: MERGED | +2 | +1 |