]
Galder Zamarreno updated JBAS-4950:
-----------------------------------
Fix Version/s: JBossAS-5.0.0.Beta3
(was: JBossAS-5.0.0.CR1)
Transaction failover authorisation is broken within
UnifiedInvokerHAProxy
-------------------------------------------------------------------------
Key: JBAS-4950
URL:
http://jira.jboss.com/jira/browse/JBAS-4950
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Clustering, Remoting
Affects Versions: JBossAS-4.2.2.GA, JBossAS-5.0.0.Beta2
Reporter: Galder Zamarreno
Assigned To: Galder Zamarreno
Priority: Critical
Fix For: JBossAS-4.2.3.GA, JBossAS-5.0.0.Beta3
UnifiedInvokerHAProxy.invoke() only calls invocationHasReachedAServer(Invocation
invocation)
if GenericClusteringException is received and the exception is not
GenericClusteringException.COMPLETED_NO
This is not correct because invocationHasReachedAServer(Invocation invocation) needs to
be called on
successful returns as well. If we don't, the code never remembers that a call within
a transaction was
successful and therefore, never adds the potential transaction (with JBAS-4455, this will
transaction propagation context)
associated with the call to the failover map authorisations.
Example:
- ok call 1 within tx1
- ok call 2 within tx1
- ok call 3 within tx1
- fail call 4 with GenericClusteringException.COMPLETED_NO
None of the successfull calls updated the map, so when the 4 call occurs,
txContextAllowsFailover(invocation) is called, but
the map is empty, so would allow failover when it shouldn't. A transaction reached
the server already in any of the previous
calls associated with that transaction.
JRMPInvokerProxyHA does not have this issue.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: