Myopenhab.org connection leak error - a problem?

  • Platform information:
    • Hardware: Pi4
    • OS: Raspbian Linux 10
    • Java Runtime Environment: OpenJDK Runtime Environment (build 11.0.7+10-post-Raspbian-3deb10u1)
    • openHAB version: 2.5.4-1
  • Issue of the topic: myopenhab.org connection leak error

In the last few days my Openhab server has been become erratically unresponsive after having been 100% stable for months.

I’m getting the following warning and error relating to connections to myopenhab.org appearing in my log file 5+ times per day. It looks like it has been happening for a while (I have couple of weeks of logs) and I think longer than the unresponsiveness has been occurring.

My Question: Are these a problem or just the natural connecting/disconnecting to myopenhab.org and if a problem - what would be my next steps for root cause analysis?
Thanks

2020-08-03 02:33:31.396 [INFO ] [io.openhabcloud.internal.CloudClient] - Disconnected from the openHAB Cloud service (UUID = 8e987094-132a-4c4f-9f24-0cf0f7b182ff, base URL = http://localhost:8080)
2020-08-03 02:33:34.473 [INFO ] [control.internal.WebSocketConnection] - Web Socket close 1006. Reason: Disconnected
2020-08-03 02:33:43.880 [INFO ] [io.openhabcloud.internal.CloudClient] - Connected to the openHAB Cloud service (UUID = 8e987094-132a-4c4f-9f24-0cf0f7b182ff, base URL = http://localhost:8080)
2020-08-03 02:33:53.899 [ERROR] [io.openhabcloud.internal.CloudClient] - Error connecting to the openHAB Cloud instance: {}
io.socket.engineio.client.EngineIOException: xhr poll error
        at io.socket.engineio.client.Transport.onError(Transport.java:63) [bundleFile:?]
        at io.socket.engineio.client.transports.PollingXHR.access$100(PollingXHR.java:26) [bundleFile:?]
        at io.socket.engineio.client.transports.PollingXHR$6$1.run(PollingXHR.java:140) [bundleFile:?]
        at io.socket.thread.EventThread$2.run(EventThread.java:80) [bundleFile:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.net.SocketTimeoutException: timeout
        at okio.Okio$4.newTimeoutException(Okio.java:230) ~[?:?]
        at okio.AsyncTimeout.exit(AsyncTimeout.java:285) ~[?:?]
        at okio.AsyncTimeout$2.read(AsyncTimeout.java:241) ~[?:?]
        at okio.RealBufferedSource.indexOf(RealBufferedSource.java:345) ~[?:?]
        at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:217) ~[?:?]
        at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:211) ~[?:?]
        at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189) ~[?:?]
        at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:75) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) ~[?:?]
        at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) ~[?:?]
        at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) ~[?:?]
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185) ~[?:?]
        at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135) ~[?:?]
        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) ~[?:?]
        ... 3 more
Caused by: javax.net.ssl.SSLException: Socket closed
        at sun.security.ssl.Alert.createSSLException(Alert.java:127) ~[?:?]
        at sun.security.ssl.TransportContext.fatal(TransportContext.java:326) ~[?:?]
        at sun.security.ssl.TransportContext.fatal(TransportContext.java:269) ~[?:?]
        at sun.security.ssl.TransportContext.fatal(TransportContext.java:264) ~[?:?]
        at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1306) ~[?:?]
        at sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:832) ~[?:?]
        at okio.Okio$2.read(Okio.java:139) ~[?:?]
        at okio.AsyncTimeout$2.read(AsyncTimeout.java:237) ~[?:?]
        at okio.RealBufferedSource.indexOf(RealBufferedSource.java:345) ~[?:?]
        at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:217) ~[?:?]
        at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:211) ~[?:?]
        at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189) ~[?:?]
        at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:75) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) ~[?:?]
        at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) ~[?:?]
        at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) ~[?:?]
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185) ~[?:?]
        at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135) ~[?:?]
        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) ~[?:?]
        ... 3 more
