@@ -484,12 +484,15 @@ process_remote_commit(StringInfo in)
484
484
{
485
485
case PGLOGICAL_COMMIT :
486
486
{
487
- if (IsTransactionState ())
487
+ if (IsTransactionState ()) {
488
+ Assert (TransactionIdIsValid (MtmGetCurrentTransactionId ()));
488
489
CommitTransactionCommand ();
490
+ }
489
491
break ;
490
492
}
491
493
case PGLOGICAL_PREPARE :
492
494
{
495
+ Assert (IsTransactionState () && TransactionIdIsValid (MtmGetCurrentTransactionId ()));
493
496
gid = pq_getmsgstring (in );
494
497
/* prepare TBLOCK_INPROGRESS state for PrepareTransactionBlock() */
495
498
BeginTransactionBlock ();
@@ -503,6 +506,7 @@ process_remote_commit(StringInfo in)
503
506
}
504
507
case PGLOGICAL_COMMIT_PREPARED :
505
508
{
509
+ Assert (!TransactionIdIsValid (MtmGetCurrentTransactionId ()));
506
510
csn = pq_getmsgint64 (in );
507
511
gid = pq_getmsgstring (in );
508
512
StartTransactionCommand ();
@@ -514,6 +518,7 @@ process_remote_commit(StringInfo in)
514
518
}
515
519
case PGLOGICAL_ABORT_PREPARED :
516
520
{
521
+ Assert (!TransactionIdIsValid (MtmGetCurrentTransactionId ()));
517
522
gid = pq_getmsgstring (in );
518
523
StartTransactionCommand ();
519
524
MtmSetCurrentTransactionGID (gid );
@@ -889,8 +894,9 @@ void MtmExecutor(int id, void* work, size_t size)
889
894
{
890
895
EmitErrorReport ();
891
896
FlushErrorState ();
892
- MTM_TRACE ("%d: REMOTE abort transaction %d\n" , MyProcPid , GetCurrentTransactionId ());
897
+ MTM_TRACE ("%d: REMOTE begin abort transaction %d\n" , MyProcPid , MtmGetCurrentTransactionId ());
893
898
AbortCurrentTransaction ();
899
+ MTM_TRACE ("%d: REMOTE end abort transaction %d\n" , MyProcPid , MtmGetCurrentTransactionId ());
894
900
}
895
901
PG_END_TRY ();
896
902
0 commit comments