summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMindaugas Malinauskas <mindaugas.malinauskas@mongodb.com>2021-04-12 16:05:42 +0100
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-04-14 15:29:00 +0000
commit4c166a537d7442cc58eea6df09d1721fa75d7b9b (patch)
tree9c69b121fb0b41c3837ef2eeffb134e0406a272f
parent75a91976cbfa9d6ac66316a34d12e47bcc5599d3 (diff)
downloadmongo-4c166a537d7442cc58eea6df09d1721fa75d7b9b.tar.gz
SERVER-55676 [SBE][replica_sets] Tests trigger fatal assertion: NotPrimaryOrSecondary: Oplog collection reads are not allowed while in the rollback or startup state
-rw-r--r--etc/evergreen.yml1
-rw-r--r--jstests/replsets/commit_transaction_initial_sync_data_already_applied.js1
-rw-r--r--jstests/replsets/initial_sync_commit_prepared_transaction.js1
-rw-r--r--jstests/replsets/initial_sync_fetch_from_oldest_active_transaction_timestamp.js1
-rw-r--r--jstests/replsets/initial_sync_fetch_from_oldest_active_transaction_timestamp_no_oplog_application.js1
-rw-r--r--jstests/replsets/initial_sync_preserves_active_txns.js1
-rw-r--r--jstests/replsets/initial_sync_replicates_prepare_received_during_another_initial_sync.js1
-rw-r--r--jstests/replsets/initial_sync_reset_oldest_timestamp_after_failed_attempt.js1
-rw-r--r--jstests/replsets/initial_sync_test_fixture_test.js1
-rw-r--r--jstests/replsets/initial_sync_update_missing_doc_with_prepare.js1
-rw-r--r--jstests/replsets/prepare_failover_rollback_commit.js1
-rw-r--r--jstests/replsets/reconstruct_prepared_transactions_initial_sync.js1
-rw-r--r--jstests/replsets/reconstruct_prepared_transactions_initial_sync_change_oldest_active_txn_timestamp.js1
-rw-r--r--jstests/replsets/reconstruct_prepared_transactions_initial_sync_index_build.js1
-rw-r--r--jstests/replsets/reconstruct_prepared_transactions_initial_sync_no_oplog_application.js1
-rw-r--r--jstests/replsets/reconstruct_prepared_transactions_initial_sync_on_oplog_seed.js1
-rw-r--r--jstests/replsets/recover_committed_aborted_prepared_transactions.js1
-rw-r--r--jstests/replsets/recover_prepared_transaction_state.js1
-rw-r--r--jstests/replsets/recover_prepared_txn_with_multikey_write_initial_sync.js1
-rw-r--r--jstests/replsets/rollback_prepare_transaction.js1
-rw-r--r--jstests/replsets/rollback_reconstructs_transactions_prepared_before_stable.js1
-rw-r--r--jstests/replsets/rollback_recovery_commit_transaction_before_stable_timestamp.js1
-rw-r--r--src/mongo/db/transaction_history_iterator.cpp8
23 files changed, 7 insertions, 23 deletions
diff --git a/etc/evergreen.yml b/etc/evergreen.yml
index 9a72abb8220..e309cd3d271 100644
--- a/etc/evergreen.yml
+++ b/etc/evergreen.yml
@@ -10077,6 +10077,7 @@ buildvariants:
- name: .concurrency !.large !.ubsan !.debug_only !.sharded
- name: .jscore !.sharding !.decimal !.compat !cst_jscore_passthrough
- name: .jstestfuzz !.flow_control
+ - name: initial_sync_fuzzer_gen
- name: noPassthrough_gen
- name: replica_sets
- name: sharding_auth_gen
diff --git a/jstests/replsets/commit_transaction_initial_sync_data_already_applied.js b/jstests/replsets/commit_transaction_initial_sync_data_already_applied.js
index 969185a83dc..3502865b351 100644
--- a/jstests/replsets/commit_transaction_initial_sync_data_already_applied.js
+++ b/jstests/replsets/commit_transaction_initial_sync_data_already_applied.js
@@ -10,7 +10,6 @@
* that operations from a transaction are executed in separate storage transactions.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/initial_sync_commit_prepared_transaction.js b/jstests/replsets/initial_sync_commit_prepared_transaction.js
index b09c8ec7618..bf5cbc546e7 100644
--- a/jstests/replsets/initial_sync_commit_prepared_transaction.js
+++ b/jstests/replsets/initial_sync_commit_prepared_transaction.js
@@ -4,7 +4,6 @@
* is applied during the oplog application phase of initial sync.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/initial_sync_fetch_from_oldest_active_transaction_timestamp.js b/jstests/replsets/initial_sync_fetch_from_oldest_active_transaction_timestamp.js
index 6419df46c39..c0823cb0f12 100644
--- a/jstests/replsets/initial_sync_fetch_from_oldest_active_transaction_timestamp.js
+++ b/jstests/replsets/initial_sync_fetch_from_oldest_active_transaction_timestamp.js
@@ -11,7 +11,6 @@
* will cause initial sync to fail.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/initial_sync_fetch_from_oldest_active_transaction_timestamp_no_oplog_application.js b/jstests/replsets/initial_sync_fetch_from_oldest_active_transaction_timestamp_no_oplog_application.js
index c1e5a8b326d..ea5e521a5f5 100644
--- a/jstests/replsets/initial_sync_fetch_from_oldest_active_transaction_timestamp_no_oplog_application.js
+++ b/jstests/replsets/initial_sync_fetch_from_oldest_active_transaction_timestamp_no_oplog_application.js
@@ -15,7 +15,6 @@
* will cause initial sync to fail.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/initial_sync_preserves_active_txns.js b/jstests/replsets/initial_sync_preserves_active_txns.js
index 4ce428d30fe..398362643cf 100644
--- a/jstests/replsets/initial_sync_preserves_active_txns.js
+++ b/jstests/replsets/initial_sync_preserves_active_txns.js
@@ -8,7 +8,6 @@
* field of documents in the config.transactions collection.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/initial_sync_replicates_prepare_received_during_another_initial_sync.js b/jstests/replsets/initial_sync_replicates_prepare_received_during_another_initial_sync.js
index e69eafa3306..5e31305b073 100644
--- a/jstests/replsets/initial_sync_replicates_prepare_received_during_another_initial_sync.js
+++ b/jstests/replsets/initial_sync_replicates_prepare_received_during_another_initial_sync.js
@@ -11,7 +11,6 @@
* during initial sync.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/initial_sync_reset_oldest_timestamp_after_failed_attempt.js b/jstests/replsets/initial_sync_reset_oldest_timestamp_after_failed_attempt.js
index 7bbd22dd936..8a0c58acbc1 100644
--- a/jstests/replsets/initial_sync_reset_oldest_timestamp_after_failed_attempt.js
+++ b/jstests/replsets/initial_sync_reset_oldest_timestamp_after_failed_attempt.js
@@ -4,7 +4,6 @@
* does not hit a WiredTiger assertion on the second attempt.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/initial_sync_test_fixture_test.js b/jstests/replsets/initial_sync_test_fixture_test.js
index c24b7c02d30..243e73f6480 100644
--- a/jstests/replsets/initial_sync_test_fixture_test.js
+++ b/jstests/replsets/initial_sync_test_fixture_test.js
@@ -10,7 +10,6 @@
* call.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/initial_sync_update_missing_doc_with_prepare.js b/jstests/replsets/initial_sync_update_missing_doc_with_prepare.js
index f54a94d5456..750c4350396 100644
--- a/jstests/replsets/initial_sync_update_missing_doc_with_prepare.js
+++ b/jstests/replsets/initial_sync_update_missing_doc_with_prepare.js
@@ -9,7 +9,6 @@
* completes nevertheless.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/prepare_failover_rollback_commit.js b/jstests/replsets/prepare_failover_rollback_commit.js
index d5c260ff401..673d658a775 100644
--- a/jstests/replsets/prepare_failover_rollback_commit.js
+++ b/jstests/replsets/prepare_failover_rollback_commit.js
@@ -7,7 +7,6 @@
* being set properly.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/reconstruct_prepared_transactions_initial_sync.js b/jstests/replsets/reconstruct_prepared_transactions_initial_sync.js
index b4188f5ea5b..8c6dba0524e 100644
--- a/jstests/replsets/reconstruct_prepared_transactions_initial_sync.js
+++ b/jstests/replsets/reconstruct_prepared_transactions_initial_sync.js
@@ -9,7 +9,6 @@
* during oplog application phase of initial sync.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/reconstruct_prepared_transactions_initial_sync_change_oldest_active_txn_timestamp.js b/jstests/replsets/reconstruct_prepared_transactions_initial_sync_change_oldest_active_txn_timestamp.js
index 775ce4350b1..6501d6afc9a 100644
--- a/jstests/replsets/reconstruct_prepared_transactions_initial_sync_change_oldest_active_txn_timestamp.js
+++ b/jstests/replsets/reconstruct_prepared_transactions_initial_sync_change_oldest_active_txn_timestamp.js
@@ -11,7 +11,6 @@
* fetches all the oplog entries it needs to reconstruct the prepared transaction.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/reconstruct_prepared_transactions_initial_sync_index_build.js b/jstests/replsets/reconstruct_prepared_transactions_initial_sync_index_build.js
index 9d3c5635e56..38f7f431ca2 100644
--- a/jstests/replsets/reconstruct_prepared_transactions_initial_sync_index_build.js
+++ b/jstests/replsets/reconstruct_prepared_transactions_initial_sync_index_build.js
@@ -4,7 +4,6 @@
* hanging.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/reconstruct_prepared_transactions_initial_sync_no_oplog_application.js b/jstests/replsets/reconstruct_prepared_transactions_initial_sync_no_oplog_application.js
index efd44211c0a..08ae0fa8252 100644
--- a/jstests/replsets/reconstruct_prepared_transactions_initial_sync_no_oplog_application.js
+++ b/jstests/replsets/reconstruct_prepared_transactions_initial_sync_no_oplog_application.js
@@ -6,7 +6,6 @@
* need to be applied other than the prepare transaction oplog entries.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/reconstruct_prepared_transactions_initial_sync_on_oplog_seed.js b/jstests/replsets/reconstruct_prepared_transactions_initial_sync_on_oplog_seed.js
index db325b9097f..832f9c76d17 100644
--- a/jstests/replsets/reconstruct_prepared_transactions_initial_sync_on_oplog_seed.js
+++ b/jstests/replsets/reconstruct_prepared_transactions_initial_sync_on_oplog_seed.js
@@ -9,7 +9,6 @@
* entry is visible and the prepared transaction is properly reconstructed.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/recover_committed_aborted_prepared_transactions.js b/jstests/replsets/recover_committed_aborted_prepared_transactions.js
index 0028177f74e..c4499ce87b4 100644
--- a/jstests/replsets/recover_committed_aborted_prepared_transactions.js
+++ b/jstests/replsets/recover_committed_aborted_prepared_transactions.js
@@ -5,7 +5,6 @@
* and aborted between the stable timestamp and the common point.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/recover_prepared_transaction_state.js b/jstests/replsets/recover_prepared_transaction_state.js
index 14c5da06827..7abb3ae6ed1 100644
--- a/jstests/replsets/recover_prepared_transaction_state.js
+++ b/jstests/replsets/recover_prepared_transaction_state.js
@@ -13,7 +13,6 @@
* and be able to commit/abort them again.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/recover_prepared_txn_with_multikey_write_initial_sync.js b/jstests/replsets/recover_prepared_txn_with_multikey_write_initial_sync.js
index 8e5e1d67f00..d246098f8fe 100644
--- a/jstests/replsets/recover_prepared_txn_with_multikey_write_initial_sync.js
+++ b/jstests/replsets/recover_prepared_txn_with_multikey_write_initial_sync.js
@@ -6,7 +6,6 @@
* # Multiversion testing does not support tests that kill and restart nodes.
* multiversion_incompatible,
* requires_persistence,
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/rollback_prepare_transaction.js b/jstests/replsets/rollback_prepare_transaction.js
index 097dfd1cd02..4edaac269c0 100644
--- a/jstests/replsets/rollback_prepare_transaction.js
+++ b/jstests/replsets/rollback_prepare_transaction.js
@@ -2,7 +2,6 @@
* Tests that prepared transactions are correctly rolled-back.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/rollback_reconstructs_transactions_prepared_before_stable.js b/jstests/replsets/rollback_reconstructs_transactions_prepared_before_stable.js
index b8dd41cb1a9..02bcc1840b1 100644
--- a/jstests/replsets/rollback_reconstructs_transactions_prepared_before_stable.js
+++ b/jstests/replsets/rollback_reconstructs_transactions_prepared_before_stable.js
@@ -3,7 +3,6 @@
* stable timestamp at the end of rollback recovery.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/jstests/replsets/rollback_recovery_commit_transaction_before_stable_timestamp.js b/jstests/replsets/rollback_recovery_commit_transaction_before_stable_timestamp.js
index 2dceee74ef1..4739b50a264 100644
--- a/jstests/replsets/rollback_recovery_commit_transaction_before_stable_timestamp.js
+++ b/jstests/replsets/rollback_recovery_commit_transaction_before_stable_timestamp.js
@@ -7,7 +7,6 @@
* exception.
*
* @tags: [
- * sbe_incompatible,
* uses_prepare_transaction,
* uses_transactions,
* ]
diff --git a/src/mongo/db/transaction_history_iterator.cpp b/src/mongo/db/transaction_history_iterator.cpp
index b8d43a3fd1b..26581d62e27 100644
--- a/src/mongo/db/transaction_history_iterator.cpp
+++ b/src/mongo/db/transaction_history_iterator.cpp
@@ -87,8 +87,12 @@ BSONObj findOneOplogEntry(OperationContext* opCtx,
CollectionCatalog::get(opCtx)->getDatabaseProfileLevel(NamespaceString::kLocalDb),
Date_t::max());
- auto exec = uassertStatusOK(
- getExecutorFind(opCtx, &oplogRead.getCollection(), std::move(cq), permitYield));
+ auto exec =
+ uassertStatusOK(getExecutorFind(opCtx,
+ &oplogRead.getCollection(),
+ std::move(cq),
+ permitYield,
+ QueryPlannerParams::OMIT_REPL_STATE_PERMITS_READS_CHECK));
PlanExecutor::ExecState getNextResult;
try {