Caused by: java.net.SocketException: Socket closed
        at java.net.SocketInputStream.read(SocketInputStream.java:183) ~[?:?]
        at java.net.SocketInputStream.read(SocketInputStream.java:140) ~[?:?]
        at sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:448) ~[?:?]
        at sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:68) ~[?:?]
        at sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1096) ~[?:?]
        at sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:816) ~[?:?]
        at okio.Okio$2.read(Okio.java:139) ~[?:?]
        at okio.AsyncTimeout$2.read(AsyncTimeout.java:237) ~[?:?]
        at okio.RealBufferedSource.indexOf(RealBufferedSource.java:345) ~[?:?]
        at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:217) ~[?:?]
        at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:211) ~[?:?]
        at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189) ~[?:?]
        at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:75) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) ~[?:?]
        at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) ~[?:?]
        at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[?:?]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) ~[?:?]
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185) ~[?:?]
        at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135) ~[?:?]
        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) ~[?:?]
        ... 3 more
2020-08-03 02:33:53.983 [INFO ] [io.openhabcloud.internal.CloudClient] - Disconnected from the openHAB Cloud service (UUID = 8e987094-132a-4c4f-9f24-0cf0f7b182ff, base URL = http://localhost:8080)
2020-08-03 02:33:54.176 [WARN ] [okhttp3.OkHttpClient                ] - A connection to https://myopenhab.org/ was leaked. Did you forget to close a response body? To see where this was allocated, set the OkHttpClient logger level to FINE: Logger.getLogger(OkHttpClient.class.getName()).setLevel(Level.FINE);
2020-08-03 02:33:55.412 [INFO ] [io.openhabcloud.internal.CloudClient] - Connected to the openHAB Cloud service (UUID = 8e987094-132a-4c4f-9f24-0cf0f7b182ff, base URL = http://localhost:8080)
1 Like

I saw the same messages here running openhabian + openHAB 2.5.7.

2020-08-02 16:33:38.838 [ERROR] [io.openhabcloud.internal.CloudClient] - Error connecting to the openHAB Cloud instance: {}
io.socket.engineio.client.EngineIOException: websocket error
        at io.socket.engineio.client.Transport.onError(Transport.java:63) [bundleFile:?]
        at io.socket.engineio.client.transports.WebSocket.access$400(WebSocket.java:24) [bundleFile:?]
        at io.socket.engineio.client.transports.WebSocket$1$5.run(WebSocket.java:107) [bundleFile:?]
        at io.socket.thread.EventThread$2.run(EventThread.java:80) [bundleFile:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_262]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_262]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_262]
Caused by: java.io.EOFException
        at okio.RealBufferedSource.require(RealBufferedSource.java:60) ~[?:?]
        at okio.RealBufferedSource.readByte(RealBufferedSource.java:73) ~[?:?]
        at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.java:113) ~[?:?]
        at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:97) ~[?:?]
        at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:262) ~[?:?]
        at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:201) ~[?:?]
        at okhttp3.RealCall$AsyncCall.execute(RealCall.java:141) ~[?:?]
        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) ~[?:?]
        ... 3 more
2020-08-02 16:33:38.891 [INFO ] [io.openhabcloud.internal.CloudClient] - Disconnected from the openHAB Cloud service (UUID = 09a9eaab-ad43-41ed-b744-83265d31bb24, base URL = http://localhost:8080)

Please always use the forum search first, this is a very old issue:

Sihui,
Thank you for your response. I did see that entry but it appeared to be related to insufficient server capacity back in 2019 and so I assumed that had been long since addressed.

Is getting 5+ of these a day “normal” and is it a possible cause of the erratic unresponsiveness im getting (on BasicUI)?

The insufficient server capacity was somewhat mitigated by disallowing Items to be added. It is likely still close to its resource limits.