@@ -56,6 +56,7 @@ ActiveStream::ActiveStream(EventuallyPersistentEngine* e,
5656 includeDeletedUserXattrs(includeDeletedUserXattrs),
5757 lastReadSeqnoUnSnapshotted(st_seqno),
5858 lastSentSeqno(st_seqno),
59+ lastSentSeqnoAdvance(0 ),
5960 curChkSeqno(st_seqno),
6061 takeoverState(vbucket_state_pending),
6162 itemsFromMemoryPhase(0 ),
@@ -825,6 +826,14 @@ void ActiveStream::addStats(const AddStatFn& add_stat, const void* c) {
825826 name_.c_str (),
826827 vb_.get ());
827828 add_casted_stat (buffer, lastSentSeqno.load (), add_stat, c);
829+
830+ checked_snprintf (buffer,
831+ bsize,
832+ " %s:stream_%d_last_sent_seqno_advance" ,
833+ name_.c_str (),
834+ vb_.get ());
835+ add_casted_stat (buffer, lastSentSeqnoAdvance.load (), add_stat, c);
836+
828837 checked_snprintf (buffer,
829838 bsize,
830839 " %s:stream_%d_last_sent_snap_end_seqno" ,
@@ -2178,8 +2187,9 @@ std::unique_ptr<DcpResponse> ActiveStream::makeEndStreamResponse(
21782187}
21792188
21802189void ActiveStream::queueSeqnoAdvanced () {
2181- pushToReadyQ (std::make_unique<SeqnoAdvanced>(
2182- opaque_, vb_, sid, lastSentSnapEndSeqno.load ()));
2190+ const auto seqno = lastSentSnapEndSeqno.load ();
2191+ pushToReadyQ (std::make_unique<SeqnoAdvanced>(opaque_, vb_, sid, seqno));
2192+ lastSentSeqnoAdvance.store (seqno);
21832193}
21842194
21852195bool ActiveStream::isDiskOnly () const {
0 commit comments