[ 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