Bug 1035787

Summary: Thread leak in JBossWeb after :reload
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Ladislav Thon <lthon>
Component: WebAssignee: Rémy Maucherat <rmaucher>
Status: CLOSED DUPLICATE QA Contact: Radim Hatlapatka <rhatlapa>
Severity: high Docs Contact: Russell Dickenson <rdickens>
Priority: unspecified    
Version: 6.2.0CC: ochaloup, psakar
Target Milestone: ---   
Target Release: EAP 6.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-12-19 09:36:16 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:
Attachments:
Description Flags
reproducer
none
preliminary patch none

Description Ladislav Thon 2013-11-28 13:26:55 UTC
Created attachment 830235 [details]
reproducer

Description of problem:

JBossWeb threads keep running after :reload, even though the subsystem is stopped successfully.

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

EAP 6.2.0.CR3

How reproducible:

Always

Steps to Reproduce:
1. Start EAP
2. Invoke :reload via the CLI several times
3. Look at the number of running threads named "http-/127.0.0.1:8080-*" via jstack

I have this automated in the repro.sh script (see attachment).

Actual results:

The number of threads keeps rising during the test.

Expected results:

The number of threads is still the same during the test.

Additional info:

I looked into the implementation of JBossWeb and I believe I fixed the problem. Attaching a patch for the org.apache.tomcat.util.net.JIoEndpoint class -- note that this totally needs review, as I'm not familiar with the codebase. Also note that similar patch might be needed for NioEndpoint and maybe others, not sure.

Comment 1 Ladislav Thon 2013-11-28 13:27:29 UTC
Created attachment 830236 [details]
preliminary patch

Comment 2 Rémy Maucherat 2013-11-29 16:56:47 UTC
Very good catch, it would leak 2 or 3 threads depending on the connector. Obviously it was a bit hard to notice.

I applied something like your patch (for all connectors).

Comment 3 Radim Hatlapatka 2013-12-19 09:36:16 UTC
Closing as duplicate as it is about the same issue as in BZ#1032552

*** This bug has been marked as a duplicate of bug 1032552 ***