Рабочие потоки AJP зависли - PullRequest
0 голосов
/ 08 июня 2018

CentOS 7, Java 1.8.131, Tomcat 7. Эта проблема появляется примерно раз в неделю.Tomcat не может ответить ни на один запрос.Потоки Ajp зависали при чтении AjpMessage из сокета.Он висит в нативном коде.Проблема исчезает при перезапуске tomcat.

при возникновении проблемы я вижу 200 зависающих потоков (tomcat.maxthreads = 200).Как я могу решить эту проблему?

Locked ownable synchronizers:
    - <0x00000001198fe520>, (a java/util/concurrent/ThreadPoolExecutor$Worker)

Thread 83765: (state = IN_NATIVE)
 - java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) @bci=0 (Compiled frame; information may be imprecise)
 - java.net.SocketInputStream.socketRead(java.io.FileDescriptor, byte[], int, int, int) @bci=8, line=116 (Compiled frame)
 - java.net.SocketInputStream.read(byte[], int, int, int) @bci=117, line=171 (Compiled frame)
 - java.net.SocketInputStream.read(byte[], int, int) @bci=11, line=141 (Compiled frame)
 - org.apache.coyote.ajp.AjpProcessor.read(byte[], int, int) @bci=25, line=312 (Compiled frame)
 - 
...