Jump to content

Segmentation Fault on Arch Linux - possible bug related to openSSL.


Recommended Posts

After investigating a segmentation fault after an [S_API FAIL] error, I discovered that others running Arch are experiencing the same error. The fault traces back to libcrypto.so.1.0.0, a lib file for openSSL.

OpenSSL is responsible for encrypting data, and is probably also the cause of the [S_API FAIL] which crops up when communicating with steam to launch the online server. This error only occurs when launching an online server; offline works perfectly fine.

Arch currently runs openSSL 1.0.2.e from official repositories. According to Arch power users, the segmentation fault is likely caused by a discrepancy between the openSSL version on the system and that which the nullrenderer was compiled against.

If anyone is experiencing the same issue or is willing to help confirm and/or solve this issue, please confirm your openSSL version (openSSL -version), verify that libcrypto.so.1.0.0 is present (in /usr/lib/), and test to see if the error occurs.

Thanks in advance for the assistance. Hopefully this issue will not crop up on other distributions as they adopt new openSSL versions. 

Link to comment
Share on other sites

I'm experiencing the same issue on Arch with a recent update of the server; OpenSSL hasn't changed on Arch since early December and the DST server worked fine previously.

Also, since the DST server is a 32-bit application if you're using a 64-bit install of Arch Linux it should be loading its libs from /usr/lib32 not /usr/lib. Confirm with file and ldd:

> file dontstarve_dedicated_server_nullrenderer
dontstarve_dedicated_server_nullrenderer: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=19d2778e28763549b7002909b8a924742f1afb75, stripped

 

> ldd dontstarve_dedicated_server_nullrenderer
./dontstarve_dedicated_server_nullrenderer: /usr/lib32/libcurl-gnutls.so.4: no version information available (required by ./dontstarve_dedicated_server_nullrenderer)
        linux-gate.so.1 (0xf772d000)
        libSDL2-2.0.so.0 => ./lib32/libSDL2-2.0.so.0 (0xf764c000)
        libcurl-gnutls.so.4 => /usr/lib32/libcurl-gnutls.so.4 (0xf75b3000)
        librt.so.1 => /usr/lib32/librt.so.1 (0xf75aa000)
        libpthread.so.0 => /usr/lib32/libpthread.so.0 (0xf758c000)
        libfmodevent.so => ./lib32/libfmodevent.so (0xf74fe000)
        libfmodex.so => ./lib32/libfmodex.so (0xf7379000)
        libsteam_api.so => ./lib32/libsteam_api.so (0xf7366000)
        libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf71ef000)
        libm.so.6 => /usr/lib32/libm.so.6 (0xf71a2000)
        libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7187000)
        libc.so.6 => /usr/lib32/libc.so.6 (0xf6fcd000)
        libdl.so.2 => /usr/lib32/libdl.so.2 (0xf6fc8000)
        libidn.so.11 => /usr/lib32/libidn.so.11 (0xf6f94000)
        librtmp.so.1 => /usr/lib32/librtmp.so.1 (0xf6f74000)
        libssh2.so.1 => /usr/lib32/libssh2.so.1 (0xf6f41000)
        libnettle.so.6 => /usr/lib32/libnettle.so.6 (0xf6f01000)
        libgnutls.so.30 => /usr/lib32/libgnutls.so.30 (0xf6db5000)
        libgssapi_krb5.so.2 => /usr/lib32/libgssapi_krb5.so.2 (0xf6d62000)
        libkrb5.so.3 => /usr/lib32/libkrb5.so.3 (0xf6c7f000)
        libk5crypto.so.3 => /usr/lib32/libk5crypto.so.3 (0xf6c4b000)
        libcom_err.so.2 => /usr/lib32/libcom_err.so.2 (0xf6c46000)
        libz.so.1 => /usr/lib32/libz.so.1 (0xf6c2f000)
        /lib/ld-linux.so.2 (0xf772e000)
        libfmodex-4.44.07.so => ./lib32/libfmodex-4.44.07.so (0xf6aaa000)
        libssl.so.1.0.0 => /usr/lib32/libssl.so.1.0.0 (0xf6a2c000)
        libcrypto.so.1.0.0 => /usr/lib32/libcrypto.so.1.0.0 (0xf6818000)
        libp11-kit.so.0 => /usr/lib32/libp11-kit.so.0 (0xf67b6000)
        libtasn1.so.6 => /usr/lib32/libtasn1.so.6 (0xf67a1000)
        libhogweed.so.4 => /usr/lib32/libhogweed.so.4 (0xf676c000)
        libgmp.so.10 => /usr/lib32/libgmp.so.10 (0xf66e0000)
        libkrb5support.so.0 => /usr/lib32/libkrb5support.so.0 (0xf66d2000)
        libkeyutils.so.1 => /usr/lib32/libkeyutils.so.1 (0xf66cd000)
        libresolv.so.2 => /usr/lib32/libresolv.so.2 (0xf66b4000)
        libffi.so.6 => /usr/lib32/libffi.so.6 (0xf66ab000)

 

Link to comment
Share on other sites

Archived

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...