[Bug]: Ignored Null Byte in Input (sdtdserver)
User story
Looking for a fix for the telnet error when issues stop/restart commands to sdtdserver
Game
7 Days to Die ver. 1.0 B313
Linux distro
Ubuntu 22.04
Command
command: restart
Further information
When issuing a restart or stop command and LinuxGSM attempts to stop an 7D2D server gracefully -- there is an error posted to console as follows:
Relevant log output
2024-07-04T10:46:57 60332.810 INF Telnet connection closed: 127.0.0.1:53664
2024-07-04T10:46:57 60332.810 INF Exited thread TelnetClient_127.0.0.1:53664
2024-07-04T10:46:57 60332.910 INF Executing command 'shutdown' by Telnet from 127.0.0.1:34982
2024-07-04T10:47:08 60343.483 INF Telnet connection from: 127.0.0.1:60676
2024-07-04T10:47:08 60343.483 INF Started thread TelnetClient_127.0.0.1:60676
2024-07-04T10:47:08 60343.494 ERR IOException in TelnetClient_127.0.0.1:34982: Unable to write data to the transport connection: The socket has been shut down.
2024-07-04T10:47:08 60343.495 EXC Unable to write data to the transport connection: The socket has been shut down. ---> The socket has been shut down
at System.Net.Sockets.Socket.Send (System.Byte[] buffer, System.Int32 offset, System.Int32 size, System.Net.Sockets.SocketFlags socketFlags) [0x00016] in <bcb2428cc11d4f819c07c640b17b2d4b>:0
at System.Net.Sockets.NetworkStream.Write (System.Byte[] buffer, System.Int32 offset, System.Int32 size) [0x00065] in <bcb2428cc11d4f819c07c640b17b2d4b>:0
Rethrow as IOException: Unable to write data to the transport connection: The socket has been shut down.
at System.Net.Sockets.NetworkStream.Write (System.Byte[] buffer, System.Int32 offset, System.Int32 size) [0x000ac] in <bcb2428cc11d4f819c07c640b17b2d4b>:0
at TelnetConnection.handleWriting () [0x0004b] in <e964412161274dc68df2fb9c0c8aaaa3>:0
at TelnetConnection.HandlerThread (ThreadManager+ThreadInfo _tInfo) [0x00022] in <e964412161274dc68df2fb9c0c8aaaa3>:0
UnityEngine.StackTraceUtility:ExtractStringFromException(Object)
Log:Exception(Exception)
TelnetConnection:HandlerThread(ThreadInfo)
ThreadManager:myThreadInvoke(Object)
System.Threading.QueueUserWorkItemCallback:System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
System.Threading.ThreadPoolWorkQueue:Dispatch()
System.Threading._ThreadPoolWaitCallback:PerformWaitCallback()
Steps to reproduce
Run './sdtdserver restart' or './sdtdserver stop' and get multiple repeating errors shown in log entries and initial description.
Getting the same error via CONSOLE:
linuxgsm@19d5c9c9dadc:/app$ ./*server restart
[ .... ] Stopping sdtdserver: Graceful: telnet: 127.0.0.1:8084/app/lgsm/modules/command_stop.sh: line 130: warning: command substitution: ignored null byte in input
[ OK ] Stopping sdtdserver: Graceful: telnet: 127.0.0.1:8084 : OK
[ OK ] Stopping sdtdserver: Double-D's 7D2D Server
[ OK ] Starting sdtdserver: Double-D's 7D2D Server
linuxgsm@19d5c9c9dadc:/app$
Script log:
Jul 30 10:28:32.949 sdtdserver: STOP: PASS: Using cached IP as public IP address
Jul 30 10:28:33.622 sdtdserver: STOP: PASS: Using cached IP as public IP address
Jul 30 10:28:34.223 sdtdserver: STOP: INFO: Graceful: telnet
Jul 30 10:28:34.730 sdtdserver: STOP: INFO: Graceful: telnet: 127.0.0.1:8084
Jul 30 10:28:37.280 sdtdserver: STOP: PASS: Graceful: telnet: 127.0.0.1:8084 : 1 seconds
Jul 30 10:28:37.797 sdtdserver: STOP: INFO: tmux kill-session: sdtdserver: Double-D's 7D2D Server
Jul 30 10:28:38.920 sdtdserver: STOP: PASS: Stopped Double-D's 7D2D Server
Jul 30 10:28:40.551 sdtdserver: START: PASS: Checking ubuntu-22.04.csv
Jul 30 10:28:40.955 sdtdserver: START: PASS: Using cached IP as public IP address
Jul 30 10:28:41.034 sdtdserver: START: INFO: Using anonymous Steam login
Jul 30 10:28:41.417 sdtdserver: START: PASS: Using cached IP as public IP address
Jul 30 10:28:42.007 sdtdserver: START: INFO: Rotating log files
With 7D2D v2.x out, I've been doing a lot more rebooting/testing. Same error, different line noted:
`linuxgsm@ca5e2367bf94:/app$ ./*server u [ OK ] Updating sdtdserver: Checking for update: SteamCMD
Update available
- Local build: 18885326
- Remote build: 18943027
- Branch: latest_experimental https://steamdb.info/app/294420/history
[ WARN ] Updating sdtdserver: sdtdserver will be restarted [ .... ] Stopping sdtdserver: Graceful: telnet: 127.0.0.1:8084/app/lgsm/modules/command_stop.sh: line 112: warning: command substitution: ignored null byte in input [ ERROR ] Stopping sdtdserver: Graceful: telnet: 127.0.0.1:8084 : ... FAIL [ .... ] Stopping sdtdserver: Graceful: telnet: 0.0.0.0:8084/app/lgsm/modules/command_stop.sh: line 112: warning: command substitution: ignored null byte in input [ ERROR ] Stopping sdtdserver: Graceful: telnet: 0.0.0.0:8084 : ... FAIL [ ERROR ] Stopping sdtdserver: Graceful: telnet: ... FAIL
Telnet output: spawn telnet 0.0.0.0 8084 Trying 0.0.0.0... Connected to 0.0.0.0. Escape character is '^]'. Please enter password: Timeout or EOF
[ OK ] Stopping sdtdserver: Double-D's 7D2D Server [ START ] Updating sdtdserver: SteamCMD Branch: latest_experimental`