-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
Issue
Failing coroutine.lua test.
Reproduction steps
$ YKD_SERIALISE_COMPILATION=0 try_repeat 1000 ../src/lua coroutine.lua
Notes
Reproduces only with non-serialised compilation.
YKD_SERIALISE_COMPILATION=1 try_repeat 1000 ../src/lua coroutine.lua executed successfully.
Backtrace
[New Thread 0x7ffff17d9640 (LWP 10784)]
[Thread 0x7ffff17d9640 (LWP 10784) exited]
[New Thread 0x7ffff17d9640 (LWP 10785)]
lua: /yk-fork/ykllvm/llvm/lib/IR/Value.cpp:1101: void llvm::ValueHandleBase::RemoveFromUseList(): Assertion `*PrevPtr == this && "List invariant broken"' failed.
--Type <RET> for more, q to quit, c to continue without paging--
Thread 5 "lua" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffeda44640 (LWP 10773)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
49 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1 0x00007ffff78e2864 in __GI_abort () at abort.c:79
#2 0x00007ffff78e2749 in __assert_fail_base (fmt=0x7ffff7a6bf78 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
assertion=0x7ffff600ac38 "*PrevPtr == this && \"List invariant broken\"",
file=0x7ffff6009300 "/yk-fork/ykllvm/llvm/lib/IR/Value.cpp", line=1101, function=<optimised out>)
at assert.c:92
#3 0x00007ffff78f43d6 in __GI___assert_fail (assertion=0x7ffff600ac38 "*PrevPtr == this && \"List invariant broken\"",
file=0x7ffff6009300 "/yk-fork/ykllvm/llvm/lib/IR/Value.cpp", line=1101,
function=0x7ffff600abb0 "void llvm::ValueHandleBase::RemoveFromUseList()") at assert.c:101
#4 0x00007ffff5e65448 in llvm::ValueHandleBase::RemoveFromUseList() ()
from /yk-fork/target/debug/ykllvm/lib/libLLVMCore.so.16git
#5 0x00007ffff7cca5b7 in llvm::ValueHandleBase::~ValueHandleBase (this=0x7fffeda425a0)
at /yk-fork/target/debug/ykllvm/include/llvm/IR/ValueHandle.h:66
#6 0x00007ffff7ccbef9 in llvm::CallbackVH::~CallbackVH (this=0x7fffeda42598)
at /yk-fork/target/debug/ykllvm/include/llvm/IR/ValueHandle.h:386
#7 0x00007ffff7cc9225 in llvm::ValueMapCallbackVH<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::~ValueMapCallbackVH (this=0x7fffeda42598)
at /yk-fork/target/debug/ykllvm/include/llvm/IR/ValueMap.h:46
#8 0x00007ffff7cc75b2 in llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >::operator[] (this=0x7fffeda42dc8, Key=@0x7fffeda42688: 0x7fffc19217f0)
at /yk-fork/target/debug/ykllvm/include/llvm/IR/ValueMap.h:207
#9 0x00007ffff7cd07cc in JITModBuilder::copyInstruction (this=0x7fffeda42c18, Builder=0x7fffeda42c48, I=0x7fffc19217f0,
CurBBIdx=2, CurInstrIdx=9) at src/jitmodbuilder.cc:1056
#10 0x00007ffff7cc3ef4 in JITModBuilder::createModule (this=0x7fffeda42c18) at src/jitmodbuilder.cc:1676
#11 0x00007ffff7cc2989 in createModule[abi:cxx11](llvm::Module*, char**, unsigned long*, unsigned long, char**, void**, unsigned long) (AOTMod=0x7fffc0088780, FuncNames=0x7fffe0011860, BBs=0x7fffe0013590, TraceLen=933, FAddrKeys=0x7fffe0006fa0,
FAddrVals=0x7fffe00070b0, FAddrLen=29) at src/jitmodbuilder.cc:1751
--Type <RET> for more, q to quit, c to continue without paging--
#12 0x00007ffff7cc08e7 in compileIRTrace<std::tuple<llvm::Module*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<llvm::GlobalValue*, void*, std::less<llvm::GlobalValue*>, std::allocator<std::pair<llvm::GlobalValue* const, void*> > >, void*, unsigned long> (*)(llvm::Module*, char**, unsigned long*, unsigned long, char**, void**, unsigned long)>(std::tuple<llvm::Module*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<llvm::GlobalValue*, void*, std::less<llvm::GlobalValue*>, std::allocator<std::pair<llvm::GlobalValue* const, void*> > >, void*, unsigned long> (*)(llvm::Module*, char**, unsigned long*, unsigned long, char**, void**, unsigned long), char**, unsigned long*, unsigned long, char**, void**, unsigned long, void*, unsigned long, int, char*)::{lambda(llvm::Module&)#1}::operator()(llvm::Module&) const
(this=0x7fffeda430c8, AOTMod=...) at src/ykllvmwrap.cc:411
#13 0x00007ffff7cc037e in llvm::orc::ThreadSafeModule::withModuleDo<compileIRTrace<std::tuple<llvm::Module*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<llvm::GlobalValue*, void*, std::less<llvm::GlobalValue*>, std::allocator<std::pair<llvm::GlobalValue* const, void*> > >, void*, unsigned long> (*)(llvm::Module*, char**, unsigned long*, unsigned long, char**, void**, unsigned long)>(std::tuple<llvm::Module*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<llvm::GlobalValue*, void*, std::less<llvm::GlobalValue*>, std::allocator<std::pair<llvm::GlobalValue* const, void*> > >, void*, unsigned long> (*)(llvm::Module*, char**, unsigned long*, unsigned long, char**, void**, unsigned long), char**, unsigned long*, unsigned long, char**, void**, unsigned long, void*, unsigned long, int, char*)::{lambda(llvm::Module&)#1}>(compileIRTrace<std::tuple<llvm::Module*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<llvm::GlobalValue*, void*, std::less<llvm::GlobalValue*>, std::allocator<std::pair<llvm::GlobalValue* const, void*> > >, void*, unsigned long> (*)(llvm::Module*, char**, unsigned long*, unsigned long, char**, void**, unsigned long)>(std::tuple<llvm::Module*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<llvm::GlobalValue*, void*, std::less<llvm::GlobalValue*>, std::allocator<std::pair<llvm::GlobalValue* const, void*> > >, void*, unsigned long> (*)(llvm::Module*, char**, unsigned long*, unsigned long, char**, void**, unsigned long), char**, unsigned long*, unsigned long, char**, void**, unsigned long, void*, unsigned long, int, char*)::{lambda(llvm::Module&)#1}&&) (this=0x7ffff7e52310 <GlobalAOTMod>, F=...)
at /yk-fork/target/debug/ykllvm/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h:136
#14 0x00007ffff7cb8409 in compileIRTrace<std::tuple<llvm::Module*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<llvm::GlobalValue*, void*, std::less<llvm::GlobalValue*>, std::allocator<std::pair<llvm::GlobalValue* const, void*> > >, void*, unsigned long> (*)(llvm::Module*, char**, unsigned long*, unsigned long, char**, void**, unsigned long)> (
Func=0x7ffff7cc2910 <createModule[abi:cxx11](llvm::Module*, char**, unsigned long*, unsigned long, char**, void**, unsigned long)>, FuncNames=0x7fffe0011860, BBs=0x7fffe0013590, TraceLen=933, FAddrKeys=0x7fffe0006fa0, FAddrVals=0x7fffe00070b0,
FAddrLen=29, BitcodeData=0x257f10 <llvm.embedded.module+8>, BitcodeLen=3612476, DebugInfoFD=-1, DebugInfoPath=0x0)
at src/ykllvmwrap.cc:408
#15 0x00007ffff7cb82de in __yktracec_irtrace_compile (FuncNames=0x7fffe0011860, BBs=0x7fffe0013590, TraceLen=933,
FAddrKeys=0x7fffe0006fa0, FAddrVals=0x7fffe00070b0, FAddrLen=29, BitcodeData=0x257f10 <llvm.embedded.module+8>,
BitcodeLen=3612476, DebugInfoFD=-1, DebugInfoPath=0x0) at src/ykllvmwrap.cc:450
#16 0x00007ffff7b20398 in ykrt::trace::IRTrace::compile (self=0x7fffeda43670) at ykrt/src/trace/mod.rs:178
#17 0x00007ffff7b35ae7 in ykrt::mt::{impl#0}::queue_compile_job::{closure#0} () at ykrt/src/mt.rs:389
#18 0x00007ffff7b05afe in core::ops::function::FnOnce::call_once<ykrt::mt::{impl#0}::queue_compile_job::{closure_env#0}, ()> ()
at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/core/src/ops/function.rs:250
#19 0x00007ffff7b36ffd in alloc::boxed::{impl#47}::call_once<(), (dyn core::ops::function::FnOnce<(), Output=()> + core::marker::Send), alloc::alloc::Global> (self=..., args=())
at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/alloc/src/boxed.rs:1985
#20 0x00007ffff7b0e52b in lock_api::mutex::MutexGuard<parking_lot::raw_mutex::RawMutex, alloc::collections::vec_deque::VecDeque<alloc::boxed::Box<(dyn core::ops::function::FnOnce<(), Output=()> + core::marker::Send), alloc::alloc::Global>, alloc::alloc::Global>>::unlocked<parking_lot::raw_mutex::RawMutex, alloc::collections::vec_deque::VecDeque<alloc::boxed::Box<(dyn core::ops::function::FnOnce<(), Output=()> + core::marker::Send), alloc::alloc::Global>, alloc::alloc::Global>, alloc::boxed::Box<(dyn core::ops::function::FnOnce<(), Output=()> + core::marker::Send), alloc::alloc::Global>, ()> (s=0x7fffeda43910, f=...)
at /home/kimchi/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lock_api-0.4.10/src/mutex.rs:567
#21 0x00007ffff7b341d1 in ykrt::mt::{impl#0}::queue_job::{closure#0} () at ykrt/src/mt.rs:161
#22 0x00007ffff7b4c4e3 in std::sys_common::backtrace::__rust_begin_short_backtrace<ykrt::mt::{impl#0}::queue_job::{closure_env#0}, ()> (f=...) at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/std/src/sys_common/backtrace.rs:135
#23 0x00007ffff7b22034 in std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure#0}<ykrt::mt::{impl#0}::queue_job::{closure_env#0}, ()> () at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/std/src/thread/mod.rs:529
#24 0x00007ffff7b37ee4 in core::panic::unwind_safe::{impl#23}::call_once<(), std::thread::{impl#0}::spawn_unchecked_::{closure#1}--Type <RET> for more, q to quit, c to continue without paging--
::{closure_env#0}<ykrt::mt::{impl#0}::queue_job::{closure_env#0}, ()>> (self=...)
at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/core/src/panic/unwind_safe.rs:271
#25 0x00007ffff7b322f7 in std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<ykrt::mt::{impl#0}::queue_job::{closure_env#0}, ()>>, ()> (data=0x7fffeda43a60)
at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/std/src/panicking.rs:500
#26 0x00007ffff7b325eb in __rust_try () from /yk-fork/bin/../target/debug/deps/libykcapi.so
#27 0x00007ffff7b3227e in std::panicking::try<(), core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<ykrt::mt::{impl#0}::queue_job::{closure_env#0}, ()>>> (f=...)
at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/std/src/panicking.rs:464
#28 0x00007ffff7b21e5e in std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<ykrt::mt::{impl#0}::queue_job::{closure_env#0}, ()>>, ()> (f=...)
at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/std/src/panic.rs:142
#29 std::thread::{impl#0}::spawn_unchecked_::{closure#1}<ykrt::mt::{impl#0}::queue_job::{closure_env#0}, ()> ()
at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/std/src/thread/mod.rs:528
#30 0x00007ffff7b05a7f in core::ops::function::FnOnce::call_once<std::thread::{impl#0}::spawn_unchecked_::{closure_env#1}<ykrt::mt::{impl#0}::queue_job::{closure_env#0}, ()>, ()> ()
at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/core/src/ops/function.rs:250
#31 0x00007ffff7d361c5 in alloc::boxed::{impl#47}::call_once<(), dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global> () at library/alloc/src/boxed.rs:1985
#32 alloc::boxed::{impl#47}::call_once<(), alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global>, alloc::alloc::Global> () at library/alloc/src/boxed.rs:1985
#33 std::sys::unix::thread::{impl#2}::new::thread_start () at library/std/src/sys/unix/thread.rs:108
#34 0x00007ffff588f450 in start_thread (arg=0x7fffeda44640) at pthread_create.c:473
#35 0x00007ffff79d3d53 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95Versions
YKLua - main/a03ed08b34ae5cc5a6238f27bb09c47d133a9da8
YK - master/a690e6eaf7253a4fa9c04bb54406c07b7efc0085
Metadata
Metadata
Assignees
Labels
No labels