Summary: We got the report from a Team and investigated the problem. Their Spring Boot Zuul Service did not respond correctly to requests with a large payload.

Apache Tomcat Large Requests Bug | by Stefan Pfaffel | Javarevisited

Source: Stefan Pfaffel - 1970-01-01T00:00:00Z

0 UP DOWN

How We Found Apache Tomcat Couldn’t Handle Large Requests

It all started as a bug report for our internal library.

Stefan Pfaffel

Javarevisited

Photo by Headway on Unsplash

The bug report

A few weeks ago, a team reported a problem. Their Zuul Proxy stopped forwarding request bodies to backend systems. On their Windows machines, the developer team could not reproduce the problem. Neither could we.

We verified that the frontend application was actually sending the payload. After being sure about that, we enabled wire logging in our proxy service. We found that the service in question received the payload, but did indeed not forward it to the downstream service.

upstream/downstream
Upstream and downstream describe the flow of a message: all
messages flow from upstream to downstream.
tools.ietf.org

Why shouldn’t the proxy forward the request body out of a sudden?

Photo by Evan Dennis on Unsplash

The first question we asked ourselves was: How do messages flow through our proxy services? Our Zuul proxies use an embedded Apache Tomcat as an application server. Zuul itself registers a Servlet that will forward the request through the many Filters and finally…