Helidon - ForwardingHandler не завершает RequestContext Publisher, если LoadBalancer прерывает запущенный процесс Expect: 100-continue
Мы предоставляем Helidon MP Rest-Services за балансировщиком нагрузки Apache httpd. Следующая комбинация приводит к зависанию очереди исполнителя JerseySupport Service.
Клиент отправляет запрос POST в нашу службу отдыха с полезными данными json и заголовком Expect 100-continue. Балансировщик нагрузки Apache отправляет запрос на бэкэнд. Бэкэнд принимает запрос и запускает исполняемый объект JerseySupport, который ожидает входящих данных, затем бэкэнд отправляет ответ LB для запуска потока (статус ответа 100). Если на этом этапе клиентский запрос превышает тайм-аут соединения балансировщика нагрузки, балансировщик нагрузки прерывает соединение с вызывающим клиентом с ошибкой прокси, но серверная служба не получает информацию и ждет вечно.
Проблема в том, что io.helidon.webserver.ForwardingHandler завершает публикацию содержимого http только в том случае, если отправлено сообщение LastHttpContent, а этого никогда не происходит. Если издатель никогда не завершает работу, подписчик внутри ожидающего экземпляра службы JerseySupport навсегда блокирует экземпляр исполнителя сервера. Если это произойдет несколько раз, вся остальная услуга будет заблокирована.
Я не нашел ни возможности настроить соответствующий тайм-аут внутри helidon для прерывания службы JerseySupport, ни возможности заставить балансировщик нагрузки apache соответствующим образом завершить соединение с серверной частью.
Кто-нибудь из вас заметил подобные проблемы или нашел обходной путь, кроме отключения 100-продолжения потоковой передачи.
Версия Helidon: 1.4.4 Версия Apache: 2.4.41
заранее спасибо