Назад | Перейти на главную страницу

Wildfly 8.1.0 Final зависает (соединения остаются навсегда / канал был закрыт в середине блока)

Я только что перенес приложение с JBoss 7.1.1 на Wildfly 8.1.0 Final. Но теперь время от времени (например, каждые 2 дня) Wildfly зависает, и мне приходится его перезапускать. Мое приложение в основном EJB / JPA / JAX-RS с Resteasy.

Под зависанием я подразумеваю, что каждый HTTP-доступ к Wildfly ждет вечно. Я подозреваю, что заморожен только Undertow, потому что я вижу в своем журнале приложения, что задачи, которые были запланированы, выполняются, хотя ни одно из них не связано с сетью.

Я также заметил в своем журнале следующую ошибку: «Ответ зафиксирован, не удается обработать исключение», вызванное IOException «Канал был закрыт в середине фрагмента, если вы попытались записать фрагментированные данные, вы не можете закрыть канал до тех пор, пока все не будет завершено. написано ".

Сервер - это виртуальная машина Ubuntu, работающая в Azure. «Физическая память» и «жесткий диск» в порядке. В соответствии со средой выполнения JVM в Wildfly Management использование кучи, не-кучи и потоков разрешено.

Единственное, что я заметил, это то, что я установил много соединений навсегда, когда я "netstat -aln". У меня меньше 100 клиентов в день, но сейчас я считаю 2К установленных соединений на моем порту 8080.

Что я могу сделать, чтобы лучше диагностировать и решить эту проблему?

С уважением, Ренан

ОБНОВИТЬ: это действительно была ошибка 8.1.0, исправленная для 8.2.0, см. мой ответ со ссылкой на проблему, открытую на JbossDeveloper.

Я хотел бы поделиться своим опытом в качестве разработчика / архитектора Wildfly 8.1.

Я перехожу с 7.1.1 на 8.1 на Windows / Eclipse несколько дней назад. Также заметил некоторую нестабильность; член группы разработчиков выполнил миграцию и жалуется на сбои в работе eclipse / не такое же поведение, как в 7.1.1. Другой член команды все еще работает над Wildfly 8.0; похоже, что предыдущая версия более стабильна.

JBOss скажет вам, что Wildfly не является производственным сервером приложений; это для целей развития. Но я думаю, что вы указываете на какую-то серьезную ошибку / сходящуюся с моими успехами / без каких-либо реальных фактов и без ответа на ваш вопрос.

Вам следует переслать свое сообщение прямо на форумы JBoss, чтобы быть уверенным, что команда Wildfly исследует проблему и надеется, что исправление будет частью выпусков 8.2.

Это была ошибка 8.1.0, исправленная для 8.2.0:

https://issues.jboss.org/browse/WFLY-3536?_sscc=t

Я использовал wildfly 8.0 final с Spring 4.1.0 и JSF 2.0 и JDK 8.0_u25, я столкнулся с тем же исключением: UT005013: Произошло исключение IOException: java.io.IOException: UT000029: Канал был закрыт в середине фрагмента, если вы попытались записать фрагментированные данные, вы не можете закрыть канал до тех пор, пока все не будет записано.

И моя обработка ЦП сервера увеличивается на 25% каждый раз, когда возникает исключение. Alhumdulillah Теперь я решил свою проблему.

Сейчас я использую: Wildfly 8.2.0 Final с Spring 4.1.0 и JSF 2.0 и JDK 8.0_u25

Wildfly 8.2.0 решает мою проблему с обработкой ЦП. Я наблюдаю за своим сервером почти 8 дней, затем я понимаю, что когда хост (клиент / пользователь) отправляет некоторый запрос на сервер, который требует некоторого времени для расчета / времени ответа сервера, этот пользователь закрывает окно браузера или выйти из системы до получения ответа от сервера. когда Сервер выполнил свою обработку, а затем попытался отправить ответ на свой конкретный запрос хоста / клиента, возникает исключение ввода-вывода, потому что клиент закрыл окно браузера.

Надеюсь, это поможет тебе