Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 786180 - dev-lang/rust-1.51.0-r2 ignores splitdebug and backtrace on PPC64, freezes while emerging Thunderbird
Summary: dev-lang/rust-1.51.0-r2 ignores splitdebug and backtrace on PPC64, freezes wh...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: PPC64 Linux
: Normal major
Assignee: Georgy Yakovlev
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-04-27 22:06 UTC by Peter Easton
Modified: 2021-05-16 18:59 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Easton 2021-04-27 22:06:47 UTC
Ahoy!

I was trying to merge thunderbird >78.7.1-r1 on PPC64 in Little Endian, when I noticed something happening with Rust.

Slyfox and I decided to rebuild rust with FEATURES="splitdebug compressdebug" and I have the entry: RUSTFLAGS="-C target-cpu=pwr9" in my make.conf

While merging Thunderbird, Rust freezes, and then doesn't display the debugging symbols at all even though compiled with them. I've attached the backtrace results below. 

This problem is not observed on the amd64, only PowerPC64.

Reproducible: Always

Steps to Reproduce:
1. Emerge dev-lang/rust with FEATURES="splitdebug compressdebug" on PowerPC64 (Little Endian)
2. Attempt to emerge mail-client/thunderbird-78.7.1-r1 or newer
3. Wait until it hangs on "gmake: leaving directory..." with one thread running at 100% cpu usage. 
4. Find the process using htop.
4. Run gdb and do a backtrace on the process as root. 
Actual Results:  
Emerge: hangs, with one thread using 100% CPU. "gmake: leaving directory" is the last line displayed. If cancelled with CTRL-C, stops and exits as normal. 

Rust: No debug symbols are observed.

Expected Results:  
Emerge: Thunderbird compiles and installs.

Rust: Debugging symbols are displayed. 


This is what the process tree looks like from here: 
+-gmake(31202)---gmake(31205)---gmake(31208)---cargo(31220)-+-rustc(45052)-+-{rustc}(45057)
|                                                           |              |-{rustc}(46680)
|                                                           |              |-{rustc}(46681)
|                                                           |              `-{rustc}(47002)
|                                                           |-{cargo}(33241)
|                                                           `-{cargo}(45051)
|-python3.8(30124)
|-{python3.8}(30127)
`-{python3.8}(30128)



(gdb) c
Continuing.
^C
Thread 1 "rustc" received signal SIGINT, Interrupt.
0x00003fffae2f7d94 in __futex_abstimed_wait_common64 () from target:/lib64/libpthread.so.0
(gdb) bt
#0  0x00003fffae2f7d94 in __futex_abstimed_wait_common64 () from target:/lib64/libpthread.so.0
#1  0x00003fffae2e4958 in __pthread_clockjoin_ex () from target:/lib64/libpthread.so.0
#2  0x00003fffae2e4674 in pthread_join () from target:/lib64/libpthread.so.0
#3  0x00003fffae647394 in std::sys::unix::thread::Thread::join () from target:/usr/lib/rust/lib/libstd-0e65a9eacba75ce1.so
#4  0x00003fffaeee475c in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#5  0x00003fffaee6f358 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#6  0x00003fffaee7f910 in rustc_driver::RunCompiler::run () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#7  0x00003fffaeeda3b8 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#8  0x00003fffaee87c58 in rustc_driver::main () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#9  0x000000013aae99e0 in rustc_main::main ()
#10 0x000000013aae9a84 in std::sys_common::backtrace::__rust_begin_short_backtrace ()
#11 0x000000013aae9acc in std::rt::lang_start::_$u7b$$u7b$closure$u7d$$u7d$::h6771fdff1329e75a ()
#12 0x00003fffae634018 in std::rt::lang_start_internal () from target:/usr/lib/rust/lib/libstd-0e65a9eacba75ce1.so
#13 0x000000013aae9a38 in main ()
(gdb) info thread
  Id   Target Id         Frame 
* 1    LWP 45052 "rustc" 0x00003fffae2f7d94 in __futex_abstimed_wait_common64 () from target:/lib64/libpthread.so.0
  2    LWP 45057 "rustc" 0x00003fffae49fc30 in syscall () from target:/lib64/libc.so.6
  3    LWP 46680 "rustc" 0x00003fffae2f7d94 in __futex_abstimed_wait_common64 () from target:/lib64/libpthread.so.0
  4    LWP 46681 "rustc" 0x00003fffae49fc30 in syscall () from target:/lib64/libc.so.6
  5    LWP 47002 "rustc" 0x00003fffb14f8528 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
(gdb) thread 5
[Switching to thread 5 (LWP 47002)]
#0  0x00003fffb14f8528 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
(gdb) bt
#0  0x00003fffb14f8528 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#1  0x00003fffaf802770 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#2  0x00003fffaf80b9c8 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#3  0x00003fffaf479f60 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#4  0x00003fffaf482968 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#5  0x00003fffaf840b4c in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#6  0x00003fffaf84a450 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#7  0x00003fffaf84a914 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#8  0x00003fffaf84ec24 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#9  0x00003fffaf851d1c in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#10 0x00003fffaf49b104 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#11 0x00003fffafd76108 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#12 0x00003fffb13747b0 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#13 0x00003fffb1376494 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#14 0x00003fffb137364c in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#15 0x00003fffb1373a2c in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#16 0x00003fffaf41c4e4 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#17 0x00003fffaf2d7074 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#18 0x00003fffaf2dc0d8 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#19 0x00003fffaf2fba2c in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#20 0x00003fffaf2f6774 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#21 0x00003fffaf25fcc8 in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
#22 0x00003fffaf1fae2c in ?? () from target:/usr/lib/rust/lib/librustc_driver-d14a88fe5d9c820d.so
--Type <RET> for more, q to quit, c to continue without paging--
#23 0x00003fffae647230 in ?? () from target:/usr/lib/rust/lib/libstd-0e65a9eacba75ce1.so
#24 0x00003fffae2e2f98 in start_thread () from target:/lib64/libpthread.so.0
#25 0x00003fffae4a9060 in clone () from target:/lib64/libc.so.6
(gdb) q
Comment 1 Peter Easton 2021-05-16 18:59:28 UTC
Hi everyone,

I have some good news! It looks like Rust 1.52 has fixed the problem! Since it's fixed I'm going to change the status to "Resolved, fixed."