Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Fwd: occasional earlyEOF exceptions

it would be worth updating to 9.4.6 and reporting from there if possible

--
jesse mcconnell
jesse.mcconnell@xxxxxxxxx

On Sun, Jul 30, 2017 at 9:38 AM, Bert Robben <bert.robben@xxxxxxxxx> 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$RequestAction.perform(RequestSteps.java:141)
      at com.clear2pay.na.cucumber.stepdefinitions.ResponseSteps.lambda$eventuallyResponseBodyContainsList$3(ResponseSteps.java:167)
      at org.awaitility.core.AssertionCondition$1.eval(AssertionCondition.java:55)
      at org.awaitility.core.ConditionAwaiter$ConditionPoller.run(ConditionAwaiter.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(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.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/paymentReturn/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=false)=>HttpChannelOverHTTP@da6d7d(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}]]<-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@da6d7d(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.getResult(FutureResponseListener.java:118)
      at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:110)
      at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:654)
      at com.clear2pay.na.cucumber.stepdefinitions.RequestSteps$RequestAction.perform(RequestSteps.java:139)
      at com.clear2pay.na.cucumber.stepdefinitions.ResponseSteps.lambda$eventuallyResponseBodyContainsList$3(ResponseSteps.java:167)
      at org.awaitility.core.AssertionCondition$1.eval(AssertionCondition.java:55)
      at org.awaitility.core.ConditionAwaiter$ConditionPoller.run(ConditionAwaiter.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(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.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=false)=>HttpChannelOverHTTP@da6d7d(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}]]<-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@da6d7d(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(HttpReceiverOverHTTP.java:143)
      at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:70)
      at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:130)
      at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(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(Invocable.java:122)
      at org.eclipse.jetty.util.thread.strategy.ExecutingExecutionStrategy.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(QueuedThreadPool.java:672)
      at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
      ... 1 more



_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users


Back to the top