We have an application that using Apache camel to call REST API. And we got EOFExceptions from jetty occasionally.
Some more observations:
- we're not using https
- it happens very sporadically (once for per 10K ?)
Does anybody known the reason and how to resolve this problem?
Thaks.
Here's the stack trace
org.apache.camel.CamelExchangeException: JettyClient failed cause by: HttpConnectionOverHTTP@413b2b34::SocketChannelEndPoint@3af7292{localhost/127.0.0.1:44904<->/127.0.0.1:56676,ISHUT,fill=-,flush=-,to=0/0}{io=1/0,kio=1,kro=1}->HttpConnectionOverHTTP@413b2b34(l:/127.0.0.1:56676 <-> r:localhost/127.0.0.1:44904,closed=false)=>HttpChannelOverHTTP@1f576404(exchange=HttpExchange@56d8659f req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@37f033df(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@2f8acc9e{s=START}],recv=HttpReceiverOverHTTP@5749001f(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]. Exchange[ID-SPAMDBP1-1641410557693-0-168236]. Caused by: [java.io.EOFException - HttpConnectionOverHTTP@413b2b34::SocketChannelEndPoint@3af7292{localhost/127.0.0.1:44904<->/127.0.0.1:56676,ISHUT,fill=-,flush=-,to=0/0}{io=1/0,kio=1,kro=1}->HttpConnectionOverHTTP@413b2b34(l:/127.0.0.1:56676 <-> r:localhost/127.0.0.1:44904,closed=false)=>HttpChannelOverHTTP@1f576404(exchange=HttpExchange@56d8659f req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@37f033df(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@2f8acc9e{s=START}],recv=HttpReceiverOverHTTP@5749001f(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]]
at org.apache.camel.component.jetty9.JettyContentExchange9.doTaskCompleted(JettyContentExchange9.java:162)
at org.apache.camel.component.jetty9.JettyContentExchange9$2.onComplete(JettyContentExchange9.java:246)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:202)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:194)
at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:470)
at org.eclipse.jetty.client.HttpReceiver.abort(HttpReceiver.java:552)
at org.eclipse.jetty.client.HttpReceiver.responseFailure(HttpReceiver.java:442)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.failAndClose(HttpReceiverOverHTTP.java:369)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.earlyEOF(HttpReceiverOverHTTP.java:338)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1551)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.shutdown(HttpReceiverOverHTTP.java:209)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:147)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:73)
at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:133)
at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:155)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.EOFException: HttpConnectionOverHTTP@413b2b34::SocketChannelEndPoint@3af7292{localhost/127.0.0.1:44904<->/127.0.0.1:56676,ISHUT,fill=-,flush=-,to=0/0}{io=1/0,kio=1,kro=1}->HttpConnectionOverHTTP@413b2b34(l:/127.0.0.1:56676 <-> r:localhost/127.0.0.1:44904,closed=false)=>HttpChannelOverHTTP@1f576404(exchange=HttpExchange@56d8659f req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@37f033df(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@2f8acc9e{s=START}],recv=HttpReceiverOverHTTP@5749001f(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]
... 18 common frames omitted