Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dissent-bin SIGABRTs due to bad stack bounds #255

Open
amyipdev opened this issue Mar 22, 2024 · 5 comments
Open

dissent-bin SIGABRTs due to bad stack bounds #255

amyipdev opened this issue Mar 22, 2024 · 5 comments

Comments

@amyipdev
Copy link

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.

diamondburned added a commit to diamondburned/gotk4-nix that referenced this issue Mar 22, 2024
diamondburned added a commit that referenced this issue Mar 22, 2024
@diamondburned
Copy link
Owner

Please wait for action https://github.com/diamondburned/dissent/actions/runs/8387085229 to finish and try its binary.

@amyipdev
Copy link
Author

@diamondburned
image

should i still be looking for the binary?

@diamondburned
Copy link
Owner

Oops. Looks like patchelf --reset-rpath is not happy. I'm not too sure how to fix the RUNPATH here...

@diamondburned
Copy link
Owner

I am suspecting it's the RUNPATH set by Nix's linker though.

@diamondburned
Copy link
Owner

Will have to revert these commits for now...

diamondburned added a commit that referenced this issue Mar 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants