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:
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)
@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:
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.