From: | Ondrej Chaloupka <ochaloup(at)redhat(dot)com> |
---|---|
To: | pgsql-bugs <pgsql-bugs(at)postgresql(dot)org> |
Subject: | Incorrect return code for error on call of commit during 2PC |
Date: | 2014-12-08 11:33:08 |
Message-ID: | 1259946913.22869617.1418038388941.JavaMail.zimbra@redhat.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
I'm sorry for spamming the mailing list with incomplete messages. It seems that my 'enter' function does not work correctly :)
it seems that PostgreSQL jdbc driver returns incorrect code during on call of commit during 2PC. Currently the driver returns XAER_RMERR.
I expect that it's this call
https://github.com/pgjdbc/pgjdbc/blob/master/org/postgresql/xa/PGXAConnection.java#L528
But the XA spec (http://pubs.opengroup.org/onlinepubs/009680699/toc.pdf) says for XAER_RMERR that
"An error occurred in committing the work performed on behalf of the transaction
branch and the branch’s work has been rolled back. Note that returning this error
signals a catastrophic event to a transaction manager since other resource
managers may successfully commit their work on behalf of this branch. This error
should be returned only when a resource manager concludes that it can never
commit the branch and that it cannot hold the branch’s resources in a prepared
state. Otherwise, [XA_RETRY] should be returned."
In case there is longer discussion about scenario hitting this issue and about handling this at RedHat bugzilla here:
https://bugzilla.redhat.com/show_bug.cgi?id=988724
From what is said here I think that PostgreSQL database should rollback the transaction itself and then it could return XAException error code XAER_RMERR or it should return
XAER_RMFAIL or XAER_RETRY.
Would you mind my opening a issue for PostgreSQL jdbc driver?
Thank you
Ondra Chaloupka
From | Date | Subject | |
---|---|---|---|
Next Message | Ed Avis | 2014-12-08 11:39:12 | Re: BUG #11986: psql uses pager inside Emacs shell buffer (not a terminal) |
Previous Message | Ondrej Chaloupka | 2014-12-08 11:26:46 | Incorrect return code for error on call of commit during 2PC |