Router Http2 to Older Version Service
One of the customers encountered an issue and we have helped them to debug and resolve the issue. Here is the situation:
They have a backend service that generate document based on template and REST request. It is based on light-4j 1.5.14 which is baed on Undertow 1.4.x
They deployed a light-router instance in front of the service for a third party client to access the service along with other services. The light-router instance is built on top of light-4j 1.5.30
The client connects to the light-router with http/1.1 and https. light-router connect to the backend with http/2 and https and the backend service is listening to http/2.
If the client sends a post request with French character in the body, the router is timeout which means the response is not received from the backend service. The debug info indicates that the backend service response is sent already. There is no problem for other requests with body without French character.
The application is on UAT at the time and will be released to production in 2 weeks. The solution we have is to update the light-router config to switch from http/2 to http/1.1
After the config change on light-router, everything works fine. We don’t know exactly the root cause but guess it is due to different version of Undertow instances handle the HTTP/2 differently. We’ve recommended to upgrade the backend service to the latest version but I will take some time.