[ 
https://issues.apache.org/jira/browse/HTTPCORE-475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16072742#comment-16072742
 ] 

ASF subversion and git services commented on HTTPCORE-475:
----------------------------------------------------------

Commit 08339dcca2696da5176e89b4da6d9653886b151c in httpcomponents-core's branch 
refs/heads/4.4.x from [~olegk]
[ https://git-wip-us.apache.org/repos/asf?p=httpcomponents-core.git;h=08339dc ]

HTTPCORE-475: Elemental Reverse Proxy example to handle stale outgoing 
connections more gracefully


> Occasional issues in handling "204 No Content"
> ----------------------------------------------
>
>                 Key: HTTPCORE-475
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-475
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: Examples, HttpCore
>    Affects Versions: 4.4.6
>         Environment: Windows, Java 8
>            Reporter: M.S. Dousti
>            Priority: Minor
>         Attachments: without-proxy.png, with-proxy.png
>
>
> While testing {{ElementalReverseProxy}}, I noted that occasionally, some 
> requests fail. Digging further, it seems that the code has some difficulty in 
> handling POST requests whose responses have "204 No Content" status. The bug 
> is intermittent, so it is a bit tricky to reproduce. One way is to run the 
> proxy against [http://www.bing.com]. (Notice it's HTTP and not HTTPS). Here 
> are the steps:
> 1) Change line 274 of {{ElementalReverseProxy}} to further assist in 
> debugging, from:
> {code:java}
> System.err.println("I/O error: " + ex.getMessage());
> {code}
> to:
> {code:java}
> ex.printStackTrace(); System.exit(-1);
> {code}
> 2) Add the following lines to your {{hosts}} file ({{/etc/hosts}} in Linux, 
> and {{%SystemRoot%\System32\drivers\etc\hosts}} in Windows):
> {code:none}
> 127.0.0.1 bing.com
> 127.0.0.1 www.bing.com
> {code}
> 3) Run {{ElementalReverseProxy}} against one of Bing's IP addresses. I used 
> {{204.79.197.200}}.
> 4) Navigate your browser to {{http://www.bing.com:8888}}, and watch the 
> output of 
> {{ElementalReverseProxy}}. Here's a sample run:
> {noformat}
> Listening on port 8888
> Incoming connection from /127.0.0.1
> Outgoing connection to /204.79.197.200
> New connection thread
> >> Request URI: /
> << Response: HTTP/1.1 200 OK
> Incoming connection from /127.0.0.1
> Outgoing connection to /204.79.197.200
> Incoming connection from /127.0.0.1
> New connection thread
> >> Request URI: 
> >> /fd/ls/l?IG=3C1FD9BC348B419DAF07D5D09D135555&CID=3ED5D1926AB96D71082FDB206BCB6CA6&Type=Event.CPT&DATA={%22pp%22:{%22S%22:%22L%22,%22FC%22:-1,%22BC%22:-1,%22SE%22:-1,%22TC%22:-1,%22H%22:116,%22BP%22:134,%22CT%22:169,%22IL%22:1},%22ad%22:[-1,-1,1600,770,1600,770,0]}&P=SERP&DA=Bn2
> Outgoing connection to /204.79.197.200
> New connection thread
> >> Request URI: /fd/ls/lsp.aspx?
> Incoming connection from /127.0.0.1
> Outgoing connection to /204.79.197.200
> New connection thread
> Incoming connection from /127.0.0.1
> >> Request URI: 
> >> /notifications/render?bnptrigger=%7B%22PartnerId%22%3A%22HomePage%22%2C%22IID%22%3A%22SERP.2000%22%2C%22Attributes%22%3A%7B%22RawRequestURL%22%3A%22%2F%22%7D%7D&IG=3C1FD9BC348B419DAF07D5D09D135555&IID=SERP.2000
> Outgoing connection to /204.79.197.200
> New connection thread
> Incoming connection from /127.0.0.1
> >> Request URI: /sa/8_01_0_000000/HpbHeaderPopup.js
> << Response: HTTP/1.1 204 OK
> Outgoing connection to /204.79.197.200
> New connection thread
> >> Request URI: /sa/8_01_0_000000/homepageImgViewer_c.js
> << Response: HTTP/1.1 200 OK
> << Response: HTTP/1.1 200 OK
> << Response: HTTP/1.1 200 OK
> >> Request URI: 
> >> /HPImageArchive.aspx?format=js&idx=0&n=1&nc=1498898493932&pid=hp
> org.apache.http.NoHttpResponseException: The target server failed to 
> respondIncoming connection from /127.0.0.1
>         at 
> org.apache.http.impl.io.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:131)
>         at 
> org.apache.http.impl.io.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:53)
>         at 
> org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
>         at 
> org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
>         at 
> org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
>         at 
> org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
>         at 
> ElementalReverseProxy$ProxyHandler.handle(ElementalReverseProxy.java:134)
>         at 
> org.apache.http.protocol.HttpService.doService(HttpService.java:437)
>         at 
> org.apache.http.protocol.HttpService.handleRequest(HttpService.java:342)
>         at 
> ElementalReverseProxy$ProxyThread.run(ElementalReverseProxy.java:262)
> {noformat}
> I don't know whether the problem lies within {{ElementalReverseProxy}}, or 
> the way HC handles the requests/responses.
> I also wrote a simple PHP/HTML/JavaScript to reproduce the error without 
> relying on Bing, which I can provide if needed.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org

Reply via email to