Bug 1215714 - (6.4.z) Do not hold connection lock while closing channels
Summary: (6.4.z) Do not hold connection lock while closing channels
Alias: None
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: Remoting
Version: 6.4.0
Hardware: Unspecified
OS: Unspecified
Target Milestone: CR1
: EAP 6.4.2
Assignee: David M. Lloyd
QA Contact: Jitka Kozana
: 1230067 1248299 (view as bug list)
Depends On:
Blocks: 1199231 1219165
TreeView+ depends on / blocked
Reported: 2015-04-27 14:15 UTC by Brad Maxwell
Modified: 2019-08-15 04:31 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Cause: JBoss remoting held onto a lock while closing connections for longer than needed. Consequence: JBoss could experience a thread deadlock. Fix: Change JBoss Remoting to not hold onto the connection lock while closing channels. Result: The deadlock does not occur.
Clone Of:
Last Closed: 2017-01-17 10:13:21 UTC
Type: Bug

Attachments (Terms of Use)

System ID Priority Status Summary Last Updated
Red Hat One Jira Issue Tracker REM3-183 Major Resolved If a CloseHandler fails other closing parties may hang 2018-06-06 11:05:21 UTC
Red Hat One Jira Issue Tracker WFLY-4113 Major Resolved 8.2.0.Final build hangs 2018-06-06 11:05:21 UTC

Description Brad Maxwell 2015-04-27 14:15:31 UTC
Do not hold connection lock while closing channels

Comment 2 Rostislav Svoboda 2015-04-28 10:16:51 UTC
Please include more detailed description of the problem linked commit is solving.

SET/GSS - please provide automated test (as discussed on triage) to increase CP throughput.
I will qa_ack afterwards or when the scope of CP01 is clear and we have enough seats.

Comment 5 Rostislav Svoboda 2015-05-28 10:05:45 UTC
Please include more detailed description of the problem which is soled by linked commit.

FYI - there is no customer case attached to this BZ.

Comment 8 baranowb 2015-06-10 10:18:52 UTC
*** Bug 1230067 has been marked as a duplicate of this bug. ***

Comment 10 Ladislav Thon 2015-06-24 14:35:11 UTC
Verified with EAP 6.4.2.CP.CR1.

Note: I believe that there are still situations in which an exception during closing may cause a hang. E.g. the `closeAsync` method might be modified in the same way, and maybe it should. I posted a comment in the upstream JIRA (and if I get no reaction, I will open a new upstream JIRA).

That said, I also believe that the patches here _do_ fix a certain class of problems, hence VERIFIED.

Verification note: put `if (true) throw new RuntimeException("!TEST!");` at the beginning of org.jboss.remoting3.ConnectionImpl.closeAction to simulate a problem (it can't happen on this exact place normally, but it's a good enough approximation). Then, run a simple program that invokes a remote EJB. It hangs with Remoting 3.3.4 and it finishes successfully with Remoting 3.3.5. It's enough to change Remoting on the client, no need to change it on the server.

Comment 11 James Livingston 2015-07-30 04:28:49 UTC
*** Bug 1248299 has been marked as a duplicate of this bug. ***

Comment 12 Petr Penicka 2017-01-17 10:13:21 UTC
Retroactively bulk-closing issues from released EAP 6.4 cumulative patches.

Note You need to log in before you can comment on or make changes to this bug.