提交 f8112bde 编写于 作者: H Heikki Linnakangas 提交者: Xin Zhang

Fix commit_transaction_block_checkpoint test.

The fault injection points used in the test didn't exist anymore. Add a new
injection point in RecordTransactionCommit(), just before writing the commit
WAL record, and use that in the test.

Remove a bunch of fault injection IDs that are no longer used. (They are
still referenced in some TINC tests, but the injection points don't exist
anymore, so those tests will need to be rewritten if we want to keep them.)
上级 caa79263
......@@ -1262,6 +1262,8 @@ RecordTransactionCommit(void)
}
rdata[lastrdata].next = NULL;
SIMPLE_FAULT_INJECTOR(OnePhaseTransactionCommit);
if (isDtxPrepared)
{
insertingDistributedCommitted();
......
......@@ -742,22 +742,6 @@ FaultInjector_NewHashEntry(
case FsyncCounter:
case BgBufferSyncDefaultLogic:
case ChangeTrackingDisable:
case FileRepVerification:
case FinishPreparedTransactionCommitPass1FromCreatePendingToCreated:
case FinishPreparedTransactionCommitPass2FromCreatePendingToCreated:
case FinishPreparedTransactionCommitPass1FromDropInMemoryToDropPending:
case FinishPreparedTransactionCommitPass2FromDropInMemoryToDropPending:
case FinishPreparedTransactionCommitPass1AbortingCreateNeeded:
case FinishPreparedTransactionCommitPass2AbortingCreateNeeded:
case FinishPreparedTransactionAbortPass1FromCreatePendingToAbortingCreate:
case FinishPreparedTransactionAbortPass2FromCreatePendingToAbortingCreate:
case FinishPreparedTransactionAbortPass1AbortingCreateNeeded:
case FinishPreparedTransactionAbortPass2AbortingCreateNeeded:
case InterconnectStopAckIsLost:
case SendQEDetailsInitBackend:
......
......@@ -149,6 +149,8 @@ FI_IDENT(FinishPreparedTransactionAbortPass1AbortingCreateNeeded, "finish_prepar
FI_IDENT(FinishPreparedTransactionAbortPass2AbortingCreateNeeded, "finish_prepared_transaction_abort_pass2_aborting_create_needed")
/* inject fault to start verification (create pending => aborting create) */
FI_IDENT(FileRepVerification, "filerep_verification")
/* inject fault after transaction is prepared */
FI_IDENT(OnePhaseTransactionCommit, "onephase_transaction_commit")
/* inject fault before transaction commit is recorded in xlog (trigger filerep verification)*/
FI_IDENT(TwoPhaseTransactionCommitPrepared, "twophase_transaction_commit_prepared")
/* inject fault before transaction abort is recorded in xlog */
......
......@@ -37,7 +37,7 @@ CHECKPOINT
-- pause the CommitTransaction right before persistent table cleanup after
-- notifyCommittedDtxTransaction()
select gp_inject_fault('transaction_commit_pass1_from_drop_in_memory_to_drop_pending', 'suspend', 1);
select gp_inject_fault('onephase_transaction_commit', 'suspend', 1);
gp_inject_fault
---------------
t
......@@ -56,7 +56,7 @@ DROP
1U&: checkpoint; <waiting ...>
-- resume the 2PC
select gp_inject_fault('transaction_commit_pass1_from_drop_in_memory_to_drop_pending', 'reset', 1);
select gp_inject_fault('onephase_transaction_commit', 'reset', 1);
gp_inject_fault
---------------
t
......
......@@ -23,7 +23,7 @@ select gp_inject_fault('twophase_transaction_commit_prepared', 'reset', 3);
-- pause the CommitTransaction right before persistent table cleanup after
-- notifyCommittedDtxTransaction()
select gp_inject_fault('transaction_commit_pass1_from_drop_in_memory_to_drop_pending', 'suspend', 1);
select gp_inject_fault('onephase_transaction_commit', 'suspend', 1);
-- trigger a 2PC, and it will block at commit;
2: checkpoint;
......@@ -35,7 +35,7 @@ select gp_inject_fault('transaction_commit_pass1_from_drop_in_memory_to_drop_pen
1U&: checkpoint;
-- resume the 2PC
select gp_inject_fault('transaction_commit_pass1_from_drop_in_memory_to_drop_pending', 'reset', 1);
select gp_inject_fault('onephase_transaction_commit', 'reset', 1);
2<:
1U<:
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册