This is a change in behaviour in jetty 9.3, but not one that should affect any application.
The problem with consumeAll previously is that it was an unlimited commitment - a client could send chunks forever and consume a thread forever.
The only reason we need to consume all is to maintain a persistent connection. If we don't consumeAll, we can close that connection and the client needs to start a new one.
So the approach that 9.3 takes is that if the application has not read all it's content (which is normally an error condition), then jetty will make a best effort attempt to read the content, but if it has to block - it gives up and the connection should be closed.
So I don't see how this can break an application - unless the client is trying to do pipelining and not correctly retrying queued requests if the connection closes OR perhaps jetty is not correctly closing the connection (this I will check shortly).
Can you tell us more about how this is causing a problem for SOLR? Why is the content not consumed? Why does it cause a problem if Jetty does not consume it?
Basically, an exception on the server (which can happen when an update fails), ends consuming the request on the server. If the client takes a moment to end the request, the server will reset the connection. We would prefer to reuse the connection in these cases, because it's possible to have many update fails in a group and we don't want that to spin up a storm of connections. We would prefer the client to manage the connection. In this case, it seems we have 10-12ms to get the request close chunk sent instead of the previous 30 seconds before other timeouts hit.
But really, part of issue for us is that Apache HttpClient also gets messed up by this. It will fail trying to finish the request and instead of reporting the error from the server, will report an internal error where it tries to write to the reset connection on outputstream close, flush. That exception comes out of HttpClient and you don't even have access to the exception the server hit.
- Mark