You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Dmitry Murashenkov (Jira)" <ji...@apache.org> on 2019/10/27 17:37:00 UTC

[jira] [Created] (CXF-8138) Spurious stream closed error if http keep alive enabled

Dmitry Murashenkov created CXF-8138:
---------------------------------------

             Summary: Spurious stream closed error if http keep alive enabled
                 Key: CXF-8138
                 URL: https://issues.apache.org/jira/browse/CXF-8138
             Project: CXF
          Issue Type: Bug
    Affects Versions: 3.3.3
            Reporter: Dmitry Murashenkov


I have a very complex load test with CXF, which sometimes results in several CXF requests failing:

Caused by: java.io.IOException: Stream closed.
 at java.net.AbstractPlainSocketImpl.available(AbstractPlainSocketImpl.java:470)
 at java.net.SocketInputStream.available(SocketInputStream.java:259)
 at java.io.BufferedInputStream.available(BufferedInputStream.java:410)
 at sun.net.www.MeteredStream.available(MeteredStream.java:170)
 at java.io.FilterInputStream.available(FilterInputStream.java:168)
 at org.apache.cxf.jaxrs.client.ClientProxyImpl.handleResponse(ClientProxyImpl.java:886)
 at org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:786)
 at org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:238)
 ... 52 common frames omitted

Setting -Dhttp.keepAlive=false fixes this problem. Not sure if the bug is in CXF or JDK.

When looking at tcpdump - the traffic is ok: both request and 201 response can be seen in dump, but seems response is not getting processed and exception is raised.

In all exception cases - this was not the first request in this connection, but on the other hand there are tons of other connections with several requests in them without any problems.

Exception is usually raised only after JVM was just started, sometimes only single request fails, but sometimes a bunch of 2-3 fail simultaneously and then everything works fine. This doesn't happen after every restart, but does happen from time to time.

I have a more or less table reproduce to test properties if there are any, but can't provide the complete test case as it is too complex.

Environment:

Host: Ubuntu 18.04.3 LTS (Bionic Beaver)
Both client and server are in separate Docker containers on the same host
Docker version 19.03.4, build 9013bf583a
Oracle JDK 8 b231 (same with 8 b151)
CXF 3.3.3 (same with 3.2.6)

I create a new JAXRSClientFactory.create() proxy for each call, do a single call and forget about the proxy till. All calls are to a single host, but different urls, so problem is not specific to some http url.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)