2016-03-22 6 views
2

Мы столкнулись с некоторым нечетным (в настоящее время невоспроизводимым) поведением в JDK8_74/Wildfly 9.0.1.Final. После анализа параметров пост-запроса рабочий поток запускает бесконечный цикл в нативный метод PollArrayWrapper.poll0(long, int, long). Поток потребляет 100% нагрузку процессора на одно ядро.Параметр-Чтение-Таймаут в Wildfly 9.0.1.Final

mServlet.java:468 io.undertow.servlet.spec.HttpServletRequestImpl.getParameterValues(String) 
    HttpServletRequestImpl.java:679 io.undertow.servlet.spec.HttpServletRequestImpl.parseFormData() 
... 
    SelectorImpl.java:86 sun.nio.ch.PollSelectorImpl.doSelect(long) 
     PollSelectorImpl.java:87 sun.nio.ch.PollArrayWrapper.poll(int, int, long) 
     PollArrayWrapper.java:115 sun.nio.ch.PollArrayWrapper.poll0(long, int, long) 

Кто-нибудь видел это? Кажется, что он появляется в разных проектах в разных случаях с 2005 года и несколько раз сообщался как JDK Bug, и они были отмечены исправленными.

Есть ли у кого-нибудь идеи, как заставить Wildfly использовать тайм-аут на методе poll0?

С наилучшими пожеланиями, Джонатан

+0

Это при использовании прослушивателя https? – ctomc

+0

@ctomc Мы используем http, а не https. – Jonathan

+0

Какова ваша точная ОС? – ctomc

ответ

0

Как ctomc подразумеваемой, этот вопрос очень вероятно, не решена JDK-ошибка. Наше программное обеспечение работает на довольно разных средах исполнения, и мы когда-либо видели эту проблему в системе SLES 11.4.23.

Возможным решением является использование инкапсуляции потоков в стиле хайтрикс: инкапсуляция критического вызова в пределах Callable и, следовательно, возможность реализовать некоторую форму сторожевого таймера/тайм-аута.

Смежные вопросы