Мы получаем единичные 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 ; вызов других конечных точек не вызывает такого поведения.