blob: 23a5aab7024e3e36d9f522e3a3ef511e2901b878 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
|
Left 4 Dead 2 Dedicated Server: Segmentation fault with Sourcemod installed
**What Game**
Left 4 Dead 2 Dedicated Server, freely available
**Describe the bug**
Left 4 Dead 2 Dedicated Server segfaults if Sourcemod is installed. I noticed this issue [https://github.com/FEX-Emu/FEX/issues/4238](https://github.com/FEX-Emu/FEX/issues/4238) and ostensibly my setup is the same hardware just with a newer FEX/Ubuntu version. `-noassert` does not help in my case (still segfaults). Also really new to FEX!
The game server works fine without Sourcemod installed. Metamod is required to activate Sourcemod, but Metamod works fine without Sourcemod installed. Workshop mods work fine too. The L4D2 server with Metamod/Sourcemod does not segfault on a x64 machine with the needed x86 stuff added.
**To Reproduce**
Steps to reproduce the behavior:
```
sudo useradd -m -u 6900 l4d2
yes '1' | sudo su - l4d2 bash -c "FEXRootFSFetcher"
sudo su l4d2 -c "wget -O /home/l4d2/steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz"
sudo su l4d2 -c "mkdir -p /home/l4d2/steamcmd"
sudo su l4d2 -c "tar -xzf /home/l4d2/steamcmd.tar.gz -C /home/l4d2/steamcmd"
sudo rm "/home/l4d2/steamcmd.tar.gz"
sudo su l4d2 -c "/home/l4d2/steamcmd/steamcmd.sh +force_install_dir /home/l4d2/l4d2_server +@sSteamCmdForcePlatformType windows +login anonymous +app_update 222860"
```
when it has installed the Windows version, in another terminal type `sudo rm -r /home/l4d2/l4d2_server/*` and then back in the `Steam >` terminal type `@sSteamCmdForcePlatformType linux` then `app_update 222860 validate` then `quit`. This switcheroo is required because Valve blocked anonymous installation of the Linux version of L4D2 idk why but it works if you install the windows version, wipe it, then linux on top (you may not need to wipe it)
```
# fixes possibly spurious error
sudo su l4d2 -c "mkdir -p /home/l4d2/.steam/sdk32/"
sudo su l4d2 -c "ln -s '/home/l4d2/steamcmd/linux32/steamclient.so' '/home/l4d2/.steam/sdk32/steamclient.so'"
link2paste='https://mms.alliedmods.net/mmsdrop/1.12/mmsource-1.12.0-git1217-linux.tar.gz'
file2get=$(basename "$link2paste")
dir2get=$(basename $file2get .tar.gz)
sudo su l4d2 -c "wget -O /tmp/$file2get \"$link2paste\""
sudo su l4d2 -c "mkdir -p /tmp/$dir2get"
sudo su l4d2 -c "tar -xzf /tmp/$file2get -C /tmp/$dir2get"
sudo su l4d2 -c "cp -a /tmp/$dir2get/. /home/l4d2/l4d2_server/left4dead2/"
sudo rm "/tmp/$file2get"
sudo rm -r "/tmp/$dir2get"
link2paste='https://sm.alliedmods.net/smdrop/1.12/sourcemod-1.12.0-git7195-linux.tar.gz'
file2get=$(basename "$link2paste")
dir2get=$(basename $file2get .tar.gz)
sudo su l4d2 -c "wget -O /tmp/$file2get \"$link2paste\""
sudo su l4d2 -c "mkdir -p /tmp/$dir2get"
sudo su l4d2 -c "tar -xzf /tmp/$file2get -C /tmp/$dir2get"
sudo su l4d2 -c "cp -a /tmp/$dir2get/. /home/l4d2/l4d2_server/left4dead2/"
sudo rm "/tmp/$file2get"
sudo rm -r "/tmp/$dir2get"
sudo sh -c "cat <<EOF > /etc/systemd/system/l4d2.service
[Unit]
Description=L4D2 Dedicated Server
Wants=network-online.target
After=network-online.target
[Service]
Environment=SteamAppId=222860
Environment=LD_LIBRARY_PATH=/home/l4d2/l4d2_server/linux64:$LD_LIBRARY_PATH
Type=simple
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
User=l4d2
Group=l4d2
WorkingDirectory=/home/l4d2/l4d2_server
ExecStart=/home/l4d2/l4d2_server/srcds_run -console -game left4dead2 -port 27015 +exec server.cfg +map c14m1_junkyard -insecure -debug
[Install]
WantedBy=multi-user.target
EOF"
sudo systemctl daemon-reload
sudo systemctl start l4d2.service
sudo journalctl -u l4d2 -f
```
**Logs**
Journal log:
```
Mar 25 19:53:17 gamezserver systemd[1]: Started l4d2.service - L4D2 Dedicated Server.
Mar 25 19:53:17 gamezserver srcds_run[3454945]: Enabling debug mode
Mar 25 19:53:18 gamezserver srcds_run[3454945]: Server will auto-restart if there is a crash.
Mar 25 19:53:18 gamezserver srcds_run[3454956]: Setting breakpad minidump AppID = 222860
Mar 25 19:53:18 gamezserver srcds_run[3454956]: Using breakpad crash handler
Mar 25 19:53:18 gamezserver srcds_run[3454956]: Forcing breakpad minidump interfaces to load
Mar 25 19:53:18 gamezserver srcds_run[3454956]: Looking up breakpad interfaces from steamclient
Mar 25 19:53:18 gamezserver srcds_run[3454956]: Calling BreakpadMiniDumpSystemInit
Mar 25 19:53:19 gamezserver srcds_run[3454956]: [S_API] SteamAPI_Init(): SteamAPI_IsSteamRunning() did not locate a running instance of Steam.
Mar 25 19:53:19 gamezserver srcds_run[3454956]: [S_API] SteamAPI_Init(): Loaded '/home/l4d2/.steam/sdk32/steamclient.so' OK.
Mar 25 19:53:19 gamezserver srcds_run[3454956]: #Using shader api: bin/shaderapiempty_srv.so
Mar 25 19:53:19 gamezserver srcds_run[3454956]: #
Mar 25 19:53:19 gamezserver srcds_run[3454956]: #Console initialized.
Mar 25 19:53:19 gamezserver srcds_run[3454956]: #Using breakpad minidump system
Mar 25 19:53:19 gamezserver srcds_run[3454956]: #Game_srv.so loaded for "Left 4 Dead 2"
Mar 25 19:53:19 gamezserver srcds_run[3454956]: Server is hibernating
Mar 25 19:53:19 gamezserver srcds_run[3454956]: ConVarRef test_progression_loop doesn't point to an existing ConVar
Mar 25 19:53:21 gamezserver srcds_run[3454956]: [S_API FAIL] SteamAPI_Init() failed; create pipe failed.Looking up breakpad interfaces from steamclient
Mar 25 19:53:21 gamezserver srcds_run[3454956]: Calling BreakpadMiniDumpSystemInit
Mar 25 19:53:22 gamezserver srcds_run[3454945]: Segmentation fault (core dumped)
Mar 25 19:53:22 gamezserver srcds_run[3455040]: BFD: warning: /home/l4d2/l4d2_server/core has a segment extending past end of file
Mar 25 19:53:22 gamezserver srcds_run[3455040]: warning: core file may not match specified executable file.
Mar 25 19:53:22 gamezserver srcds_run[3455040]: Failed to read a valid object file image from memory.
Mar 25 19:53:22 gamezserver srcds_run[3455040]: debug.cmds:5: Error in sourced command file:
Mar 25 19:53:22 gamezserver srcds_run[3455040]: No function contains program counter for selected frame.
Mar 25 19:53:22 gamezserver srcds_run[3454945]: email debug.log to linux@valvesoftware.com
Mar 25 19:53:22 gamezserver srcds_run[3454945]: Tue Mar 25 19:53:22 EDT 2025: Server restart in 10 seconds
```
debug.log:
```
CRASH: Tue Mar 25 19:53:22 EDT 2025
Start Line: ./srcds_linux -console -game left4dead2 -port 27015 +exec server.cfg +map c14m1_junkyard -insecure -debug
[New LWP 3454956]
[New LWP 3455015]
[New LWP 3455017]
Core was generated by `/usr/bin/FEXInterpreter ./srcds_linux ./srcds_linux -console -game left4dead2 -'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x000000037b3d9ea0 in ?? ()
[Current thread is 1 (LWP 3454956)]
#0 0x000000037b3d9ea0 in ?? ()
#1 0x00000003612e31fc in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
No symbol table info available.
x0 0x3cc90ab0 1019808432
x1 0x0 0
x2 0x78 120
x3 0x648557df 1686460383
x4 0x0 0
x5 0x27f 639
x6 0x1 1
x7 0x0 0
x8 0xff5f5bd0 4284439504
x9 0xff5f5c08 4284439560
x10 0x1 1
x11 0x1 1
x12 0xf08b5ed32788 264481382016904
x13 0x36df52088 14729683080
x14 0xffff 65535
x15 0xffff 65535
x16 0x1 1
x17 0xf08b5e81c080 264481376682112
x18 0x0 0
x19 0x25 37
x20 0x4 4
x21 0xffffffffecbf5dc0 -323002944
x22 0x7 7
x23 0x1 1
x24 0x3fff 16383
x25 0x8000000000000000 -9223372036854775808
x26 0xff5f5bc4 4284439492
x27 0xa0a48f 10527887
x28 0xf08b5dac70a0 264481362702496
x29 0x2e 46
x30 0x3612e31fc 14515319292
sp 0xffffc7662d30 0xffffc7662d30
pc 0x37b3d9ea0 0x37b3d9ea0
cpsr 0xa0001000 [ EL=0 BTYPE=0 SSBS C N ]
fpsr 0x13 [ IOC DZC IXC ]
fpcr 0x1000000 [ Len=0 Stride=0 RMode=0 FZ ]
tpidr 0xf08b5ed32760 0xf08b5ed32760
tpidr2 0x0 0x0
No shared libraries loaded at this time.
End of Source crash report
```
**System information:**
- OS: Ubuntu 24.04
- CPU/SoC: Server Neoverse-N1 aarch64
- RootFS used: Ubuntu 24.04 Official Rootfs
- FEX version: FEX-2503 installed with the ppa (FEXGetConfig --version)
- Thunks Enabled: No, unless the ppa ships with a thunk
**Additional context**
- Is this an x86 or x86-64 game: x86
- This is a game server
|