it would be worth updating to 9.4.6 and reporting from there if possible -- jesse mcconnell [email protected]
On Sun, Jul 30, 2017 at 9:38 AM, Bert Robben <[email protected]> wrote: > Hi all, > > we have an application where one part uses the jetty httpclient to > communicate with another part that runs a jetty http server. > > Both run version 9.4.2.v20170220. > > What I observe is that we very occasionally get an earlyEOF exception (see > example stacktrace below). > > What can I do to fix this? Is it safe to just retry and assume the request > has not reached the server? > > > Some more observations: > - we're not using https > - client and server are running "close" to each other (both machines in > the same office) > - the client is making repeated calls to the server (same url) > - it happens very sporadically (1 call in a 100K ?) > - it looks like https://bugs.eclipse.org/bugs/show_bug.cgi?id=434414. > There was a kind of fix for this (https://bugs.eclipse.org/bugs > /show_bug.cgi?id=476170), but I don't know how to apply it since I can't > find anything about "HttpClient.validateConnections". > - we're using async request/response > - I don't see any stack traces on the server side > > > As it happens so sporadically I can't really reproduce it in a small test > case. > > thanks, > > Bert > > PS: Here's the stack trace > > java.lang.RuntimeException: Failed to perform request. > at com.clear2pay.na.cucumber.stepdefinitions.RequestSteps$Reque > stAction.perform(RequestSteps.java:141) > at com.clear2pay.na.cucumber.stepdefinitions.ResponseSteps.lamb > da$eventuallyResponseBodyContainsList$3(ResponseSteps.java:167) > at org.awaitility.core.AssertionCondition$1.eval(AssertionCondi > tion.java:55) > at org.awaitility.core.ConditionAwaiter$ConditionPoller.run(Con > ditionAwaiter.java:215) > at java.util.concurrent.Executors$RunnableAdapter.call( > Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool > Executor.java:1142) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo > lExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > at ?.Then eventually the response body contains an items list with > only the following elements(features/paymentRetur > n/fetchPaymentReturns.feature:32) > Caused by: java.util.concurrent.ExecutionException: > java.io.EOFException: HttpConnectionOverHTTP@5c17fbe2(l:/ > 10.58.232.33:37384 <-> r:/10.58.233.142:8787,closed=f > alse)=>HttpChannelOverHTTP@da6d7d(exchange=HttpExchange@46cb4904 > req=TERMINATED/null@null res=PENDING/null@null)[send=Ht > tpSenderOverHTTP@1287e118(req=QUEUED,snd=COMPLETED,failure= > null)[HttpGenerator@499f9114{s=START}],recv=HttpReceiverOverHTTP@1afdbcdf > (rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of > -1}]]<-SocketChannelEndPoint@66255ed{/10.58.233.142:8787<->/ > 10.58.232.33:37384,ISHUT,fill=-,flush=-,to=0/0}{io=0/0,kio= > 0,kro=1}->HttpConnectionOverHTTP@5c17fbe2(l:/10.58.232.33:37384 <-> r:/ > 10.58.233.142:8787,closed=false)=>HttpChannelOverHTTP@da6 > d7d(exchange=HttpExchange@46cb4904 req=TERMINATED/null@null > res=PENDING/null@null)[send=HttpSenderOverHTTP@1287e118(req= > QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@499f9114{ > s=START}],recv=HttpReceiverOverHTTP@1afdbcdf(rsp=IDLE, > failure=null)[HttpParser{s=CLOSED,0 of -1}]] > at org.eclipse.jetty.client.util.FutureResponseListener.getResu > lt(FutureResponseListener.java:118) > at org.eclipse.jetty.client.util.FutureResponseListener.get(Fut > ureResponseListener.java:110) > at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:654) > at com.clear2pay.na.cucumber.stepdefinitions.RequestSteps$Reque > stAction.perform(RequestSteps.java:139) > at com.clear2pay.na.cucumber.stepdefinitions.ResponseSteps.lamb > da$eventuallyResponseBodyContainsList$3(ResponseSteps.java:167) > at org.awaitility.core.AssertionCondition$1.eval(AssertionCondi > tion.java:55) > at org.awaitility.core.ConditionAwaiter$ConditionPoller.run(Con > ditionAwaiter.java:215) > at java.util.concurrent.Executors$RunnableAdapter.call( > Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool > Executor.java:1142) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo > lExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.io.EOFException: HttpConnectionOverHTTP@5c17fbe2(l:/ > 10.58.232.33:37384 <-> r:/10.58.233.142:8787,closed=f > alse)=>HttpChannelOverHTTP@da6d7d(exchange=HttpExchange@46cb4904 > req=TERMINATED/null@null res=PENDING/null@null)[send=Ht > tpSenderOverHTTP@1287e118(req=QUEUED,snd=COMPLETED,failure= > null)[HttpGenerator@499f9114{s=START}],recv=HttpReceiverOverHTTP@1afdbcdf > (rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of > -1}]]<-SocketChannelEndPoint@66255ed{/10.58.233.142:8787<->/ > 10.58.232.33:37384,ISHUT,fill=-,flush=-,to=0/0}{io=0/0,kio= > 0,kro=1}->HttpConnectionOverHTTP@5c17fbe2(l:/10.58.232.33:37384 <-> r:/ > 10.58.233.142:8787,closed=false)=>HttpChannelOverHTTP@da6 > d7d(exchange=HttpExchange@46cb4904 req=TERMINATED/null@null > res=PENDING/null@null)[send=HttpSenderOverHTTP@1287e118(req= > QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@499f9114{ > s=START}],recv=HttpReceiverOverHTTP@1afdbcdf(rsp=IDLE, > failure=null)[HttpParser{s=CLOSED,0 of -1}]] > at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.earlyEOF( > HttpReceiverOverHTTP.java:310) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1418) > at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.shutdown( > HttpReceiverOverHTTP.java:196) > at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(H > ttpReceiverOverHTTP.java:143) > at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(H > ttpReceiverOverHTTP.java:70) > at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(Ht > tpChannelOverHTTP.java:130) > at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFilla > ble(HttpConnectionOverHTTP.java:116) > at org.eclipse.jetty.io.AbstractConnection$ReadCallback. > succeeded(AbstractConnection.java:279) > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) > at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint. > java:124) > at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invo > cable.java:122) > at org.eclipse.jetty.util.thread.strategy.ExecutingExecutionStr > ategy.invoke(ExecutingExecutionStrategy.java:58) > at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume > .produceConsume(ExecuteProduceConsume.java:201) > at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume > .run(ExecuteProduceConsume.java:133) > at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(Queued > ThreadPool.java:672) > at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedT > hreadPool.java:590) > ... 1 more > > > > _______________________________________________ > jetty-users mailing list > [email protected] > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/jetty-users >
_______________________________________________ jetty-users mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/jetty-users
