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: | EJB | Assignee: | sgilda | ||||||||||||||
| Status: | CLOSED NOTABUG | QA Contact: | |||||||||||||||
| Severity: | high | Docs Contact: | |||||||||||||||
| Priority: | high | ||||||||||||||||
| Version: | 6.0.0 | CC: | 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: |
|
||||||||||||||||
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 Labels: Added: eap6_need_triage added label "regression" and Affects Testing regression. Affects Testing: Added: Regression Labels: Removed: eap6_need_triage Added: eap6_need_triage regression 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. Link: Added: This issue relates to JBSEAM-4943 Bugzilla Update: Added: Perform Bugzilla References: Added: https://bugzilla.redhat.com/show_bug.cgi?id=818481 Link: Added: This issue Cloned to JBPAPP-8905 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 Bugzilla References: Removed: https://bugzilla.redhat.com/show_bug.cgi?id=818481 Affects Testing: Removed: Regression Docs QE Status: Removed: NEW |
Created attachment 915655 [details] Comment (This comment was longer than 65,535 characters and has been moved to an attachment by Red Hat Bugzilla).