@kidar2

Как полечить Deadlock Tomcat в методе openJarFile?

Иногда tomcat (Tomcat 8.5.23 на Ununtu server, java8) находится в deadlock, и ничего с ним не сделать. Удалось получить дамп потоков, в котором видно следующее

Stack trace заблокированных потоков:
org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.getArchiveEntries(AbstractSingleArchiveResourceSet.java:63)
org.apache.catalina.webresources.AbstractArchiveResourceSet.getResource(AbstractArchiveResourceSet.java:256)
org.apache.catalina.webresources.StandardRoot.getResourceInternal(StandardRoot.java:281)
org.apache.catalina.webresources.CachedResource.validateResource(CachedResource.java:95)
org.apache.catalina.webresources.Cache.getResource(Cache.java:69)
org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:216)
org.apache.catalina.webresources.StandardRoot.getClassLoaderResource(StandardRoot.java:225)
org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream(WebappClassLoaderBase.java:1067)
org.apache.xerces.parsers.SecuritySupport$6.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
org.apache.xerces.parsers.SecuritySupport.getResourceAsStream(Unknown Source)
org.apache.xerces.parsers.ObjectFactory.findJarServiceProvider(Unknown Source)
org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
org.apache.xerces.parsers.DOMParser.(Unknown Source)
org.apache.xerces.parsers.DOMParser.(Unknown Source)
org.apache.xerces.jaxp.DocumentBuilderImpl.(Unknown Source)
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)


Stack trace проблемного потока, который заблокировал другие:
java.util.zip.ZipFile.open(Native Method)
java.util.zip.ZipFile.(ZipFile.java:219)
java.util.zip.ZipFile.(ZipFile.java:149)
java.util.jar.JarFile.(JarFile.java:166)
java.util.jar.JarFile.(JarFile.java:103)
org.apache.catalina.webresources.AbstractArchiveResourceSet.openJarFile(AbstractArchiveResourceSet.java:308)
org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.getArchiveEntry(AbstractSingleArchiveResourceSet.java:93)
org.apache.catalina.webresources.AbstractArchiveResourceSet.getResource(AbstractArchiveResourceSet.java:260)
org.apache.catalina.webresources.StandardRoot.getResourceInternal(StandardRoot.java:281)
org.apache.catalina.webresources.CachedResource.validateResource(CachedResource.java:95)
org.apache.catalina.webresources.Cache.getResource(Cache.java:69)
org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:216)
org.apache.catalina.webresources.StandardRoot.getClassLoaderResource(StandardRoot.java:225)
org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream(WebappClassLoaderBase.java:1067)
org.apache.xerces.parsers.SecuritySupport$6.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
org.apache.xerces.parsers.SecuritySupport.getResourceAsStream(Unknown Source)
org.apache.xerces.parsers.ObjectFactory.findJarServiceProvider(Unknown Source)
org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
org.apache.xerces.parsers.DOMParser.(Unknown Source)
org.apache.xerces.parsers.DOMParser.(Unknown Source)
org.apache.xerces.jaxp.DocumentBuilderImpl.(Unknown Source)
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)


В то же время количество открытых файлов в ОС далеко от максимума.
Кто-нибудь сталкивался с подобным?
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы