Sporadic 502 ошибки из веб-приложения Java, работающего на Grizzly - PullRequest
0 голосов
/ 16 января 2019

Мы получаем единичные 502 ошибки из нашего веб-приложения; мы можем воспроизвести это, повторяя один и тот же вызов несколько раз: в 8-12-й раз он зависает на ~ 30 секунд, а затем возвращает html «ошибка 502 прокси».

Мы исключили проблему с AWS или Apache, выполнив вход на одну уязвимую машину и вызвав приложение непосредственно на localhost: 8080 с curl; после некоторых звонков получаем:

* Recv failure: Connection reset by peer
* stopped the pause stream!
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer

Глядя на журналы приложений, кажется, что проблемные вызовы никогда не доходят до приложения (они никогда не регистрируются).

Веб-приложение на основе Java с использованием контейнера Grizzly (org.glassfish.jersey.containers:jersey-container-grizzly2-http:2.25.1).

РЕДАКТИРОВАТЬ: 30-секундная длительность зависания звонков кажется keepAlive свойство NetworkListener (https://javaee.github.io/grizzly/httpserverframework.html).

РЕДАКТИРОВАТЬ 2: проблема может быть воспроизведена только путем повторного вызова API с использованием AsyncResponse ; вызов других конечных точек не вызывает такого поведения.

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Решено: обновление до Джерси 2.26 решило проблему, хотя я не понимал, почему это произошло.

0 голосов
/ 16 января 2019

Может быть проблема с параллелизмом в соединениях или потоках вашего приложения, возможно, вы открываете множество подключений к бэкэнду, пока оно не достигнет предела, или ваши соединения не закрывают потоки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...