diff options
| author | Pavan Deolasee | 2012-03-06 13:08:30 +0000 |
|---|---|---|
| committer | Pavan Deolasee | 2012-03-06 13:08:30 +0000 |
| commit | 0fa52aaa33bede3d8cbc1c0fb678ac2c393a2edb (patch) | |
| tree | 7a22ad2f9fafc90f6269ab7c124bb05727d18a79 | |
| parent | f5c981669460bcd696a266c9a336798b29769148 (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
| -rw-r--r-- | src/backend/storage/ipc/procarray.c | 12 |
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); |
