-
-
Notifications
You must be signed in to change notification settings - Fork 183
Open
Description
Both client and server are running macOS 15.5. Client is using iterm2 (Build 3.5.13).
If I close the laptop lid on the client side, it fails to reconnect upon re-opening. (OK, in the example below, it reconnected the first time, then failed the second time.)
Client log (/tmp/etclient-2025-05-21_21-33-10.log):
[INFO 2025-05-21 21:33:10,520 client-main TcpSocketHandler.cpp:96] Connected to server: xxx.xxx.xxx.edu using fd 8
[INFO 2025-05-21 21:33:16,969 client-main SshSetupHandler.cpp:104] etserver started
[INFO 2025-05-21 21:33:17,005 client-main TcpSocketHandler.cpp:96] Connected to server: xxx.xxx.xxx.edu using fd 11
[INFO 2025-05-21 21:33:17,066 client-main TerminalClient.cpp:158] Got command: tmux -CC a -t main || tmux -CC new -A -s main
[INFO 2025-05-21 21:33:17,079 client-main TerminalClient.cpp:329] Window size changed: row: 22 column: 165 width: 2310 height: 748
[INFO 2025-05-21 21:33:25,005 client-main TerminalClient.cpp:315] Writing keepalive packet
[INFO 2025-05-21 21:33:30,336 client-main TerminalClient.cpp:300] Got a keepalive
[INFO 2025-05-21 21:33:36,002 client-main TerminalClient.cpp:315] Writing keepalive packet
[INFO 2025-05-21 21:33:36,034 client-main TerminalClient.cpp:300] Got a keepalive
[INFO 2025-05-21 21:33:49,011 client-main TerminalClient.cpp:315] Writing keepalive packet
[INFO 2025-05-21 21:33:49,038 client-main TerminalClient.cpp:300] Got a keepalive
[INFO 2025-05-21 21:33:55,012 client-main TerminalClient.cpp:315] Writing keepalive packet
[INFO 2025-05-21 21:34:01,011 client-main TerminalClient.cpp:311] Missed a keepalive, killing connection.
[INFO 2025-05-21 21:34:01,013 client-main ClientConnection.cpp:74] Closing socket
[INFO 2025-05-21 21:34:01,066 client-main ClientConnection.cpp:77] Socket closed, starting new reconnect thread
[INFO 2025-05-21 21:34:01,066 Reconnect ClientConnection.cpp:93] Trying to reconnect to xxx.xxx.xxx.edu:2022
[INFO 2025-05-21 21:34:10,123 Reconnect ClientConnection.cpp:101] In reconnect loop xxx.xxx.xxx.edu:2022
[INFO 2025-05-21 21:34:11,635 Reconnect TcpSocketHandler.cpp:96] Connected to server: xxx.xxx.xxx.edu using fd 11
[INFO 2025-05-21 21:34:11,779 Reconnect ClientConnection.cpp:111] Got response with status: 2 3
[INFO 2025-05-21 21:34:11,779 Reconnect Connection.cpp:97] Locking reader/writer to recover...
[INFO 2025-05-21 21:34:11,779 Reconnect Connection.cpp:101] Recovering with socket fd 11...
[INFO 2025-05-21 21:34:11,814 Reconnect Connection.cpp:134] Finished recovering with socket fd: 11
[INFO 2025-05-21 21:34:11,814 Reconnect ClientConnection.cpp:155] Reconnect complete
[INFO 2025-05-21 21:34:11,814 client-main Connection.cpp:159] Closing socket because 32 Broken pipe
[INFO 2025-05-21 21:34:11,815 client-main ClientConnection.cpp:85] Waiting for reconnect thread to finish
[INFO 2025-05-21 21:34:11,815 client-main ClientConnection.cpp:74] Closing socket
[INFO 2025-05-21 21:34:11,866 client-main ClientConnection.cpp:77] Socket closed, starting new reconnect thread
[INFO 2025-05-21 21:34:11,867 Reconnect ClientConnection.cpp:93] Trying to reconnect to xxx.xxx.xxx.edu:2022
[INFO 2025-05-21 21:34:12,029 Reconnect TcpSocketHandler.cpp:96] Connected to server: xxx.xxx.xxx.edu using fd 11
[INFO 2025-05-21 21:34:12,187 Reconnect ClientConnection.cpp:111] Got response with status: 3 3
[INFO 2025-05-21 21:34:12,187 Reconnect ClientConnection.cpp:114] Got invalid key on reconnect, assume that server has terminated the session.
[INFO 2025-05-21 21:34:12,239 client-main Connection.cpp:145] Shutting down connection
[INFO 2025-05-21 21:34:12,239 client-main Connection.cpp:78] Tried to close a dead socket
[INFO 2025-05-21 21:34:12,239 client-main Connection.cpp:78] Tried to close a dead socket
Server log (/tmp/etserver-2025-05-15_00-54-01_874.log):
[INFO 2025-05-15 00:54:01,015 etserver-main TerminalServerMain.cpp:192] In child, about to start server.
[INFO 2025-05-15 00:54:01,016 etserver-main TcpSocketHandler.cpp:224] Listening on 0.0.0.0:2022/30/1/6
[INFO 2025-05-15 00:54:01,016 etserver-main TcpSocketHandler.cpp:224] Listening on 0.0.0.0:2022/2/1/6
[INFO 2025-05-15 00:54:01,017 etserver-main TerminalServer.cpp:23] Creating server
[WARNING 2025-05-21 21:33:10,576 server-clientHandler ServerConnection.cpp:127] Error handling new client: Failed a call to readAll
[INFO 2025-05-21 21:33:16,989 etserver-main UserTerminalRouter.cpp:20] Listening to id/key FIFO
[INFO 2025-05-21 21:33:16,989 etserver-main UserTerminalRouter.cpp:30] Connected
[INFO 2025-05-21 21:33:17,059 server-clientHandler ServerConnection.cpp:76] Got client with id: CE0J1lJbkSqO3ja7
[INFO 2025-05-21 21:33:17,060 server-clientHandler ServerConnection.cpp:104] New client. Setting up connection
[INFO 2025-05-21 21:33:17,091 0x1700a3000 TerminalServer.cpp:411] RUNNING TERMINAL
[INFO 2025-05-21 21:33:17,134 CE0J1lJbkSqO3ja7 TerminalServer.cpp:363] Got terminal info
[INFO 2025-05-21 21:33:30,348 CE0J1lJbkSqO3ja7 TerminalServer.cpp:357] Got keep alive
[INFO 2025-05-21 21:33:36,057 CE0J1lJbkSqO3ja7 TerminalServer.cpp:357] Got keep alive
[INFO 2025-05-21 21:33:49,063 CE0J1lJbkSqO3ja7 TerminalServer.cpp:357] Got keep alive
[INFO 2025-05-21 21:34:11,707 server-clientHandler ServerConnection.cpp:76] Got client with id: CE0J1lJbkSqO3ja7
[INFO 2025-05-21 21:34:11,708 CE0J1lJbkSqO3ja7 TerminalServer.cpp:305] Terminal session ended
[INFO 2025-05-21 21:34:11,760 server-clientHandler Connection.cpp:97] Locking reader/writer to recover...
[INFO 2025-05-21 21:34:11,760 server-clientHandler Connection.cpp:101] Recovering with socket fd 15...
[INFO 2025-05-21 21:34:11,837 server-clientHandler Connection.cpp:134] Finished recovering with socket fd: 15
[INFO 2025-05-21 21:34:11,838 CE0J1lJbkSqO3ja7 Connection.cpp:145] Shutting down connection
[INFO 2025-05-21 21:34:12,085 server-clientHandler ServerConnection.cpp:76] Got client with id: CE0J1lJbkSqO3ja7
[INFO 2025-05-21 21:34:12,085 server-clientHandler ServerConnection.cpp:89] Got a client that we have no key for
I assume the problem is with the Closing socket because 32 Broken pipe
entry in the client log. But, whatever the problem is, it's highly reproducible.
Metadata
Metadata
Assignees
Labels
No labels