Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 900326 (JBPAPP6-611)

Summary: Seam 2.2 booking org.jboss.seam.core.LockTimeoutException: could not acquire lock on @Synchronized component: hotelSearch
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Marek Schmidt <maschmid>
Component: EJBAssignee: sgilda
Status: CLOSED NOTABUG QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 6.0.0CC: stuart.w.douglas
Target Milestone: ---   
Target Release: EAP 6.0.0   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/JBPAPP6-611
Whiteboard: eap6_need_triage regression
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Seam2.2.5.EAP5, EAP6.0.0 ER6, Fedora, both OpenJDK 1.6 and jdk1.6.0_30
Last Closed: 2012-05-09 02:55:14 UTC 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:
Attachments:
Description Flags
seam-2.2-booking-eap6.tar
none
server.log.trim
none
threaddump.txt
none
threadinfo.txt
none
server.log.bz2
none
Comment none

Description Marek Schmidt 2012-04-30 16:00:30 UTC
Created attachment 915655 [details]
Comment

(This comment was longer than 65,535 characters and has been moved to an attachment by Red Hat Bugzilla).

Comment 1 Marek Schmidt 2012-04-30 16:03:06 UTC
Attachment: Added: seam-2.2-booking-eap6.tar
Attachment: Added: server.log.trim
Attachment: Added: threaddump.txt
Attachment: Added: threadinfo.txt
Attachment: Added: server.log.bz2


Comment 2 Rajesh Rajasekaran 2012-04-30 16:34:30 UTC
Labels: Added: eap6_need_triage


Comment 3 Mike Harvey 2012-04-30 17:12:53 UTC
added label "regression" and Affects Testing regression.


Comment 4 Mike Harvey 2012-04-30 17:12:53 UTC
Affects Testing: Added: Regression
Labels: Removed: eap6_need_triage Added: eap6_need_triage regression


Comment 5 Stuart Douglas 2012-04-30 22:00:56 UTC
The problem is that Seam 2 does its own locking outside the SFSB lock and with a different scope.

This means that if a thread access an EJB twice in the same transaction, after the first invocation it will have the SFSB lock, but not the seam lock. A second thread can then acquire the seam lock, which will then hit the EJB lock and wait. When the first thread attempts its second invocation it will block on the seam 2 interceptor and deadlock.  

In EE5 EJB's would throw an exception immediately on concurrent access, this behaviour was changed in EE6. 

I think there are two real solutions:

- Add @AccessTimeout(0) to the EJB, this means it will throw an ConcurrentAccessException immediately when this situation occurs
- Patch seam to not use the synchronisation interceptor for stateful session beans.   



Comment 6 Marek Schmidt 2012-05-02 10:21:51 UTC
Link: Added: This issue relates to JBSEAM-4943


Comment 7 RH Bugzilla Integration 2012-05-03 08:45:11 UTC
Bugzilla Update: Added: Perform


Comment 8 RH Bugzilla Integration 2012-05-03 08:45:12 UTC
Bugzilla References: Added: https://bugzilla.redhat.com/show_bug.cgi?id=818481


Comment 9 Marek Schmidt 2012-05-03 10:41:53 UTC
Link: Added: This issue Cloned to JBPAPP-8905


Comment 10 RH Bugzilla Integration 2012-05-03 10:47:53 UTC
Bugzilla Update: Removed: Perform 
Bugzilla References: Removed: https://bugzilla.redhat.com/show_bug.cgi?id=818481 Added: https://bugzilla.redhat.com/show_bug.cgi?id=818481


Comment 11 RH Bugzilla Integration 2012-05-03 10:47:54 UTC
Bugzilla References: Removed: https://bugzilla.redhat.com/show_bug.cgi?id=818481 


Comment 12 Anne-Louise Tangring 2012-11-05 17:45:07 UTC
Affects Testing: Removed: Regression 
Docs QE Status: Removed: NEW