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

Reply via email to