SRCDS Steam group


srcds_run Illegal Instruction Crash
#1
I just installed the Linux Source server last night, on my RH9 box. The system is a dual P2-333, so it's not godlike power, but I'm hoping it will be enough for a small server. (Plus, it seems that the minimum hardware for the Source server is a 486, so it should be enough!)

However, when I go to launch it, it crashes:

[omaha@server source]# ./srcds_run -game hl2mp
Auto detecting CPU
Using default binary.
Auto-restarting the server on crash
./srcds_run: line 426: 8271 Illegal instruction (core dumped) $HL_CMD
Add "-debug" to the ./srcds_run command line to generate a debug.log to help with solving this problem
Sun May 28 12:07:21 EDT 2006: Server restart in 10 seconds
./srcds_run: line 426: 8274 Illegal instruction (core dumped) $HL_CMD
Add "-debug" to the ./srcds_run command line to generate a debug.log to help with solving this problem
Sun May 28 12:07:31 EDT 2006: Server restart in 10 seconds
Sun May 28 12:07:35 EDT 2006: Server Quit

[omaha@server source]#


I'm guessing this by itself isn't very helpful, and when I generate a debug.log, well, it's equally unproductive:

[omaha@server source]# cat debug.log
----------------------------------------------
CRASH: Sun May 28 12:14:19 EDT 2006
Start Line: ./srcds_i486 -game hl2mp -debug
End of Source crash report
----------------------------------------------


Is there anything I could do to start attacking this problem?
Reply
#2
pls rerun update, since 27th they have fixed some bugs on srcds binaries.
Linux IsiX 64 Generic Desktop ValHalla 2.6.33.4 x86_64
Intel Core 2 Duo T8400 4Gb Ram 40G SSD Intel
[Image: b_460x42_C000000-454234-696149-FFFFFF-FFF468-FFF468.png]
DoD 31 Comunity DoD 31 Spanish Comunity
Erste SS Panzer Grendier Division [DOD Clan]
Reply
#3
I am also getting an Illegal Instruction crash when i try to start it up. I have completely done a reinstall of the hlds and it wont even run fresh right off the download. The error i get is:

Auto detecting CPU
Using default binary.
Auto-restarting the server on crash
./srcds_run: line 344: 1236 Illegal instruction $HL_CMD
Add "-debug" to the ./srcds_run command line to generate a debug.log to help with solving this problem


And the debug log i get is:


