I'm using http client 4.5.13 and core 4.4.14 to tail logs over an http
stream.  The stream receives new data every 5-10 seconds.  The connection
dies after about a minute with the following exception in my logs:

javax.net.ssl.SSLException: Socket closed
        at sun.security.ssl.Alert.createSSLException(Alert.java:127)
~[?:1.8.0_282]
        at
sun.security.ssl.TransportContext.fatal(TransportContext.java:324)
~[?:1.8.0_282]
        at
sun.security.ssl.TransportContext.fatal(TransportContext.java:267)
~[?:1.8.0_282]
        at
sun.security.ssl.TransportContext.fatal(TransportContext.java:262)
~[?:1.8.0_282]
        at
sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1303)
~[?:1.8.0_282]
        at sun.security.ssl.SSLSocketImpl.access$300(SSLSocketImpl.java:72)
~[?:1.8.0_282]
        at
sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:831)
~[?:1.8.0_282]
        at
org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
~[httpcore-4.4.13.jar:4.4.13]
        at
org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
~[httpcore-4.4.13.jar:4.4.13]
        at
org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
~[httpcore-4.4.13.jar:4.4.13]
        at
org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:261)
~[httpcore-4.4.13.jar:4.4.13]
        at
org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:222)
~[httpcore-4.4.13.jar:4.4.13]
        at
org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:183)
~[httpcore-4.4.13.jar:4.4.13]
        at
org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:135)
~[httpclient-4.5.12.jar:4.5.12]
        at
org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:148)
~[httpclient-4.5.12.jar:4.5.12]
        at com.tremolosecurity.proxy.ConfigSys.procData(ConfigSys.java:463)
~[unison-server-core-1.0.21.jar:?]
        .
        .
        .
Caused by: java.net.SocketException: Socket closed
        at java.net.SocketInputStream.socketRead0(Native Method)
~[?:1.8.0_282]
        at
java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
~[?:1.8.0_282]
        at java.net.SocketInputStream.read(SocketInputStream.java:171)
~[?:1.8.0_282]
        at java.net.SocketInputStream.read(SocketInputStream.java:141)
~[?:1.8.0_282]
        at
sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:457)
~[?:1.8.0_282]
        at
sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:68)
~[?:1.8.0_282]
        at
sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1095)
~[?:1.8.0_282]
        at sun.security.ssl.SSLSocketImpl.access$200(SSLSocketImpl.java:72)
~[?:1.8.0_282]
        at
sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:815)
~[?:1.8.0_282]
        ... 45 more

It consistently happens at around a minute.  I verified the issue isn't on
the server side by running a curl command with the same headers without any
timeout issues.  After enabling debug logging I'm noticing that connections
are being shutdown from under the code reading the stream:

[2021-02-22 19:45:26,681][Thread-20] DEBUG
PoolingHttpClientConnectionManager - Connection manager is shutting down
[2021-02-22 19:45:26,681][Thread-20] DEBUG
DefaultManagedHttpClientConnection - http-outgoing-233: Shutdown connection

I don't have any code that is explicitly shutting down the connection or
the pool.  Nor do I have code that aborts the connection.  Is there a watch
dog process that is shutting down connections?  Any ideas as to where to
look to figure out what is calling the shutdown other than loading the code
into a debugger and setting break
points in PoolingHttpClientConnectionManager?

Thanks
Marc

Reply via email to