summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/storage/ipc/procarray.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c
index 21679042fb..8dca1fa735 100644
--- a/src/backend/storage/ipc/procarray.c
+++ b/src/backend/storage/ipc/procarray.c
@@ -431,13 +431,15 @@ ProcArrayEndTransaction(PGPROC *proc, TransactionId latestXid)
*/
#ifdef PGXC
/*
- * Remove this assertion check for PGXC on Coordinator
- * We could abort even after a Coordinator has committed
- * for a 2PC transaction if Datanodes have failed committed the transaction
+ * Remove this assertion. We have seen this failing because a ROLLBACK
+ * statement may get canceled by a coordinator, leading to recursive
+ * abort of a transaction. This must be a PostgreSQL issue, highlighted
+ * by XC. See thread on hackers with subject "Canceling ROLLBACK
+ * statement"
*/
- if (IS_PGXC_DATANODE)
-#endif
+#else
Assert(TransactionIdIsValid(proc->xid));
+#endif
LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE);