diff options
author | Mindaugas Malinauskas <mindaugas.malinauskas@mongodb.com> | 2021-04-12 16:05:42 +0100 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-04-14 15:29:00 +0000 |
commit | 4c166a537d7442cc58eea6df09d1721fa75d7b9b (patch) | |
tree | 9c69b121fb0b41c3837ef2eeffb134e0406a272f | |
parent | 75a91976cbfa9d6ac66316a34d12e47bcc5599d3 (diff) | |
download | mongo-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
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 { |