Jump to content

SOLVED: OPENSSL_ia32_cpuid problem

Recommended Posts

I've been trying to set up a dedicated server on my gentoo linux box for a bit, as my kids and I just found this game and really enjoy it as a family.  We play via Steam, and oddly, while the steam game works fine for me on linux (Logitech F310 works great in Xbox mode) in Steam Big Picture mode, the dedicated server crashed with the OPENSSL_ia32_cpuid segfault (plenty of refs, google it).


I believe I've fixed it, by changing my base command line(s) to this:

env OPENSSL_ia32cap="~0x10000000" ./dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Master1

See the openssl documentation on capabilities for tech details.


Alas, I cannot seem to find it in the server browser, though ....


This is what I was seeing before adding that env var, as run via gdb:

[... lots of stuff here ...]

[New Thread 0xf34ffb40 (LWP 633)]
[New Thread 0xf38ffb40 (LWP 634)]
[00:00:07]: [Shard] Connecting to master...
[00:00:07]: Telling Client our new session identifier: B7D23DD6F806CD63
[00:00:07]: ModIndex: Load sequence finished successfully.
[00:00:07]: Reset() returning
[00:00:07]: [Steam] SteamGameServer_Init(8769, 11001, 27019)
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.

Program received signal SIGSEGV, Segmentation fault.
0xf775fda5 in OPENSSL_ia32_cpuid () from /usr/lib32/libcrypto.so.1.0.0
(gdb) bt full
#0  0xf775fda5 in OPENSSL_ia32_cpuid () from /usr/lib32/libcrypto.so.1.0.0
No symbol table info available.
#1  0xe99bf231 in OPENSSL_cpuid_setup () from /home/dst/server_dst/bin/lib32/steamclient.so
No symbol table info available.
#2  0xf790228c in calloc () from /lib32/libc.so.6
No symbol table info available.
#3  0xe8eaa758 in ?? () from /home/dst/server_dst/bin/lib32/steamclient.so
No symbol table info available.
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) quit


Link to comment
Share on other sites

Thank you so much for your post, UrmaneHendrake!

This is the only post about a segmentation fault which fits to my problem. And I nearly passed over this post because the solution seemed too exotic to me - and your post had no comments. So I created my forum account to change that. ;)


I first had the problem that there is no "libcurl.so.4" on OpenSUSE Leap 42.2, which is the distribution I am using. Creating a symlink to libcurl.so.4.3.0 solved the problem and some posts with this solution also said that the library is compatible.

But the start of the dedicated server always failed with a segmentation fault, which made me seek for possible reasons for nearly two weeks:

[00:00:27]: [Steam] SteamGameServer_Init(8780, 11013, 27030)
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
Segmentation fault (core dumped)

Even though I knew from other Steam based dedicated servers that the message about SteamAPI can be ignored, I checked once again and again and nearly gave up hope. I was afraid, that libcurl.so.4.3.0 might be the reason.

At last I tried setting the environment variable like you suggest and the server finally started!


After this achievement I installed gdb and reproduced your observation. But even with the output from gdb I think you had to do great detective work.

Also thank you for the link to background infos!


By the way: on rare occasions (I can't see any regularity) I get a segmentation fault after graceful shutdowns of the server. It seems to have no further impact and since it's the very last "message" from the server, I am willing to ignore it:

[00:00:42]: Shutting down
Segmentation fault (core dumped)


Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

  • Create New...