----------------------------------------------
CRASH: Wed May 31 16:11:48 CDT 2006
Start Line: ./srcds_i486 -game cstrike +maxplayers 20 +map de_dust -debug
Using host libthread_db library "/lib/libthread_db.so.1".
Core was generated by `./srcds_i486 -game cstrike +maxplayers 20 +map de_dust -debug'.
Program terminated with signal 4, Illegal instruction.
#0 0x40021913 in ConVar::Create () from bin/vstdlib_i486.so
#0 0x40021913 in ConVar::Create () from bin/vstdlib_i486.so
#1 0x40021bc5 in ConVar::ConVar () from bin/vstdlib_i486.so
#2 0x4024ef13 in __static_initialization_and_destruction_0 () from bin/dedicated_i486.so
#3 0x4027d375 in __do_global_ctors_aux () from bin/dedicated_i486.so
#4 0x4022ceb5 in _init () from bin/dedicated_i486.so
#5 0x4000b6fe in call_init () from /lib/ld-linux.so.2
#6 0x4000b556 in _dl_init_internal () from /lib/ld-linux.so.2
#7 0x40140f5f in dl_open_worker () from /lib/libc.so.6
#8 0x4000b3d6 in _dl_catch_error () from /lib/ld-linux.so.2
#9 0x40140a90 in _dl_open () from /lib/libc.so.6
#10 0x40053d6d in dlopen_doit () from /lib/libdl.so.2
#11 0x4000b3d6 in _dl_catch_error () from /lib/ld-linux.so.2
#12 0x400542c1 in _dlerror_run () from /lib/libdl.so.2
#13 0x40053cf1 in dlopen@@GLIBC_2.1 () from /lib/libdl.so.2
#14 0x0804906a in main ()
No symbol table info available.
From To Syms Read Shared Object Library
0x40033350 0x4004aef0 Yes /lib/libm.so.6
0x40053bc0 0x400548f0 Yes /lib/libdl.so.2
0x4006d240 0x40149acc Yes /lib/libc.so.6
0x40000790 0x40010cd3 Yes /lib/ld-linux.so.2
0x4017f100 0x4019a6d0 Yes bin/tier0_i486.so
0x401aafb0 0x401b3ab0 Yes /lib/libpthread.so.0
0x4001e910 0x40027ff0 Yes bin/vstdlib_i486.so
0x4022cf00 0x4027d380 Yes bin/dedicated_i486.so
Stack level 0, frame at 0xbfffd270:
eip = 0x40021913
in ConVar::Create(char const*, char const*, int, char const*, bool, float, bool, float, void (*)(ConVar*, char const*)); saved eip 0x40021bc5
called by frame at 0xbfffd2a0
Arglist at 0xbfffd23c, args:
Locals at 0xbfffd23c, Previous frame's sp is 0xbfffd270
Saved registers:
ebx at 0xbfffd25c, ebp at 0xbfffd268, esi at 0xbfffd260, edi at 0xbfffd264, eip at 0xbfffd26c
End of Source crash report
----------------------------------------------
----------------------------------------------
CRASH: Wed May 31 16:28:22 CDT 2006
Start Line: ./srcds_i486 -game cstrike +maxplayers 20 +map de_dust -debug
Using host libthread_db library "/lib/libthread_db.so.1".
Core was generated by `./srcds_i486 -game cstrike +maxplayers 20 +map de_dust -debug'.
Program terminated with signal 4, Illegal instruction.
#0 0x40021913 in ConVar::Create () from bin/vstdlib_i486.so
#0 0x40021913 in ConVar::Create () from bin/vstdlib_i486.so
#1 0x40021bc5 in ConVar::ConVar () from bin/vstdlib_i486.so
#2 0x4024ef13 in __static_initialization_and_destruction_0 () from bin/dedicated_i486.so
#3 0x4027d375 in __do_global_ctors_aux () from bin/dedicated_i486.so
#4 0x4022ceb5 in _init () from bin/dedicated_i486.so
#5 0x4000b6fe in call_init () from /lib/ld-linux.so.2
#6 0x4000b556 in _dl_init_internal () from /lib/ld-linux.so.2
#7 0x40140f5f in dl_open_worker () from /lib/libc.so.6
#8 0x4000b3d6 in _dl_catch_error () from /lib/ld-linux.so.2
#9 0x40140a90 in _dl_open () from /lib/libc.so.6
#10 0x40053d6d in dlopen_doit () from /lib/libdl.so.2
#11 0x4000b3d6 in _dl_catch_error () from /lib/ld-linux.so.2
#12 0x400542c1 in _dlerror_run () from /lib/libdl.so.2
#13 0x40053cf1 in dlopen@@GLIBC_2.1 () from /lib/libdl.so.2
#14 0x0804906a in main ()
No symbol table info available.
From To Syms Read Shared Object Library
0x40033350 0x4004aef0 Yes /lib/libm.so.6
0x40053bc0 0x400548f0 Yes /lib/libdl.so.2
0x4006d240 0x40149acc Yes /lib/libc.so.6
0x40000790 0x40010cd3 Yes /lib/ld-linux.so.2
0x4017f100 0x4019a6d0 Yes bin/tier0_i486.so
0x401aafb0 0x401b3ab0 Yes /lib/libpthread.so.0
0x4001e910 0x40027ff0 Yes bin/vstdlib_i486.so
0x4022cf00 0x4027d380 Yes bin/dedicated_i486.so
Stack level 0, frame at 0xbfffd270:
eip = 0x40021913
in ConVar::Create(char const*, char const*, int, char const*, bool, float, bool, float, void (*)(ConVar*, char const*)); saved eip 0x40021bc5
called by frame at 0xbfffd2a0
Arglist at 0xbfffd23c, args:
Locals at 0xbfffd23c, Previous frame's sp is 0xbfffd270
Saved registers:
ebx at 0xbfffd25c, ebp at 0xbfffd268, esi at 0xbfffd260, edi at 0xbfffd264, eip at 0xbfffd26c
End of Source crash report
----------------------------------------------
Reply
#4
Any more news on this? I just updated today 6/15/06 becuase my server kept telling me my server needs to be restarted to complete the update. So I used the ./steam -command update -game hl2mp -dir /usr/steam/hlds2_l to manully update my server and I get the same a simular error "./srcds_run: line 344: 6743 Segmentation fault $HL_CMD"
Reply
#5
Maybe check your glibc version...cause RH9 is beginning to get old...

Or maybe, just deleting your folder and re-download it...
Reply
#6
I am experiencing this problem as well. Fedora Core 5 on a Duron, clean install of srcds, up to date as of 6/21.

