Bug 1265300

Summary: [GSS] (6.4.z) Problems due to infinite transaction timeout period for distributed transaction branch
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Stephen Fikes <sfikes>
Component: EJBAssignee: Panagiotis Sotiropoulos <psotirop>
Status: CLOSED CURRENTRELEASE QA Contact: Jan Martiska <jmartisk>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.4.0CC: bmaxwell, brian.stansberry, cdewolf, david.lloyd, istudens, jboss-set, philfest, psotirop, rsvoboda, vtunka
Target Milestone: CR1   
Target Release: EAP 6.4.5   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1235745    

Description Stephen Fikes 2015-09-22 15:18:47 UTC
Description of problem:
The hardcoded 5 minute timeout period was replace with Integer.MAX_VALUE for the timeout period of "remote" distributed transaction branches.

- https://issues.jboss.org/browse/WFLY-2789
- https://bugzilla.redhat.com/show_bug.cgi?id=1056585#c1

An "infinite" timeout is a problem as this value is also passed to the database to control statement execution. This means that database statements may run uncontrolled in most cases. Too, in one case we have seen that the database driver or the database is mishandling the value and aborting almost immediately (e.g. after only 2 or 3 seconds).

Version-Release number of selected component (if applicable):


How reproducible:
Consistently


Steps to Reproduce:
1. Start a transaction in server "one"
2. Using JTA/EJB remoting, propagate that transaction to a remote server
3. The timeout for the transaction on the remote can be seen to be Integer.MAX_VALUE

Actual results:
Either an "infinite" timeout period for database statement execution or else an immediate abort

Expected results:
A "reasonable" smaller value must be used.

Additional info:
We do not have a test where we can reproduce the immediate abort but we confirmed that using a small value worked with the database/driver.

Comment 23 Jan Martiska 2015-11-02 14:33:25 UTC
Verified with EAP 6.4.5.CR1.

Comment 24 Stephen Fikes 2015-12-03 19:35:42 UTC
The new default (instead of Integer.MAX_VALUE) is 31536000 (one year in seconds). This may be overridden explicitly on a per-jvm basis by setting the system property 'org.jboss.as.ejb3.remote-tx-timeout'.

Comment 25 Petr Penicka 2017-01-17 11:46:18 UTC
Retroactively bulk-closing issues from released EAP 6.4 cumulative patches.

Comment 26 Petr Penicka 2017-01-17 11:46:24 UTC
Retroactively bulk-closing issues from released EAP 6.4 cumulative patches.