diff options
Diffstat (limited to 'src/mongo/db/repl/data_replicator_external_state_impl.cpp')
-rw-r--r-- | src/mongo/db/repl/data_replicator_external_state_impl.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/mongo/db/repl/data_replicator_external_state_impl.cpp b/src/mongo/db/repl/data_replicator_external_state_impl.cpp index 2621917a862..00c924ff1ea 100644 --- a/src/mongo/db/repl/data_replicator_external_state_impl.cpp +++ b/src/mongo/db/repl/data_replicator_external_state_impl.cpp @@ -100,7 +100,7 @@ ChangeSyncSourceAction DataReplicatorExternalStateImpl::shouldStopFetching( const rpc::ReplSetMetadata& replMetadata, const rpc::OplogQueryMetadata& oqMetadata, const OpTime& previousOpTimeFetched, - const OpTime& lastOpTimeFetched) { + const OpTime& lastOpTimeFetched) const { // Re-evaluate quality of sync target. auto changeSyncSourceAction = _replicationCoordinator->shouldChangeSyncSource( source, replMetadata, oqMetadata, previousOpTimeFetched, lastOpTimeFetched); @@ -118,6 +118,18 @@ ChangeSyncSourceAction DataReplicatorExternalStateImpl::shouldStopFetching( return changeSyncSourceAction; } +ChangeSyncSourceAction DataReplicatorExternalStateImpl::shouldStopFetchingOnError( + const HostAndPort& source, const OpTime& lastOpTimeFetched) const { + auto changeSyncSourceAction = + _replicationCoordinator->shouldChangeSyncSourceOnError(source, lastOpTimeFetched); + if (changeSyncSourceAction != ChangeSyncSourceAction::kContinueSyncing) { + LOGV2(6341701, + "Canceling oplog query on fetch error. We have to choose a new sync source", + "syncSource"_attr = source); + } + return changeSyncSourceAction; +} + std::unique_ptr<OplogBuffer> DataReplicatorExternalStateImpl::makeInitialSyncOplogBuffer( OperationContext* opCtx) const { if (initialSyncOplogBuffer == kCollectionOplogBufferName) { |