summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/rs_rollback.h
diff options
context:
space:
mode:
authorJack Mulrow <jack.mulrow@mongodb.com>2017-08-16 18:07:02 -0400
committerJack Mulrow <jack.mulrow@mongodb.com>2017-08-23 12:41:47 -0400
commitc1e7921e9d69bd9a37761deb58d119a324341a54 (patch)
tree86e7fb3084d9aea2f08263f261474c1163de15cc /src/mongo/db/repl/rs_rollback.h
parentee6a79935e98b4a12bc74cb385e7d5f62633347e (diff)
downloadmongo-c1e7921e9d69bd9a37761deb58d119a324341a54.tar.gz
SERVER-30508 Fail rollback via refetch if transactions collection UUID is different on sync source
Diffstat (limited to 'src/mongo/db/repl/rs_rollback.h')
-rw-r--r--src/mongo/db/repl/rs_rollback.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mongo/db/repl/rs_rollback.h b/src/mongo/db/repl/rs_rollback.h
index 74d59ae3c8f..d4e4015f279 100644
--- a/src/mongo/db/repl/rs_rollback.h
+++ b/src/mongo/db/repl/rs_rollback.h
@@ -371,6 +371,19 @@ private:
* to be reverted.
*/
Status updateFixUpInfoFromLocalOplogEntry(FixUpInfo& fixUpInfo, const BSONObj& ourObj);
+
+/**
+ * This function uses the FixUpInfo struct to undo all of the operations that occurred after the
+ * common point on the rolling back node, checking the rollback ID and updating minValid as
+ * necessary. This includes refetching, updating, and deleting individual documents, resyncing
+ * collection data and metadata, and dropping and creating collections and indexes. Truncates the
+ * oplog and triggers necessary in-memory refreshes before returning.
+ */
+void syncFixUp(OperationContext* opCtx,
+ const FixUpInfo& fixUpInfo,
+ const RollbackSource& rollbackSource,
+ ReplicationCoordinator* replCoord,
+ ReplicationProcess* replicationProcess);
} // namespace rollback_internal
} // namespace repl
} // namespace mongo