Merge remote-tracking branch 'couchbase/3.0.x' into sherlock 81/65581/1
authorDave Rigby <daver@couchbase.com>
Thu, 7 Jul 2016 13:48:01 +0000 (14:48 +0100)
committerDave Rigby <daver@couchbase.com>
Thu, 7 Jul 2016 13:48:01 +0000 (14:48 +0100)
* couchbase/3.0.x:
  MB-19886: Fix data race on ActiveStream::curChkSeqno by making it atomic
  MB-19886: In markDiskSnapshot() get current vb snapshot info outside streamMutex
  MB-19843: Modify the end_seqno in DCP stream request after checking for rollback

Change-Id: I32c52689b4c78f3416af180818df772d217db882

src/dcp-stream.h
src/vbucket.h

index 460844c..3326d52 100644 (file)
@@ -269,7 +269,7 @@ private:
     //! The last sequence number sent to the network layer
     AtomicValue<uint64_t> lastSentSeqno;
     //! The last known seqno pointed to by the checkpoint cursor
-    uint64_t curChkSeqno;
+    AtomicValue<uint64_t> curChkSeqno;
     //! The current vbucket state to send in the takeover stream
     vbucket_state_t takeoverState;
     /* backfillRemaining is a stat recording the amount of
index 847eb93..fb685d6 100644 (file)
@@ -511,6 +511,8 @@ private:
     Mutex pendingBGFetchesLock;
     vb_bgfetch_queue_t pendingBGFetches;
 
+    /* snapshotMutex is used to update/read the pair {start, end} atomically,
+       but not if reading a single field. */
     Mutex snapshotMutex;
     uint64_t persisted_snapshot_start;
     uint64_t persisted_snapshot_end;