./srcds_run -game cstrike -norestart -debug
Auto detecting CPU
Using AMD Optimised binary.
Enabling debug mode
./srcds_run: line 344: 19520 Illegal instruction (core dumped) $HL_CMD
cat: hlds.19502.pid: No such file or directory
email debug.log to linux@valvesoftware.com
Wed Jun 21 17:58:57 CDT 2006: Server Quit

debug.log is unhelpful:
----------------------------------------------
CRASH: Wed Jun 21 17:58:57 CDT 2006
Start Line: ./srcds_amd -game cstrike -norestart -debug
End of Source crash report
----------------------------------------------

gcc --version
gcc (GCC) 4.1.1 20060525 (Red Hat 4.1.1-1)

ldd --version
ldd (GNU libc) 2.4

uname -a
Linux vault.ghettobox.org 2.6.16-1.2111_FC5 #1 Thu May 4 21:16:58 EDT 2006 i686 athlon i386 GNU/Linux
Reply
#7
I am running

Linux borg 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 Pentium III (Coppermine) unknown GNU/Linux

gcc -- gcc (GCC) 4.0.1 (4.0.1-5mdk for Mandriva Linux release 2006.0)

(GNU libc) 2.3.5


and have re-downloaded srcd from scratch with the same results
[Image: killik-sig2.gif]
Reply
#8
Looks like the srcds requires SSE support, and our (stock!) kernels don't support it.

http://forums.srcds.com/showthread.php?tid=583 and also a thread in the May hlds_linux list archives called "[hlds_linux] Yesterdays SRCDS update causes server not to start" discuss this.

Update:

Actually, it seems to be my Duron cpu, not the kernel:

cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 3
model name : AMD Duron™ Processor
stepping : 1
cpu MHz : 797.459
cache size : 64 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
bogomips : 1597.25

(note absence of "sse" in the flags section)

The worst thing about this is that it worked fine a few months ago, then valve releases an update that makes SSE required (and claims it always was... BS). Sure, my Duron may be outdated, but it could run a decent 10 player server. I don't understand why we couldn't have a non-SSE binary.

I suppose I have a reason to blow some cash on a new server now.
Reply
#9
Just to chime in and keep the thread alive: I've got a duron800 on my FedoraCore4 box; same failure (illegal instruction), but I don't get much debug from the failure.

Another thread mentioned QEMU, which I will try later tonight to test. And yet another offered links to older/non updated bin files (also not tried yet, but will look at).

Has valve mentioned anything about this?



followup / edit:
I backed up my srcds installed (bin/ srcd* test* steam Install*) and then used the tar mentioned in this article:
http://forum.hidden-source.com/archive/index.php?t-4910.html

note: wget does work, you just have to dig down to the link and use that.

server up and running again! (didn't do anyting other than untar that file in my install directory)


Reply
#10
Alfred, the valve guy on the hlds_linux list, said this after the May update that broke us:

Quote:From: "Alfred Reynolds" <[EMAIL PROTECTED]>
To: <hlds_linux@list.valvesoftware.com>
Sent: Thursday, May 25, 2006 8:02 PM
Subject: RE: [hlds_linux] Yesterdays SRCDS update causes server not to start
anymore


Source requires the SSE instruction set to run. If you are using FreeBSD
make sure you enable the SSE option (FreeBSD guys, what is the magic command
line to make this happen?)

The rollback works because it goes back to March, when valve broke VAC in srcds. Nice find jtmcdole.

No guarantees on how long this will work well as valve continues to update the client and server code. It's probably safe to say that valve won't be dropping the SSE instruction set dependancy, so the only longterm "solution" is to run on a newer CPU.

Reply
#11
What does SSE do exactly?
Reply
#12
SSE lets programmers operate on a set of data in one cpu instruction. It can make a big performance difference for programs that can take advantage of it, typically media applications like transcoding and playback.

http://en.wikipedia.org/wiki/Streaming_SIMD_Extensions has some more technical info.
Reply
#13
Hey ghtadm,

I've read the chain that Alfred responded to -- the problem with valve is they DONT need SSE for dedicated servers! If the rollback runs well on a Duron 800 (8 person server, bots, mods, etc), there is nothing new that could have been added to _require_ sse instructions.

Obviously, if you want to _play_ the game, you'll need SSE.

<grumble> Now I'm dealing with something else thats happened recently to cause my server to segfault every time a user signs on
Reply
#14
i'm intresting in this subjekt
volkswagen harrisburg pennsylvania
circle cook dane quote vicious
volkswagen lawrence new hampshire


write comments on my site please if i not response via email


Bye
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)