sentry-native: Immediate segfault on Linux (Manjaro)

Description

The sentry SDK segfaults immediately when using the getting started code. I have a screenshot of the backtrace: image It appears to segfault somewhere in curl, which is being called from curl_easy_perform in sentry_transport_curl.c

  • During build
  • During run-time
  • When capturing a hard crash

Environment

  • OS: Manjaro (arch derivative)
  • Compiler: GNU 10.1.0
  • CMake config: -DCMAKE_BUILD_TYPE=Debug
  • CURL: 7.70.0

Steps To Reproduce

Place this snippet in main.

sentry_options_t *options = sentry_options_new();
    sentry_options_set_debug(options, true);
    sentry_options_set_dsn(options, "<dsn>");
    sentry_init(options);
    sentry_capture_event(sentry_value_new_message_event(
            /*   level */ SENTRY_LEVEL_INFO,
            /*  logger */ "custom",
            /* message */ "It works!"
    ));

Log output

[sentry] INFO using database path "<my build dir>/Linux/.sentry-native"
[sentry] DEBUG starting transport
[sentry] DEBUG starting background worker thread
[sentry] DEBUG background worker thread started
[sentry] DEBUG starting backend
[sentry] INFO capturing event
[sentry] DEBUG merging scope into event
[sentry] DEBUG trying to read modules from /proc/self/maps
[sentry] DEBUG inspecting module "<my main function>"
[sentry] DEBUG inspecting module "/usr/lib/libgpg-error.so.0.29.0"
[sentry] DEBUG inspecting module "/usr/lib/libpcre.so.1.2.12"
[sentry] DEBUG inspecting module "/usr/lib/libgcrypt.so.20.2.5"
[sentry] DEBUG inspecting module "/usr/lib/liblz4.so.1.9.2"
[sentry] DEBUG inspecting module "/usr/lib/libFLAC.so.8.3.0"
[sentry] DEBUG inspecting module "/usr/lib/libresolv-2.31.so"
[sentry] DEBUG inspecting module "/usr/lib/libkeyutils.so.1.9"
[sentry] DEBUG inspecting module "/usr/lib/libkrb5support.so.0.1"
[sentry] DEBUG inspecting module "/usr/lib/libffi.so.7.1.0"
[sentry] DEBUG inspecting module "/usr/lib/libicudata.so.67.1"
[sentry] DEBUG inspecting module "/usr/lib/libgraphite2.so.3.2.1"
[sentry] DEBUG inspecting module "/usr/lib/libglib-2.0.so.0.6400.3"
[sentry] DEBUG inspecting module "/usr/lib/libjpeg.so.8.2.2"
[sentry] DEBUG inspecting module "/usr/lib/libasyncns.so.0.3.1"
[sentry] DEBUG inspecting module "/usr/lib/libsystemd.so.0.28.0"
[sentry] DEBUG inspecting module "/usr/lib/libsndfile.so.1.0.28"
[sentry] DEBUG inspecting module "/usr/lib/libcom_err.so.2.1"
[sentry] DEBUG inspecting module "/usr/lib/libk5crypto.so.3.1"
[sentry] DEBUG inspecting module "/usr/lib/libkrb5.so.3.3"
[sentry] DEBUG inspecting module "/usr/lib/libgssapi_krb5.so.2.2"
[sentry] DEBUG inspecting module "/usr/lib/libssl.so.1.1"
[sentry] DEBUG inspecting module "/usr/lib/libpsl.so.5.3.2"
[sentry] DEBUG inspecting module "/usr/lib/libssh2.so.1.0.1"
[sentry] DEBUG inspecting module "/usr/lib/libnghttp2.so.14.19.0"
[sentry] DEBUG inspecting module "/usr/lib/libcrypto.so.1.1"
[sentry] DEBUG inspecting module "/usr/lib/libhogweed.so.6.0"
[sentry] DEBUG inspecting module "/usr/lib/libnettle.so.8.0"
[sentry] DEBUG inspecting module "/usr/lib/libtasn1.so.6.6.0"
[sentry] DEBUG inspecting module "/usr/lib/libunistring.so.2.1.0"
[sentry] DEBUG inspecting module "/usr/lib/libidn2.so.0.3.7"
[sentry] DEBUG inspecting module "/usr/lib/libp11-kit.so.0.3.0"
[sentry] DEBUG inspecting module "/usr/lib/libicuuc.so.67.1"
[sentry] DEBUG inspecting module "/usr/lib/libpng16.so.16.37.0"
[sentry] DEBUG inspecting module "/usr/lib/libexpat.so.1.6.11"
[sentry] DEBUG inspecting module "/usr/lib/libharfbuzz.so.0.20600.7"
[sentry] DEBUG inspecting module "/usr/lib/libv4lconvert.so.0.0.0"
[sentry] DEBUG inspecting module "/usr/lib/libdbus-1.so.3.19.11"
[sentry] DEBUG inspecting module "/usr/lib/pulseaudio/libpulsecommon-13.0.so"
[sentry] DEBUG inspecting module "/usr/lib/libXdmcp.so.6.0.0"
[sentry] DEBUG inspecting module "/usr/lib/libXau.so.6.0.0"
[sentry] DEBUG inspecting module "/usr/lib/libdb-5.3.so"
[sentry] DEBUG inspecting module "/usr/lib/libmvec-2.31.so"
[sentry] DEBUG inspecting module "/usr/lib/libogg.so.0.8.4"
[sentry] DEBUG inspecting module "/usr/lib/libgomp.so.1.0.0"
[sentry] DEBUG inspecting module "/usr/lib/libgcc_s.so.1"
[sentry] DEBUG inspecting module "/usr/lib/libstdc++.so.6.0.28"
[sentry] DEBUG inspecting module "/usr/lib/libcurl.so.4.6.0"
[sentry] DEBUG inspecting module "/usr/lib/librt-2.31.so"
[sentry] DEBUG inspecting module "/usr/lib/libuuid.so.1.3.0"
[sentry] DEBUG inspecting module "/usr/lib/libvdpau.so.1.0.0"
[sentry] DEBUG inspecting module "/usr/lib/libva-x11.so.2.700.0"
[sentry] DEBUG inspecting module "/usr/lib/libva-drm.so.2.700.0"
[sentry] DEBUG inspecting module "/usr/lib/libssh.so.4.8.5"
[sentry] DEBUG inspecting module "/usr/lib/libsrt.so.1.4.1"
[sentry] DEBUG inspecting module "/usr/lib/libgnutls.so.30.28.0"
[sentry] DEBUG inspecting module "/usr/lib/libgmp.so.10.4.0"
[sentry] DEBUG inspecting module "/usr/lib/libbluray.so.2.2.0"
[sentry] DEBUG inspecting module "/usr/lib/libmodplug.so.1.0.0"
[sentry] DEBUG inspecting module "/usr/lib/libbz2.so.1.0.8"
[sentry] DEBUG inspecting module "/usr/lib/libxml2.so.2.9.10"
[sentry] DEBUG inspecting module "/usr/lib/libfreetype.so.6.17.2"
[sentry] DEBUG inspecting module "/usr/lib/libfontconfig.so.1.12.0"
[sentry] DEBUG inspecting module "/usr/lib/libvidstab.so.1.1"
[sentry] DEBUG inspecting module "/usr/lib/libass.so.9.0.2"
[sentry] DEBUG inspecting module "/usr/lib/libvmaf.so"
[sentry] DEBUG inspecting module "/usr/lib/libfribidi.so.0.4.0"
[sentry] DEBUG inspecting module "/usr/lib/libXv.so.1.0.0"
[sentry] DEBUG inspecting module "/usr/lib/libv4l2.so.0.0.0"
[sentry] DEBUG inspecting module "/usr/lib/libSDL2-2.0.so.0.12.0"
[sentry] DEBUG inspecting module "/usr/lib/libpulse.so.0.21.1"
[sentry] DEBUG inspecting module "/usr/lib/libxcb-xfixes.so.0.0.0"
[sentry] DEBUG inspecting module "/usr/lib/libxcb-shape.so.0.0.0"
[sentry] DEBUG inspecting module "/usr/lib/libxcb-shm.so.0.0.0"
[sentry] DEBUG inspecting module "/usr/lib/libxcb.so.1.1.0"
[sentry] DEBUG inspecting module "/usr/lib/libdrm.so.2.4.0"
[sentry] DEBUG inspecting module "/usr/lib/libjack.so.0.0.28"
[sentry] DEBUG inspecting module "/usr/lib/libiec61883.so.0.1.1"
[sentry] DEBUG inspecting module "/usr/lib/librom1394.so.0.3.0"
[sentry] DEBUG inspecting module "/usr/lib/libavc1394.so.0.3.0"
[sentry] DEBUG inspecting module "/usr/lib/libraw1394.so.11.1.0"
[sentry] DEBUG inspecting module "/usr/lib/libmfx.so.1.32"
[sentry] DEBUG inspecting module "/usr/lib/libva.so.2.700.0"
[sentry] DEBUG inspecting module "/usr/lib/libxvidcore.so.4.3"
[sentry] DEBUG inspecting module "/usr/lib/libx265.so.188"
[sentry] DEBUG inspecting module "/usr/lib/libx264.so.159"
[sentry] DEBUG inspecting module "/usr/lib/libvorbisenc.so.2.0.11"
[sentry] DEBUG inspecting module "/usr/lib/libvorbis.so.0.4.8"
[sentry] DEBUG inspecting module "/usr/lib/libtheoradec.so.1.1.4"
[sentry] DEBUG inspecting module "/usr/lib/libtheoraenc.so.1.1.2"
[sentry] DEBUG inspecting module "/usr/lib/libspeex.so.1.5.1"
[sentry] DEBUG inspecting module "/usr/lib/libopus.so.0.8.0"
[sentry] DEBUG inspecting module "/usr/lib/libopenjp2.so.2.3.1"
[sentry] DEBUG inspecting module "/usr/lib/libopencore-amrnb.so.0.0.3"
[sentry] DEBUG inspecting module "/usr/lib/libmp3lame.so.0.0.0"
[sentry] DEBUG inspecting module "/usr/lib/libgsm.so.1.0.13"
[sentry] DEBUG inspecting module "/usr/lib/libaom.so.0"
[sentry] DEBUG inspecting module "/usr/lib/libz.so.1.2.11"
[sentry] DEBUG inspecting module "/usr/lib/libopencore-amrwb.so.0.0.3"
[sentry] DEBUG inspecting module "/usr/lib/libdav1d.so.4.0.1"
[sentry] DEBUG inspecting module "/usr/lib/liblzma.so.5.2.5"
[sentry] DEBUG inspecting module "/usr/lib/libwebp.so.7.1.0"
[sentry] DEBUG inspecting module "/usr/lib/libwebpmux.so.3.0.5"
[sentry] DEBUG inspecting module "/usr/lib/libvpx.so.6.2.0"
[sentry] DEBUG inspecting module "/usr/lib/libsoxr.so.0.1.2"
[sentry] DEBUG inspecting module "/usr/lib/libc-2.31.so"
[sentry] DEBUG inspecting module "/usr/lib/libpthread-2.31.so"
[sentry] DEBUG inspecting module ".../cmake-build-debug/sentry-native/libsentry.so"
[sentry] DEBUG inspecting module "/usr/lib/libm-2.31.so"
[sentry] DEBUG inspecting module "/usr/lib/libasound.so.2.0.0"
[sentry] DEBUG inspecting module "/usr/lib/libXfixes.so.3.1.0"
[sentry] DEBUG inspecting module "/usr/lib/libXext.so.6.4.0"
[sentry] DEBUG inspecting module "/usr/lib/libX11.so.6.3.0"
[sentry] DEBUG inspecting module "/usr/lib/libICE.so.6.3.0"
[sentry] DEBUG inspecting module "/usr/lib/libSM.so.6.0.1"
[sentry] DEBUG inspecting module ".../cmake-build-debug/fractal/input/libfractalInput.so"
[sentry] DEBUG inspecting module "/usr/lib/libdl-2.31.so"
[sentry] DEBUG inspecting module "/usr/lib/libpostproc.so.55.5.100"
[sentry] DEBUG inspecting module "/usr/lib/libavutil.so.56.31.100"
[sentry] DEBUG inspecting module "/usr/lib/libswscale.so.5.5.100"
[sentry] DEBUG inspecting module "/usr/lib/libavformat.so.58.29.100"
[sentry] DEBUG inspecting module "/usr/lib/libavfilter.so.7.57.100"
[sentry] DEBUG inspecting module "/usr/lib/libavdevice.so.58.8.100"
[sentry] DEBUG inspecting module "/usr/lib/libavcodec.so.58.54.100"
[sentry] DEBUG inspecting module "/usr/lib/libswresample.so.3.5.100"
[sentry] DEBUG inspecting module "/usr/lib/ld-2.31.so"
[sentry] DEBUG inspecting module "linux-gate.so"
[sentry] DEBUG read 127 modules from /proc/self/maps
[sentry] DEBUG adding attachments to envelope
[sentry] DEBUG sending envelope
[sentry] DEBUG submitting task to background worker thread
[sentry] DEBUG executing task on worker thread
*   Trying 35.188.42.15:443...
* Connected to o420280.ingest.sentry.io (35.188.42.15) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
[sentry] INFO capturing event
[sentry] DEBUG merging scope into event
[sentry] DEBUG adding attachments to envelope
[sentry] DEBUG sending envelope
[sentry] DEBUG serializing envelope into buffer
[sentry] DEBUG serializing envelope into buffer
[sentry] DEBUG dumped 1 in-flight envelopes to disk
[sentry] INFO crash has been captured


Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 18 (8 by maintainers)

Most upvoted comments

@Shamazo Thank you for posting your issue here! Just starting hitting this exact crash after upgrading our machines to Ubuntu 22.04 (which has openssl 3). It took me a bit to find it, since the stack was different – we got a segfault with a stack that looks like this:

    #0 0x7fe9113194d8 in OPENSSL_sk_value (/lib/x86_64-linux-gnu/libcrypto.so.3+0x2064d8)
    #1 0x7fe91133ba19 in X509_STORE_add_lookup (/lib/x86_64-linux-gnu/libcrypto.so.3+0x228a19)
    #2 0x7fe911341f5e in X509_STORE_load_file_ex (/lib/x86_64-linux-gnu/libcrypto.so.3+0x22ef5e)

After trying a bunch of different things without success (and finding that using libcurl w/ gnutls fixed it), I stumbled across your issue, and realized that we’re statically linking OpenSSL 1.1 into our application as well as loading sentry-native built with dynamic OpenSSL 3. Removing the statically linked OpenSSL 1.1 from the build resolved the issue.