summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPavan Deolasee2012-03-06 13:08:30 +0000
committerPavan Deolasee2012-03-06 13:08:30 +0000
commit0fa52aaa33bede3d8cbc1c0fb678ac2c393a2edb (patch)
tree7a22ad2f9fafc90f6269ab7c124bb05727d18a79 /src
parentf5c981669460bcd696a266c9a336798b29769148 (diff)
Remove an assertion that checks for calling AbortTransaction on an already
aborted transaction. We have seen this happening when a ROLLBACK statement is canceled by the client. We believe this is a PostgreSQL issue, but gets manifested by XC. We should discuss this further on the hackers list
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);