dissent-bin SIGABRTs due to bad stack bounds
Running Dissent from AUR dissent-bin gives the following output:
❯ dissent
runtime/cgo: bad stack bounds: lo=0x9a886fb9b5f64c50 hi=0x7ffe2375ec60
zsh: IOT instruction (core dumped) dissent
It appears that, while almost every library links properly through /usr/lib, that libc, libpthread, and libresolv - all standard system libraries - are linking to a Nix store:
❯ ldd /usr/bin/dissent
linux-vdso.so.1 (0x00007fffed5c1000)
libadwaita-1.so.0 => /usr/lib/libadwaita-1.so.0 (0x00007d30d0a50000)
libgtk-4.so.1 => /usr/lib/libgtk-4.so.1 (0x00007d30d0200000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x00007d30d7228000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x00007d30d71c1000)
libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007d30d00f2000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x00007d30d717b000)
libcairo-gobject.so.2 => /usr/lib/libcairo-gobject.so.2 (0x00007d30d7172000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007d30cffbf000)
libgraphene-1.0.so.0 => /usr/lib/libgraphene-1.0.so.0 (0x00007d30d7153000)
libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00007d30cfde6000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007d30d70ef000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007d30cfc9a000)
libgirepository-1.0.so.1 => /usr/lib/libgirepository-1.0.so.1 (0x00007d30d0a2c000)
libpthread.so.0 => /nix/store/ksk3rnb0ljx8gngzk19jlmbjyvac4hw6-glibc-2.38-44/lib/libpthread.so.0 (0x00007d30d70ea000)
libresolv.so.2 => /nix/store/ksk3rnb0ljx8gngzk19jlmbjyvac4hw6-glibc-2.38-44/lib/libresolv.so.2 (0x00007d30d0a1b000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007d30cfc75000)
libc.so.6 => /nix/store/ksk3rnb0ljx8gngzk19jlmbjyvac4hw6-glibc-2.38-44/lib/libc.so.6 (0x00007d30cfa8c000)
libfribidi.so.0 => /usr/lib/libfribidi.so.0 (0x00007d30cfa6c000)
libappstream.so.5 => /usr/lib/libappstream.so.5 (0x00007d30cf9bb000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007d30cf8cf000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007d30d70df000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007d30cf87f000)
libepoxy.so.0 => /usr/lib/libepoxy.so.0 (0x00007d30cf74e000)
libXi.so.6 => /usr/lib/libXi.so.6 (0x00007d30d0a07000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007d30cf60b000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x00007d30cf5f3000)
libcloudproviders.so.0 => /usr/lib/libcloudproviders.so.0 (0x00007d30cf5d9000)
libtracker-sparql-3.0.so.0 => /usr/lib/libtracker-sparql-3.0.so.0 (0x00007d30cf4fd000)
libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007d30cf4c3000)
libtiff.so.6 => /usr/lib/libtiff.so.6 (0x00007d30cf435000)
libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0x00007d30cf398000)
libxkbcommon.so.0 => /usr/lib/libxkbcommon.so.0 (0x00007d30cf34f000)
libwayland-client.so.0 => /usr/lib/libwayland-client.so.0 (0x00007d30cf33b000)
libwayland-egl.so.1 => /usr/lib/libwayland-egl.so.1 (0x00007d30cf336000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007d30cf321000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00007d30cf315000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00007d30cf310000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007d30cf308000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x00007d30cf2f9000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007d30cf2f4000)
libcairo-script-interpreter.so.2 => /usr/lib/libcairo-script-interpreter.so.2 (0x00007d30cf2d3000)
libthai.so.0 => /usr/lib/libthai.so.0 (0x00007d30cf2c8000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007d30cf1fa000)
libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007d30cf1d5000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007d30cf1bb000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007d30cf1ae000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007d30cf183000)
libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00007d30cf174000)
libxcb-shm.so.0 => /usr/lib/libxcb-shm.so.0 (0x00007d30cf16d000)
libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00007d30cf0c3000)
libmount.so.1 => /usr/lib/libmount.so.1 (0x00007d30cf074000)
libffi.so.8 => /usr/lib/libffi.so.8 (0x00007d30cf069000)
libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x00007d30cefcb000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007d30d7262000)
libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007d30cef05000)
libxmlb.so.2 => /usr/lib/libxmlb.so.2 (0x00007d30ceed4000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007d30ced7c000)
libyaml-0.so.2 => /usr/lib/libyaml-0.so.2 (0x00007d30ced5b000)
libsystemd.so.0 => /usr/lib/libsystemd.so.0 (0x00007d30cec6e000)
libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007d30ceb9b000)
libstemmer.so.0 => /usr/lib/libstemmer.so.0 (0x00007d30ceace000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007d30ceaa5000)
libjson-glib-1.0.so.0 => /usr/lib/libjson-glib-1.0.so.0 (0x00007d30cea7b000)
libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00007d30ce91e000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007d30ce8eb000)
libjbig.so.2.1 => /usr/lib/libjbig.so.2.1 (0x00007d30ce8dc000)
liblzo2.so.2 => /usr/lib/liblzo2.so.2 (0x00007d30ce8bb000)
libdatrie.so.1 => /usr/lib/libdatrie.so.1 (0x00007d30ce8b2000)
libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007d30ce89f000)
libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x00007d30ce890000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007d30ce889000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007d30ce881000)
libblkid.so.1 => /usr/lib/libblkid.so.1 (0x00007d30ce848000)
libnghttp3.so.9 => /usr/lib/libnghttp3.so.9 (0x00007d30ce825000)
libnghttp2.so.14 => /usr/lib/libnghttp2.so.14 (0x00007d30ce7fb000)
libidn2.so.0 => /usr/lib/libidn2.so.0 (0x00007d30ce7d7000)
libssh2.so.1 => /usr/lib/libssh2.so.1 (0x00007d30ce78e000)
libpsl.so.5 => /usr/lib/libpsl.so.5 (0x00007d30ce77a000)
libssl.so.3 => /usr/lib/libssl.so.3 (0x00007d30ce69a000)
libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x00007d30ce000000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007d30ce646000)
libicuuc.so.74 => /usr/lib/libicuuc.so.74 (0x00007d30cde13000)
libcap.so.2 => /usr/lib/libcap.so.2 (0x00007d30ce638000)
libgcrypt.so.20 => /usr/lib/libgcrypt.so.20 (0x00007d30cdcca000)
liblz4.so.1 => /usr/lib/liblz4.so.1 (0x00007d30ce613000)
libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x00007d30ce5f0000)
libunistring.so.5 => /usr/lib/libunistring.so.5 (0x00007d30cdb1a000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007d30cda42000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007d30ce5c0000)
libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007d30ce5ba000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007d30ce5ac000)
libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x00007d30ce5a3000)
libicudata.so.74 => /usr/lib/libicudata.so.74 (0x00007d30cbc00000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007d30cb800000)
libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x00007d30ce57d000)
I can't say for certain whether this is the cause, but given that it appears to be because of false setup of the stack, I'd imagine this has something to do with it. Manually pulling the binaries out of the tarball also yields the same results.
Please wait for action https://github.com/diamondburned/dissent/actions/runs/8387085229 to finish and try its binary.
@diamondburned
should i still be looking for the binary?
Oops. Looks like patchelf --reset-rpath is not happy. I'm not too sure how to fix the RUNPATH here...
I am suspecting it's the RUNPATH set by Nix's linker though.
Will have to revert these commits for now...