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]
