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-35652: Remove race between resolvedQ and setReplicationTopology
Currently we have a race between processing the
resolvedQueue and setting the replication topology. This happens
because processing the resolvedQueue requires use of the
ReplicationChain pointers in each SyncWrite object. We use the
ReplicationChain to see if a SyncWrite is satisfied when processing
the resolvedQueue. We do not update the pointers to the new
ReplicationChains for the SyncWrites in the resolvedQueue. This means
we could attempt to use a freed pointer when processing the
resolvedQueue. This problem existed before the processing of the queue
was moved to a separate task, but was exacerbated by it due to timings.
Fix this by setting a status in each SyncWrite when we know how to
completed it and using the status instead of the chain pointers. We
can then invalidate the pointers when removing the SyncWrites from
trackedWrites.
Change-Id: I021e080d93d10d9ec7c286e24824feb08d80cc58
Reviewed-on: http://review.couchbase.org/113643
Tested-by: Build Bot <[email protected]>
Reviewed-by: Dave Rigby <[email protected]>
0 commit comments