[BP 7.2.4] - XDCR - Handle rollback request during stream-end

Description

XDCR doesn't handle rollback requests during stream-end scenarios and never reinitializes DCP stream ([https://github.com/couchbase/kv_engine/blob/dc00b746e5f22cc408acd179239430cac66f2b17/docs/dcp/documentation/commands/stream-end.md?plain=1#L52[…]C12|https://github.com/couchbase/kv_engine/blob/dc00b746e5f22cc408acd179239430cac66f2b17/docs/dcp/documentation/commands/stream-end.md?plain=1#L52C4-L52C12])

Once stream-end with rollback flag is received for a vb, we are not able to get any mutations to be replicated for that vb anymore, unless the pipeline is restarted which causes the streams to reinitialize.

 

Components

Fix versions

Labels

Environment

None

Link to Log File, atop/blg, CBCollectInfo, Core dump

None

Release Notes Description

None

Activity

Show:

Neil Huang January 3, 2024 at 6:35 PM

Release Notes
Problem Description: In low priority replications, it is possible for a Data Service stream to end temporarily and for XDCR to not handle it properly, leading to hung replication.
Resolution: Ensure XDCR restarts pipeline if a data service stream is ended to ensure replication continues.

Ayush Nayyar December 8, 2023 at 6:31 AM

Verified on 7.2.4-7045.

CB robot November 15, 2023 at 9:54 AM

Build couchbase-server-7.2.4-6981 contains goxdcr commit 2867947 with commit message:
: Restart main pipeline if stream-end is received in Dcp_Stream_Active state

CB robot November 15, 2023 at 9:54 AM

Build couchbase-server-7.2.4-6981 contains gomemcached commit c5cf30a with commit message:
: Populate flags for the stream-end uprEvent

Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Is this a Regression?

Yes

Triage

Untriaged

Issue Impact

external

Story Points

Priority

Instabug

Open Instabug

PagerDuty

Sentry

Zendesk Support

Created November 14, 2023 at 6:44 AM
Updated March 21, 2025 at 2:48 AM
Resolved November 15, 2023 at 8:17 AM
Instabug