Один из наших веб-серверов перестал отвечать на любой запрос, jstack предполагает, что в процессе есть взаимоблокировки, потоки сервала застряли, лог такой:
Found one Java-level deadlock:
=============================
"qtp728030296-143":
waiting to lock monitor 0x00007ff8e4002528 (object 0x0000000080005b28, a java.lang.ThreadGroup),
which is held by UNKNOWN_owner_addr=0x00007ff8d8002000
Java stack information for the threads listed above:
===================================================
"qtp728030296-143":
at java.lang.ThreadGroup.addUnstarted(ThreadGroup.java:865)
- waiting to lock <0x0000000080005b28> (a java.lang.ThreadGroup)
at java.lang.Thread.init(Thread.java:405)
at java.lang.Thread.init(Thread.java:349)
at java.lang.Thread.<init>(Thread.java:499)
at org.eclipse.jetty.util.thread.QueuedThreadPool.newThread(QueuedThreadPool.java:558)
at org.eclipse.jetty.util.thread.QueuedThreadPool.startThreads(QueuedThreadPool.java:537)
at org.eclipse.jetty.util.thread.QueuedThreadPool.access$200(QueuedThreadPool.java:49)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:728)
at java.lang.Thread.run(Thread.java:748)
Кажется, что монитор группы потоков удерживается каким-то неизвестным потоком. Я погуглил сообщение об ошибке "которое принадлежит UNKNOWN_owner_addr", оно привело меня к эта ветка ошибок apache:
У него точно такое же сообщение об ошибке, и предполагается, что это вызвано ошибкой JDK jemalloc.
Я не знаком с этими низкоуровневыми вещами jvm/jemalloc, они для меня как магия :). Поэтому я не уверен на 100%, что моя проблема вызвана этой ошибкой. И если я правильно понимаю ошибку jdk, значит ли это, что все программы JDK8, 11, 12 страдают от нее, любая java-программа может с крошечной вероятностью столкнуться с этим загадочным тупиком?