Mantis - Resin
Viewing Issue Advanced Details
4683 minor always 07-25-11 12:12 07-28-11 16:47
ferg  
ferg  
normal  
closed 4.0.20  
fixed  
none    
none 4.0.21  
0004683: ThreadPool full
(rep by Amir Langer)


java.lang.IllegalStateException: Thread pool full
    at com.caucho.env.thread.ThreadPool.scheduleImpl(ThreadPool.java:598)
    at com.caucho.env.thread.ThreadPool.start(ThreadPool.java:513)
    at com.caucho.network.listen.TcpSocketLink.requestAccept(TcpSocketLink.java:635)
    at com.caucho.network.listen.SocketLinkThreadLauncher.launchChildThread(SocketLinkThreadLauncher.java:77)
    at com.caucho.env.thread.AbstractThreadLauncher.startConnection(AbstractThreadLauncher.java:404)
    at com.caucho.env.thread.AbstractThreadLauncher.runTask(AbstractThreadLauncher.java:441)
    at com.caucho.env.thread.AbstractTaskWorker.run(AbstractTaskWorker.java:160)
    at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:164)
    at com.caucho.env.thread.ResinThread.run(ResinThread.java:130)

This exception is then repeated continuously and resin then is basically just busy generating exceptions.

It is happening in our continuous integration env. and the usage in both cases is identical.

We tried various different thead pool settings

Our current thread pool settings are:

            <thread-max>1024</thread-max>
            <thread-idle-max>256</thread-idle-max>
            <thread-idle-min>32</thread-idle-min>

and we tried to play with the numbers a bit but none of the changes seemed to make a difference to the difference in behaviour.

For some reason 4.0.20 uses all the threads and blows up while 4.0.19-snapshot-2 will happily work even with a thread-max of 512.
"http://*:9090-66968" [^] daemon prio=10 tid=0x0000000053c3d000 nid=0x6add runnable [0x0000000043285000]
   java.lang.Thread.State: RUNNABLE
    at com.caucho.vfs.JniSocketImpl.readNative(Native Method)
    at com.caucho.vfs.JniSocketImpl.read(JniSocketImpl.java:380)
    - locked <0x0000000720d070b0> (a java.lang.Object)
    at com.caucho.vfs.JniStream.readTimeout(JniStream.java:100)
    at com.caucho.vfs.ReadStream.fillWithTimeout(ReadStream.java:1135)
    at com.caucho.network.listen.TcpSocketLink.threadKeepalive(TcpSocketLink.java:1283)
    at com.caucho.network.listen.TcpSocketLink.processKeepalive(TcpSocketLink.java:1266)
    at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1124)
    at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1055)
    at com.caucho.network.listen.TcpSocketLink.handleAcceptTask(TcpSocketLink.java:903)
    at com.caucho.network.listen.AcceptTask.doTask(AcceptTask.java:74)
    at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:97)
    at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:80)
    at com.caucho.network.listen.AcceptTask.run(AcceptTask.java:59)
    at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:164)
    at com.caucho.env.thread.ResinThread.run(ResinThread.java:130)

Notes
(0005408)
ferg   
07-28-11 16:47   
network/0230