Bert,
In the log I can see that jetty reads -1 from the connection:
[2022-06-24 13:59:42,844] [DEBUG] [] [o.eclipse.jetty.client.HttpReceiver] [] - Read -1 bytes in RetainableByteBuffer@7981e286{DirectByteBuffer@31b1f4ee[p=0,l=0,c=16384,r=0]={<<<>>>","supple...ringRef},r=1} from SocketChannelEndPoint@6729d2cd{l=/
10.129.8.239:52852,r=test-product.na-test-product.svc/
172.30.166.114:8080,ISHUT,fill=-,flush=-,to=200/0}{io=1/0,kio=1,kro=1}->HttpConnectionOverHTTP@4bf7cbf(l:/
10.129.8.239:52852 <-> r:test-product.na-test-product.svc/
172.30.166.114:8080,closed=false)=>HttpChannelOverHTTP@3d9c7d7e(exchange=HttpExchange@47cdff18{req=HttpRequest[GET /test-product/v1/streaming-writer/customerCreditTransfers HTTP/1.1]@264a9253[TERMINATED/null] res=HttpResponse[HTTP/1.1 200 OK]@2e6dea5e[PENDING/null]})[send=HttpSenderOverHTTP@318845ec(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@4ead8de6{s=START}],recv=HttpReceiverOverHTTP@67bb9144(rsp=CONTENT,failure=null)[HttpParser{s=EOF_CONTENT,1438806 of -1}]]
So this is a little strange, as the server was "savagely killed" and a more exceptional end to the connection could be expected. However, this is entirely dependent on many factors such as intermediaries, routers, network setup and perhaps even the exact state of the server when it was savagely killed. Either way, it is beyond Jetty's control how the socket layer presents the failure, and in this case the failure looks like a normal EOF.
If I'm reading the log correctly, the transfer is being done with EOF_CONTENT mode, so an orderly EOF is taken to be the real end of the content. Thus jetty has been told the response ends with EOF and it has seen a valid EOF, so it thinks that is the content and has no way to know that it is not. This is a flaw of the HTTP protocol that uses EOF for message framing.
The solution is to just not use EOF for message framing. Either set a content length or you can try hinting for the server to use chunked transfer encoding (by setting `Transfer-Encoding: chunked` in the response headers).
It may also be worthwhile to try to get a tcpdump of such a conversation to see exactly why a clean -1 is being read for that connection... or even an strace of the client process to verify a -1 is really being read.
regards