On Wed, 2017-08-16 at 16:37 -0600, Gary Gregory wrote:
> Oleg,
> 
> I created a ticket and a branch for
> https://issues.apache.org/jira/browse/HTTPCORE-482
> 
> Can you please review/update and merge if OK?
> 
> Thank you,
> Gary
> 

Hi Gary

The patch looks perfectly reasonable to me. I'll happily merge it for
you if you like.

Cheers

Oleg 

> On Wed, Aug 16, 2017 at 3:00 PM, Gary Gregory <[email protected]
> >
> wrote:
> 
> > Hi All (Oleg, really)
> > 
> > I am wondering how to fix/deal with the a timeout occurring in an
> > async
> > proxy when an origin server takes too long to reply.
> > 
> > You can reproduce this issue with our asyn example
> > NHttpReverseProxy:
> > 
> > Start it with: http://postman-echo.com 8888
> > 
> > Then run:
> > 
> > curl --verbose --max-time 1000 http://localhost:8888/delay/3
> > 
> > and you will get an EMPTY response from the server, no HTTP status
> > code
> > where I would expect a 504 or 500.
> > 
> > The proxy prints out:
> > 
> > Reverse proxy to http://postman-echo.com:80
> > [client->proxy] connection open 127.0.0.1:8888<->127.0.0.1:61128
> > [client->proxy] 00000001 GET /delay/3 HTTP/1.1
> > [client->proxy] 00000001 request completed
> > [proxy->origin] connection open 192.168.0.112:61130<-
> > >52.44.234.173:80
> > [proxy->origin] 00000001 GET /delay/3 HTTP/1.1
> > [proxy->origin] 00000001 request completed
> > [client->proxy] connection closed 127.0.0.1:8888<->127.0.0.1:61128
> > [client<-proxy] 00000001 java.net.SocketTimeoutException
> > [proxy->origin] connection released 192.168.0.112:61130<-
> > >52.44.234.173:80
> > [proxy->origin] [total kept alive: 0; total allocated: 0 of 100]
> > [proxy->origin] connection closed 192.168.0.112:61130<-
> > >52.44.234.173:80
> > 
> > Curl prints:
> > 
> > * STATE: INIT => CONNECT handle 0x600057930; line 1410 (connection
> > #-5000)
> > * Added connection 0. The cache now contains 1 members
> > * STATE: CONNECT => WAITRESOLVE handle 0x600057930; line 1446
> > (connection
> > #0)
> > *   Trying ::1...
> > * TCP_NODELAY set
> > * STATE: WAITRESOLVE => WAITCONNECT handle 0x600057930; line 1527
> > (connection #0)
> > *   Trying 127.0.0.1...
> > * TCP_NODELAY set
> > * Connected to localhost (127.0.0.1) port 8888 (#0)
> > * STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x600057930; line
> > 1579
> > (connection #0)
> > * Marked for [keep alive]: HTTP default
> > * STATE: SENDPROTOCONNECT => DO handle 0x600057930; line 1597
> > (connection
> > #0)
> > > GET /delay/3 HTTP/1.1
> > > Host: localhost:8888
> > > User-Agent: curl/7.54.1
> > > Accept: */*
> > > 
> > 
> > * STATE: DO => DO_DONE handle 0x600057930; line 1676 (connection
> > #0)
> > * STATE: DO_DONE => WAITPERFORM handle 0x600057930; line 1801
> > (connection
> > #0)
> > * STATE: WAITPERFORM => PERFORM handle 0x600057930; line 1811
> > (connection
> > #0)
> > * STATE: PERFORM => DONE handle 0x600057930; line 1980 (connection
> > #0)
> > * multi_done
> > * Empty reply from server
> > * Connection #0 to host localhost left intact
> > * Expire cleared
> > *curl: (52) Empty reply from server*
> > 
> > A bug in the example proxy? In HttpCore? Both? Or something missing
> > in the
> > implementation of the example async proxy?
> > 
> > Thoughts?
> > 
> > Thank you,
> > Gary
> > 

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to