hoehermann / purple-signald

Pidgin libpurple bridge to signald.
GNU General Public License v3.0
151 stars 19 forks source link

Hourly disconnect #38

Closed mooomooo closed 3 years ago

mooomooo commented 3 years ago

Every hour, the connection to signald drops and resets, alternating between IOException and Unknown error. The bitlbee messages are:

09:36:47    @root | hehoe-signald - Error: Unknown error
09:36:47    @root | hehoe-signald - Signing off..
09:36:47    @root | hehoe-signald - Reconnecting in 5 seconds..
09:36:53    @root | hehoe-signald - Logging in: Logged in
10:36:48    @root | hehoe-signald - Error: java.io.IOException: Connection closed!
10:36:48    @root | hehoe-signald - Signing off..
10:36:48    @root | hehoe-signald - Reconnecting in 5 seconds..
10:36:54    @root | hehoe-signald - Logging in: Logged in

etc.

The signald logs give a bit more detail:

 17:36:47.671 [socketlistener] INFO  io.finn.signald.MessageReceiver - Last client for **********65 unsubscribed, shutting down message pipe!
 17:36:47.672 [socketlistener] ERROR io.finn.signald.SocketHandler - Catching
 java.net.SocketException: Not open
        at org.newsclub.net.unix.AFUNIXSocketImpl.validFdOrException(AFUNIXSocketImpl.java:424) ~[junixsocket-common-2.3.2.jar:?]
        at org.newsclub.net.unix.AFUNIXSocketImpl.access$200(AFUNIXSocketImpl.java:46) ~[junixsocket-common-2.3.2.jar:?]
        at org.newsclub.net.unix.AFUNIXSocketImpl$AFUNIXInputStream.read(AFUNIXSocketImpl.java:318) ~[junixsocket-common-2.3.2.jar:?]
        at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) ~[?:?]
        at sun.nio.cs.StreamDecoder.implRead(Unknown Source) ~[?:?]
        at sun.nio.cs.StreamDecoder.read(Unknown Source) ~[?:?]
        at java.io.InputStreamReader.read(Unknown Source) ~[?:?]
        at java.io.BufferedReader.fill(Unknown Source) ~[?:?]
        at java.io.BufferedReader.readLine(Unknown Source) ~[?:?]
        at java.io.BufferedReader.readLine(Unknown Source) ~[?:?]
        at io.finn.signald.SocketHandler.run(SocketHandler.java:98) [signald.jar:unspecified]
        at java.lang.Thread.run(Unknown Source) [?:?]
 17:36:52.673 [socketlistener] INFO  io.finn.signald.SocketHandler - Client connected
 18:36:48.120 [**********65-receiver] ERROR io.finn.signald.MessageReceiver - Catching
 java.io.IOException: Connection closed!
        at org.whispersystems.signalservice.internal.websocket.WebSocketConnection.readRequest(WebSocketConnection.java:189) ~[signal-service-java-x86_64-unknown-linux-gnu-2.15.3_unofficial_17.jar:?]
        at org.whispersystems.signalservice.api.SignalServiceMessagePipe.readOrEmpty(SignalServiceMessagePipe.java:148) ~[signal-service-java-x86_64-unknown-linux-gnu-2.15.3_unofficial_17.jar:?]
        at org.whispersystems.signalservice.api.SignalServiceMessagePipe.read(SignalServiceMessagePipe.java:122) ~[signal-service-java-x86_64-unknown-linux-gnu-2.15.3_unofficial_17.jar:?]
        at io.finn.signald.Manager.receiveMessages(Manager.java:1090) ~[signald.jar:unspecified]
        at io.finn.signald.MessageReceiver.run(MessageReceiver.java:68) [signald.jar:unspecified]
        at java.lang.Thread.run(Unknown Source) [?:?]
 18:36:48.120 [socketlistener] INFO  io.finn.signald.MessageReceiver - Last client for **********65 unsubscribed, shutting down message pipe!
 18:36:48.121 [socketlistener] ERROR io.finn.signald.SocketHandler - Catching
 java.net.SocketException: Not open
        at org.newsclub.net.unix.AFUNIXSocketImpl.validFdOrException(AFUNIXSocketImpl.java:424) ~[junixsocket-common-2.3.2.jar:?]
        at org.newsclub.net.unix.AFUNIXSocketImpl.access$200(AFUNIXSocketImpl.java:46) ~[junixsocket-common-2.3.2.jar:?]
        at org.newsclub.net.unix.AFUNIXSocketImpl$AFUNIXInputStream.read(AFUNIXSocketImpl.java:318) ~[junixsocket-common-2.3.2.jar:?]
        at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) ~[?:?]
        at sun.nio.cs.StreamDecoder.implRead(Unknown Source) ~[?:?]
        at sun.nio.cs.StreamDecoder.read(Unknown Source) ~[?:?]
        at java.io.InputStreamReader.read(Unknown Source) ~[?:?]
        at java.io.BufferedReader.fill(Unknown Source) ~[?:?]
        at java.io.BufferedReader.readLine(Unknown Source) ~[?:?]
        at java.io.BufferedReader.readLine(Unknown Source) ~[?:?]
        at io.finn.signald.SocketHandler.run(SocketHandler.java:98) [signald.jar:unspecified]
        at java.lang.Thread.run(Unknown Source) [?:?]
 18:36:53.122 [socketlistener] INFO  io.finn.signald.SocketHandler - Client connected

The signald logs make me think that the problem arises in the client, though it could be something in signald (I've copied this issue over to that repository as well: https://gitlab.com/signald/signald/-/issues/124). Or maybe it's a docker issue? They're running in separate containers communicating through a shared docker volume with the socket.

mooomooo commented 3 years ago

Looks like it's a me / signald problem, closing here.