Closed
Description
I was debugging a stuck CI worker recently, and while looking at the cargo-nextest process (which was indeed not at fault!) I discovered that there were no symbols for Rust program text in the binary:
root@ip-10-150-1-69:~# pstack 3879 | demangle
3879: /home/build/.cargo/bin/cargo-nextest nextest run --profile ci --locked
--------------------- thread# 1 / lwp# 1 ---------------------
fffffc7fef173777 lwp_park (0, 0, 0)
fffffc7fef16cb85 cond_wait_queue (2c13c10, 2ddf970, 0) + 55
fffffc7fef16d1ea __cond_wait (2c13c10, 2ddf970) + ba
fffffc7fef16d22e cond_wait (2c13c10, 2ddf970) + 2e
fffffc7fef16d275 pthread_cond_wait (2c13c10, 2ddf970) + 15
0000000000a96108 ???????? ()
0000000000a95f17 ???????? ()
0000000000a9682c ???????? ()
00000000004c4f2c ???????? ()
00000000004b988d ???????? ()
000000000049be4e ???????? ()
000000000048e9d4 ???????? ()
000000000048d80a ???????? ()
0000000000439000 ???????? ()
0000000000434916 ???????? ()
0000000000434be5 ???????? ()
0000000000430af3 ???????? ()
0000000000430a58 ???????? ()
-------- thread# 16 / lwp# 16 [tokio-runtime-worker] ---------
fffffc7fef173777 lwp_park (0, 0, 0)
fffffc7fef16cb85 cond_wait_queue (2dde070, 2d789a0, 0) + 55
fffffc7fef16d1ea __cond_wait (2dde070, 2d789a0) + ba
fffffc7fef16d22e cond_wait (2dde070, 2d789a0) + 2e
fffffc7fef16d275 pthread_cond_wait (2dde070, 2d789a0) + 15
0000000000a96108 ???????? ()
0000000000a9df67 ???????? ()
0000000000a9cb04 ???????? ()
0000000000ab296a ???????? ()
0000000000a8ba54 ???????? ()
0000000000a8b712 ???????? ()
0000000000a5e259 ???????? ()
fffffc7fef1733e7 _thrp_setup (fffffc7fee8a2240) + 77
fffffc7fef173730 _lwp_start ()
-------------- thread# 3 / lwp# 3 [umem_update] --------------
fffffc7fef173777 lwp_park (0, fffffc7fee5fee60, 0)
fffffc7fef16cb85 cond_wait_queue (fffffc7fef2dd710, fffffc7fef2dd6f0, fffffc7fee5fee60) + 55
fffffc7fef16cfb5 cond_wait_common (fffffc7fef2dd710, fffffc7fef2dd6f0, fffffc7fee5fee60) + 1b5
fffffc7fef16d2f9 __cond_timedwait (fffffc7fef2dd710, fffffc7fef2dd6f0, fffffc7fee5fef50) + 69
fffffc7fef16d3cc cond_timedwait (fffffc7fef2dd710, fffffc7fef2dd6f0, fffffc7fee5fef50) + 3c
fffffc7fef299c06 umem_update_thread (0) + 1d6
fffffc7fef1733e7 _thrp_setup (fffffc7fee8a0a40) + 77
fffffc7fef173730 _lwp_start ()
-------- thread# 19 / lwp# 19 [tokio-runtime-worker] ---------
fffffc7fef173777 lwp_park (0, 0, 0)
fffffc7fef16cb85 cond_wait_queue (2de2f50, 2ddffa0, 0) + 55
fffffc7fef16d1ea __cond_wait (2de2f50, 2ddffa0) + ba
fffffc7fef16d22e cond_wait (2de2f50, 2ddffa0) + 2e
fffffc7fef16d275 pthread_cond_wait (2de2f50, 2ddffa0) + 15
0000000000a96108 ???????? ()
0000000000a9df67 ???????? ()
0000000000a9cb04 ???????? ()
0000000000ab296a ???????? ()
0000000000a8ba54 ???????? ()
0000000000a8b712 ???????? ()
0000000000a5e259 ???????? ()
fffffc7fef1733e7 _thrp_setup (fffffc7fee8a1a40) + 77
fffffc7fef173730 _lwp_start ()
-------- thread# 14 / lwp# 14 [tokio-runtime-worker] ---------
fffffc7fef173777 lwp_park (0, 0, 0)
fffffc7fef16cb85 cond_wait_queue (2b9b310, 2ba89a0, 0) + 55
fffffc7fef16d1ea __cond_wait (2b9b310, 2ba89a0) + ba
fffffc7fef16d22e cond_wait (2b9b310, 2ba89a0) + 2e
fffffc7fef16d275 pthread_cond_wait (2b9b310, 2ba89a0) + 15
0000000000a96108 ???????? ()
0000000000a9df67 ???????? ()
0000000000a9cb04 ???????? ()
0000000000ab296a ???????? ()
0000000000a8ba54 ???????? ()
0000000000a8b712 ???????? ()
0000000000a5e259 ???????? ()
fffffc7fef1733e7 _thrp_setup (fffffc7fee8a1240) + 77
fffffc7fef173730 _lwp_start ()
-------- thread# 17 / lwp# 17 [tokio-runtime-worker] ---------
fffffc7fef173777 lwp_park (0, 0, 0)
fffffc7fef16cb85 cond_wait_queue (2ced830, 2dd9970, 0) + 55
fffffc7fef16d1ea __cond_wait (2ced830, 2dd9970) + ba
fffffc7fef16d22e cond_wait (2ced830, 2dd9970) + 2e
fffffc7fef16d275 pthread_cond_wait (2ced830, 2dd9970) + 15
0000000000a96108 ???????? ()
0000000000a9df67 ???????? ()
0000000000a9cb04 ???????? ()
0000000000ab296a ???????? ()
0000000000a8ba54 ???????? ()
0000000000a8b712 ???????? ()
0000000000a5e259 ???????? ()
fffffc7fef1733e7 _thrp_setup (fffffc7fee8a0240) + 77
fffffc7fef173730 _lwp_start ()
-------- thread# 13 / lwp# 13 [tokio-runtime-worker] ---------
fffffc7fef17ab2a write (2, 11a8c10, 85)
0000000000a506db ???????? ()
0000000000814135 ???????? ()
0000000000807e57 ???????? ()
00000000004f4433 ???????? ()
00000000004f23d9 ???????? ()
00000000004f0919 ???????? ()
0000000000a9ea9b ???????? ()
0000000000a9c2c6 ???????? ()
0000000000ab296a ???????? ()
0000000000a8ba54 ???????? ()
0000000000a8b712 ???????? ()
0000000000a5e259 ???????? ()
fffffc7fef1733e7 _thrp_setup (fffffc7fee8a3240) + 77
fffffc7fef173730 _lwp_start ()
-------- thread# 20 / lwp# 20 [tokio-runtime-worker] ---------
fffffc7fef173777 lwp_park (0, 0, 0)
fffffc7fef16cb85 cond_wait_queue (16450d0, 28b21c0, 0) + 55
fffffc7fef16d1ea __cond_wait (16450d0, 28b21c0) + ba
fffffc7fef16d22e cond_wait (16450d0, 28b21c0) + 2e
fffffc7fef16d275 pthread_cond_wait (16450d0, 28b21c0) + 15
0000000000a96108 ???????? ()
0000000000a9df67 ???????? ()
0000000000a9cb04 ???????? ()
0000000000ab296a ???????? ()
0000000000a8ba54 ???????? ()
0000000000a8b712 ???????? ()
0000000000a5e259 ???????? ()
fffffc7fef1733e7 _thrp_setup (fffffc7fee8a2a40) + 77
fffffc7fef173730 _lwp_start ()
-------- thread# 15 / lwp# 15 [tokio-runtime-worker] ---------
fffffc7fef173777 lwp_park (0, 0, 0)
fffffc7fef16cb85 cond_wait_queue (2de2db0, 2cf4130, 0) + 55
fffffc7fef16d1ea __cond_wait (2de2db0, 2cf4130) + ba
fffffc7fef16d22e cond_wait (2de2db0, 2cf4130) + 2e
fffffc7fef16d275 pthread_cond_wait (2de2db0, 2cf4130) + 15
0000000000a96108 ???????? ()
0000000000a9df67 ???????? ()
0000000000a9cb04 ???????? ()
0000000000ab296a ???????? ()
0000000000a8ba54 ???????? ()
0000000000a8b712 ???????? ()
0000000000a5e259 ???????? ()
fffffc7fef1733e7 _thrp_setup (fffffc7fee8a4240) + 77
fffffc7fef173730 _lwp_start ()
-------- thread# 18 / lwp# 18 [tokio-runtime-worker] ---------
fffffc7fef173777 lwp_park (0, 0, 0)
fffffc7fef16cb85 cond_wait_queue (1149670, 114c850, 0) + 55
fffffc7fef16d1ea __cond_wait (1149670, 114c850) + ba
fffffc7fef16d22e cond_wait (1149670, 114c850) + 2e
fffffc7fef16d275 pthread_cond_wait (1149670, 114c850) + 15
0000000000a96108 ???????? ()
0000000000a9df67 ???????? ()
0000000000a9cb04 ???????? ()
0000000000ab296a ???????? ()
0000000000a8ba54 ???????? ()
0000000000a8b712 ???????? ()
0000000000a5e259 ???????? ()
fffffc7fef1733e7 _thrp_setup (fffffc7fee8a3a40) + 77
fffffc7fef173730 _lwp_start ()
-------------------- thread# 21 / lwp# 21 --------------------
0000000000a5e230 ????????(), exit value = 0x0000000000000000
** zombie (exited, not detached, not yet joined) **
The binary appears to have been stripped not just of debuginfo but also of all symbols:
root@ip-10-150-1-69:~# file /home/build/.cargo/bin/cargo-nextest
/home/build/.cargo/bin/cargo-nextest: ELF 64-bit LSB executable AMD64 Version 1, dynamically linked, stripped
root@ip-10-150-1-69:~# ls -lh /home/build/.cargo/bin/cargo-nextest
-rwxr-xr-x 1 build build 10.7M Jan 9 20:35 /home/build/.cargo/bin/cargo-nextest
We download this binary using:
#...
NEXTEST_VERSION='0.9.67'
#...
curl -sSfL --retry 10 https://get.nexte.st/"$NEXTEST_VERSION"/"$1" | gunzip | tar -xvf - -C ~/.cargo/bin
It would be awesome if we could at least leave enough symbols in there so that debuggers can get stack traces, even if we don't end up with the full DWARF. Thanks!
Metadata
Metadata
Assignees
Labels
No labels