[ https://issues.apache.org/jira/browse/KNOX-961?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vinayak Joshi updated KNOX-961: ------------------------------- Attachment: knox_http.txt knox gateway log with service connectivity errors > Knox HTTP may not honour "Connection: close" header in the client request > -------------------------------------------------------------------------- > > Key: KNOX-961 > URL: https://issues.apache.org/jira/browse/KNOX-961 > Project: Apache Knox > Issue Type: Bug > Components: Server > Affects Versions: 0.11.0 > Reporter: Vinayak Joshi > Attachments: knox_http.txt > > > Client makes a HTTP request for a service with "Connection: close" in the > HTTP header. When Knox proxies this request as is to the backend service i.e. > passing all headers through to the backend service, the backend service > honors the "Connection: close" and closes the connection from it's end. In > case the backend service does not return "Connection: close" in it's > response, Knox HTTP library assumes the connection can be kept alive > indefinitely and places it into a pool. Immediate next request for the same > resource causes Knox's HTTP library to allocate the pooled connection to it. > Since the backend service has closed the connection, this reuse fails and > Knox returns a Service connectivity error. The stale connection check by > default will not run on every connection request, so requests coming in > quickly exacerbate the problem. > In addition I have observed, in some instances the stale connection check > will also not help, and so the request fails every alternate time - the first > call is where a connection is leased and pooled (though closed already by > backend service). The second time the pooled connection is reused and the > request fails. > Per https://tools.ietf.org/html/rfc7230#section-6.3 the HTTP library should > recognise that a request with "Connection: close" can not possibly leave the > connection open so this connection should never be reused/pooled. The latest > versions of Knox uses httpcore-4.4.3. From testing and looking at the code, I > believe this issue is fixed in httpcore-4.4.6. > To fix this issue Knox should move to having httpcore-4.4.6 or higher in it's > dependencies. Will attach knox gateway logs that show this problem. The logs > are with knox-0.11 but I believe the same problem must exist in knox-0.12 as > the same HTTP libraries are used. -- This message was sent by Atlassian JIRA (v6.3.15#6346)