[
https://issues.jboss.org/browse/AS7-6105?page=com.atlassian.jira.plugin.s...
]
Remy Maucherat resolved AS7-6105.
---------------------------------
Resolution: Rejected
It is normal behavior if the threads are not daemon threads. There's no benefit to
using an executor with the java.io AJP connector (it will almost never give any thread
back).
Shutdown process hangs using thread pool executor
-------------------------------------------------
Key: AS7-6105
URL:
https://issues.jboss.org/browse/AS7-6105
Project: Application Server 7
Issue Type: Bug
Components: Web
Affects Versions: 7.1.1.Final, 7.1.3.Final (EAP)
Reporter: Eiichi Nagai
Assignee: Remy Maucherat
When AJP connecotr uses thread pool executor configuration[1], AJP's worker thread is
waited by AjpProcessor.read()[2]. QueueExecuter recognizes it as active thread. Therefor,
unless httpd server shut down, EAP server shutdown process does not finish forever.
[1] standalone.xml
<subsystem xmlns="urn:jboss:domain:threads:1.1">
<bounded-queue-thread-pool name="http-executor">
<queue-length count="1"/>
<max-threads count="1"/>
</bounded-queue-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"/>
<connector name="ajp" protocol="AJP/1.3"
scheme="http" socket-binding="ajp"
executor="http-executor"/>
<virtual-server name="default-host"
enable-welcome-root="true">
<alias name="localhost"/>
<alias name="example.com"/>
</virtual-server>
</subsystem>
[2]
"http-executor-threads - 1" prio=6 tid=0x55515000 nid=0x20c0 runnable
[0x5590f000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at org.apache.coyote.ajp.AjpProcessor.read(AjpProcessor.java:1131)
at org.apache.coyote.ajp.AjpProcessor.readMessage(AjpProcessor.java:1213)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:451)
at
org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:452)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:519)
at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33)
at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:801)
at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)
at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:821)
at java.lang.Thread.run(Thread.java:662)
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira