Bug 1042754

Summary: EAP server cannot shutdown with a queueless-thread-pool configuration
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Eiichi Nagai <enagai>
Component: WebAssignee: Rémy Maucherat <rmaucher>
Status: CLOSED CURRENTRELEASE QA Contact: Michael Cada <mcada>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 6.2.0CC: pslavice, rpelisse
Target Milestone: DR8   
Target Release: EAP 6.4.0   
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:

Description Eiichi Nagai 2013-12-13 09:50:03 UTC
Description of problem:
When configure a queueless-thread-pool or a blocking-queueless-thread-pool, EAP 6 server cannot shutdown.

Version-Release number of selected component (if applicable):
EAP 6.0
EAP 6.1
EAP 6.2

How reproducible:
Always

Steps to Reproduce:
1. Configure a queueless-thread-pool (or a blocking-queueless-thread-pool).
ex) standalone.xml
        <subsystem xmlns="urn:jboss:domain:threads:1.1">
            <queueless-thread-pool name="TestExecutor">
                <max-threads count="1"/>
            </queueless-thread-pool>
	</subsystem>
--- snip ---
        <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
            <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http" executor="TestExecutor"/>
2. Run EAP server.
3. Shutdown EAP server.
4. Does not end shutdown process.

Comment 1 Martin Velas 2014-07-29 12:11:24 UTC
For given setting the process of EAP 6.3.0.ER10 server still does not end after the server shutdown.

Comment 2 Rémy Maucherat 2014-08-26 13:34:13 UTC
This executor configuration looks obviously broken (same as 882048). I don't see a real way to handle this.

Comment 3 Romain Pelisse 2015-01-08 13:55:59 UTC
FYI, I've tried to reproduced the issue, with the given configuration, and JBoss EAP-6.4.0.DR13 (using both OracleJDK and OpenJDK) on my Linux (Fedora 21) without any success at reproducing the issue.

So either my local env is somehow "wrong" (and it could be), or either the issue appears to be resolved...

Comment 4 Rémy Maucherat 2015-01-08 14:20:46 UTC
No idea, but the executor is a black box, it is not possible to check if the configuration is appropriate but as I could see there's a nice amount of creativity in that area.

Bad configurations will make the connector misbehave especially things like:
- Having one thread because it is cool (solution: have a reasonable amount of threads instead)
- Block in any way since the connector will stop doing anything during that time, the executor behavior should be to either give a thread or refuse the execution

Comment 5 Radim Hatlapatka 2015-01-12 09:55:08 UTC
I have reproduced the issue with old version of EAP and verified, that it is fixed since EAP 6.4.0.DR8.

I don't know what change fixed it, probably some update in Threads subsystem as between EAP 6.4.0.DR7 and EAP 6.4.0.DR8 the version of org.jboss.threads changed from 2.1.1.Final-redhat-1 to 2.1.2.Final

As the issue is no longer valid, setting as verified.