"SocketException: Not open" If socket is closed immedeatly after a client sent a command
First, thanks for the cool library!
I get a java.net.SocketException: Not open
, if my client unsubscribes and quits. I guess it is because I do not wait for the response. If I sent the unsubscribe command, sleep for a second and then quit, I do not get this exception. I am not really confident with how signald works, so I do not know if this might lead to other faults on the long run.
Logs with -v:
23:46:10.303 [main] DEBUG io.finn.signald.Main - Starting signald 0.11.1+git2021-01-26rc2ed40b4.72
23:46:10.477 [main] DEBUG io.finn.signald.Main - Deleting existing socket file
23:46:10.478 [main] INFO io.finn.signald.Main - Binding to socket /home/X/signald.sock
23:46:10.487 [main] DEBUG io.finn.signald.Main - Using data folder /home/X/.config/signald
23:46:10.500 [main] INFO io.finn.signald.Main - Started signald 0.11.1+git2021-01-26rc2ed40b4.72
23:46:16.907 [socketlistener] INFO io.finn.signald.SocketHandler - Client connected
23:46:16.948 [socketlistener] DEBUG io.finn.signald.SocketHandler - {"type": "subscribe", "username": "+XXX"}
23:46:16.968 [socketlistener] DEBUG io.finn.signald.SocketHandler - consider adding "version": "v0" to your request to prevent future API breakage. See https://gitlab.com/signald/signald/-/wikis/Protocol-Versioning
23:46:17.063 [socketlistener] INFO manager-************23 - Creating new manager for ************23 (stored at /home/X/.config/signald)
23:46:17.064 [socketlistener] DEBUG io.finn.signald.storage.AccountData - Loading account from disk.
23:46:17.154 [socketlistener] DEBUG io.finn.signald.storage.AccountData - Loaded account data from file.
23:46:18.449 [socketlistener] INFO manager - Created a manager for ************23
23:46:18.452 [socketlistener] DEBUG io.finn.signald.SocketHandler - {"type": "set_profile", "version": "v1", "account": "+XXX", "name": "Semaphore bot"}
23:46:18.485 [************23-receiver] DEBUG io.finn.signald.ProtocolLogger - [WebSocketConnection] connect()
23:46:19.088 [OkHttp https://textsecure-service.whispersystems.org/...] DEBUG io.finn.signald.ProtocolLogger - [WebSocketConnection] onOpen() connected
23:46:26.472 [socketlistener] DEBUG io.finn.signald.SocketHandler - {"type": "unsubscribe", "username": "+XXX"}
23:46:26.472 [socketlistener] DEBUG io.finn.signald.SocketHandler - consider adding "version": "v0" to your request to prevent future API breakage. See https://gitlab.com/signald/signald/-/wikis/Protocol-Versioning
23:46:26.473 [socketlistener] INFO io.finn.signald.MessageReceiver - Last client for ************23 unsubscribed, shutting down message pipe!
23:46:26.473 [socketlistener] DEBUG io.finn.signald.ProtocolLogger - [WebSocketConnection] disconnect()
23:46:26.473 [************23-receiver] DEBUG io.finn.signald.ProtocolLogger - [WebSocketConnection] disconnect()
23:46:26.474 [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(StreamDecoder.java:284) ~[?:1.8.0_282]
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) ~[?:1.8.0_282]
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) ~[?:1.8.0_282]
at java.io.InputStreamReader.read(InputStreamReader.java:184) ~[?:1.8.0_282]
at java.io.BufferedReader.fill(BufferedReader.java:161) ~[?:1.8.0_282]
at java.io.BufferedReader.readLine(BufferedReader.java:324) ~[?:1.8.0_282]
at java.io.BufferedReader.readLine(BufferedReader.java:389) ~[?:1.8.0_282]
at io.finn.signald.SocketHandler.run(SocketHandler.java:100) [signald.jar:unspecified]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_282]
23:46:26.482 [************23-receiver] DEBUG io.finn.signald.storage.AccountData - Saving account to disk
23:46:26.592 [OkHttp https://textsecure-service.whispersystems.org/...] DEBUG io.finn.signald.ProtocolLogger - [WebSocketConnection] onClosing()
23:46:26.592 [OkHttp https://textsecure-service.whispersystems.org/...] DEBUG io.finn.signald.ProtocolLogger - [WebSocketConnection] onClose()