Skip to content

Runtime crash in libgreen #11609

Closed
Closed
@alexcrichton

Description

@alexcrichton

If you compile this program with --opt-level=3 -Zlto it will occasionally crash:

use std::task;       
fn main() { for _ in range(0, 10000000) { task::deschedule(); } }

The best backtrace I've gotten is:

warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7fff53ff2000
Core was generated by `./foo'.                                                                
Program terminated with signal 4, Illegal instruction.                                        
#0  0x0000000000407e03 in rt::util::abort::h953774e806dcb5c1am::v0.9 ()                       
(gdb) thread apply all bt                                                                     

Thread 3 (Thread 0x7f13a7127700 (LWP 2576)):                                                  
#0  0x00007f13a740b219 in syscall () from /usr/lib/libc.so.6                                  
#1  0x000000000049ff9a in uv__epoll_wait ()                                                   
#2  0x000000000049e7fe in uv__io_poll ()                                                      
#3  0x0000000000499c37 in uv_run ()                                                           
#4  0x000000000042c6c2 in sched::Scheduler::run::hd854cc9af95f4347xjau::v0.9 ()               
#5  0x00000000004542a5 in __extensions__::new::anon::expr_fn::aR ()                           
#6  0x00000000004572b5 in rt::thread::Thread::start_stack::anon::expr_fn::_6cavaA ()          
#7  0x0000000000425bd4 in rt::thread::thread_start::hb173bf7b3456d2ccao::v0.9 ()              
#8  0x00007f13a7afa0a2 in start_thread () from /usr/lib/libpthread.so.0                       
#9  0x00007f13a740f32d in clone () from /usr/lib/libc.so.6                                    

Thread 2 (Thread 0x7f13a8221740 (LWP 2572)):                                                  
#0  0x00007f13a7afb4a2 in pthread_join () from /usr/lib/libpthread.so.0                       
#1  0x00000000004518e1 in start::anon::expr_fn::aZ ()                                         
#2  0x0000000000425cb8 in rt::task::__extensions__::run::anon::expr_fn::au ()                 
#3  0x0000000000498f4c in rust_try ()                                                         
#4  0x00000000004118aa in rt::task::Task::run::hb037e67c6ebe8541eLar::v0.9 ()                 
#5  0x00000000004044e1 in main ()                                                             

Thread 1 (Thread 0x7f13a81bf700 (LWP 2573)):                                                  
#0  0x0000000000407e03 in rt::util::abort::h953774e806dcb5c1am::v0.9 ()                       
#1  0x000000000042c241 in sched::Callback$SchedRunner::call::he3242c220959de4eFsae::v0.9 ()   
#2  0x000000000048400e in async::async_cb::ha91da3e8f1387c33aJ::v0.9 ()                       
#3  0x00000000004993df in uv__async_event ()                                                  
#4  0x0000000000499479 in uv__async_io ()                                                     
#5  0x000000000049e907 in uv__io_poll ()                                                      
#6  0x0000000000499c37 in uv_run ()                                                           
#7  0x000000000042c6c2 in sched::Scheduler::run::hd854cc9af95f4347xjau::v0.9 ()               
#8  0x00000000004542a5 in __extensions__::new::anon::expr_fn::aR ()                           
#9  0x00000000004572b5 in rt::thread::Thread::start_stack::anon::expr_fn::_6cavaA ()          
#10 0x0000000000425bd4 in rt::thread::thread_start::hb173bf7b3456d2ccao::v0.9 ()              
#11 0x00007f13a7afa0a2 in start_thread () from /usr/lib/libpthread.so.0                       
#12 0x00007f13a740f32d in clone () from /usr/lib/libc.so.6                                    
(gdb) quit                                                                                    

where thread #1 aborted. I have no idea what's going on here. Somehow the local task is not available when a scheduler wakes up?

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsI-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions