[ 
https://issues.apache.org/jira/browse/GERONIMO-4184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13006815#comment-13006815
 ] 

Vamsavardhana Reddy commented on GERONIMO-4184:
-----------------------------------------------

GERONIMO-4393 has introduced two random bytes into the baseId to avoid 
duplication of baseId across multiple JVMs on the same machine.  That fix would 
still not suffice completely as the two random bytes are added to baseId only 
if the no-argument constructor of XidFactoryImpl is used and Geronimo uses the 
other constructor that takes byte[] tmId as argument.  If we add two random 
bytes to baseId even in the case of the constructor with tmId, we can minimize 
the chance of reuse of In-doubt transaction Id's as the baseId would be 
different on each run of the server. We can even increase the length of random 
bytes (to say 4 instead of 2) to further reduce the chance of reuse of In-doubt 
transaction Id's.  Any suggestions or comments to this approach?

> In-doubt transaction Id's could be reused during server startup
> ---------------------------------------------------------------
>
>                 Key: GERONIMO-4184
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-4184
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: transaction manager
>    Affects Versions: 2.0, 2.0.1, 2.0.2, 2.1, 2.1.1, 2.1.4
>            Reporter: Kevan Miller
>             Fix For: Wish List
>
>
> During server restart, we may reuse an Xid for a transaction which is 
> in-doubt. Potentially confusing a resource manager. We need to insure this 
> does not occur. Simple way is to remember the largest Xid in tran log and 
> start with a larger number. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to