Hi,

I would like to consult with you a problematic response put by PostgreSQL after 
transaction recovery run by Narayana (JBossTS).

I work on tests for Narayana and I hit a issue with PostgreSQL. The db returns 
incorrect code XAException.XA_HEURHAZ when the TM does recovery after crash of 
the jboss eap app server.
The exception is following:
Caused by: org.postgresql.util.PSQLException: ERROR: prepared transaction with 
identifier 
"131072_AAAAAAAAAAAAAP//fwAAAd7TXOBR8jj5AAAAKDE=_AAAAAAAAAAAAAP//fwAAAd7TXOBR8jj5AAAALQAAAAAAAAAA"
 does not exist

It's run on PostgreSQL 9.2 but the older versions seem to be affected as well.

The problem occurs when TM runs on JTS transactions.

The idea of the test:
The test enlists two resources to a transaction. There is called prepare on 
resource of PostgreSQL. The app server crashes before prepare is called on 
second transaction participant. After restart of the app server TM tries to 
recover the transaction. As the fail occurs during prepare phase rollback is 
expected.

The OTS specification requires both bottom up and top down recovery to be 
triggered by the recovering resource. This causes that two rollback calls are 
done against the DB. DB receives rollback call and does the rollback. Then for 
the second time it returns the exceptional code. As the DB already rollbacked 
the transaction and forgot about it the DB returns error that no such 
transaction exists. But this seems to be against OTS specification.
There are some more details in the following bugzilla: 
https://bugzilla.redhat.com/show_bug.cgi?id=988724

Do you have some experience with such behaviour? Can I suppose this being 
problem of PostgreSQL? Or is there already some bug for this issue in Postgres 
bugtracking system?

Thank you
Ondra


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to