
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
28.11.2017, 12:50
|
|||
|---|---|---|---|
|
|||
Как полечить Deadlock Tomcat в методе openJarFile? |
|||
|
#18+
Иногда 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) В то же время количество открытых файлов в ОС далеко от максимума. Проблем с нехваткой памяти нет, CPU не загружен. На это сервере размещено только одно веб-приложение. Кто-нибудь сталкивался с подобным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2017, 12:56
|
|||
|---|---|---|---|
|
|||
Как полечить Deadlock Tomcat в методе openJarFile? |
|||
|
#18+
А почему локов в дампе не видно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2017, 13:07
|
|||
|---|---|---|---|
|
|||
Как полечить Deadlock Tomcat в методе openJarFile? |
|||
|
#18+
kidar2, Как workaround могу предложить написать однопоточный экзекутор для newDocumentBuilder(). Код: java 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2017, 13:13
|
|||
|---|---|---|---|
|
|||
Как полечить Deadlock Tomcat в методе openJarFile? |
|||
|
#18+
На deadlock не очень-то похоже. На чем java.util.zip.ZipFile.open(Native Method) заблокировался - не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2017, 13:15
|
|||
|---|---|---|---|
|
|||
Как полечить Deadlock Tomcat в методе openJarFile? |
|||
|
#18+
kidar2, Может диск проверить и томкат переставить? Сетевых ресурсов, случайно, нигде в classpath не прописано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2017, 13:44
|
|||
|---|---|---|---|
|
|||
Как полечить Deadlock Tomcat в методе openJarFile? |
|||
|
#18+
Blazkowicz, Блокировка произошла в org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.getArchiveEntry(AbstractSingleArchiveResourceSet.java:93) авторМожет диск проверить и томкат переставить? Сетевых ресурсов, случайно, нигде в classpath не прописано? Tomcat уже обновлял с 8.5.13 до 8.5.23. Проблема проявляется на 3 разных серверах в aws. Сетевых ресурсов нету авторКак workaround могу предложить написать однопоточный экзекутор для newDocumentBuilder(). Не очень понимаю, как это может помочь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2017, 14:11
|
|||
|---|---|---|---|
|
|||
Как полечить Deadlock Tomcat в методе openJarFile? |
|||
|
#18+
kidar2Блокировка произошла в org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.getArchiveEntry(AbstractSingleArchiveResourceSet.java:93) Да, мне понятно это. Объяснять не нужно. Только там не блокировка произошла, а лок захватился. Потом завис ZipFile.open в связи с чем лок в AbstractSingleArchiveResourceSet не освободился и все кто пытаются на нём синхронизироваться - вешаются. Просто в вашем дампе локов нет и почему вы решили что это именно deadlock - мне не понятно. Вы ведь не знаете на чем ZipFile.open заблокировался. kidar2Не очень понимаю, как это может помочь? Если это и правда deadlock, то вы сведёте множество потоков в к одному и они друг-друга блокировать не будут. Но это никак не поможет, если проблема системная в чтении файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2017, 14:19
|
|||
|---|---|---|---|
|
|||
Как полечить Deadlock Tomcat в методе openJarFile? |
|||
|
#18+
Можно ещё Xerces-у просунуть тип конфигурации через System Property https://xerces.apache.org/xerces2-j/faq-xni.html Чтобы эта падла не лазила по jar-ам на каждый пук в поисках настроек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2122430]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 315ms |

| 0 / 0 |
