ykjit / yklua

yk-enabled Lua interpreter
4 stars 4 forks source link

Failing test - literals.lua #57

Closed Pavel-Durov closed 11 months ago

Pavel-Durov commented 1 year ago

Issue

Failing test literals.lua

Steps to reproduce

$ YKD_SERIALISE_COMPILATION=0 try_repeat 1000 ../src/lua literals.lua
...
testing scanner
malloc_consolidate(): unaligned fastbin chunk detected
Aborted (core dumped)

$ YKD_SERIALISE_COMPILATION=1 try_repeat 1000 ../src/lua literals.lua
...
testing scanner
malloc_consolidate(): unaligned fastbin chunk detected
Aborted (core dumped)

Backtrace

$ YKD_SERIALISE_COMPILATION=0 gdb --batch -ex r -ex bt --args ../src/lua -e_U=true literals.lua
^C[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGINT, Interrupt.
0x00007ffff7fcd968 in ?? () from /lib64/ld-linux-x86-64.so.2
#0  0x00007ffff7fcd968 in ?? () from /lib64/ld-linux-x86-64.so.2
#1  0x00007ffff7fe809f in ?? () from /lib64/ld-linux-x86-64.so.2
#2  0x00007ffff7fcb11a in ?? () from /lib64/ld-linux-x86-64.so.2
#3  0x00007ffff7fca0d8 in ?? () from /lib64/ld-linux-x86-64.so.2
#4  0x0000000000000003 in ?? ()
#5  0x00007fffffffd65e in ?? ()
#6  0x00007fffffffd688 in ?? ()
#7  0x00007fffffffd692 in ?? ()
#8  0x0000000000000000 in ?? ()
$ YKD_SERIALISE_COMPILATION=0 gdb --batch -ex r -ex bt --args ../src/lua -e_U=true literals.lua
...
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
testing scanner

Program received signal SIGINT, Interrupt.
syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
38      ../sysdeps/unix/sysv/linux/x86_64/syscall.S: No such file or directory.
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff7b98cb5 in open_perf (aux_bufsize=16384, err=0x7fffffffb1d0) at src/collect/perf/collect.c:425
#2  0x00007ffff7b9887d in hwt_perf_init_collector (tr_conf=0x91a550, err=0x7fffffffb1d0) at src/collect/perf/collect.c:516
#3  0x00007ffff7b8597b in hwtracer::collect::perf::PerfThreadTracer::new (tracer=0x91a550) at hwtracer/src/collect/perf/mod.rs:117
#4  0x00007ffff7b84f37 in hwtracer::collect::perf::{impl#0}::start_collector (self=...) at hwtracer/src/collect/perf/mod.rs:37
#5  0x00007ffff7b222fa in ykrt::trace::hwt::{impl#0}::start_collector (self=...) at ykrt/src/trace/hwt/mod.rs:17
#6  0x00007ffff7b0c931 in ykrt::mt::MT::control_point (self=0x7fffffffb7a8, loc=0x933ad0, ctrlp_vars=0x7fffffffbc18, frameaddr=0x7fffffffca80) at ykrt/src/mt.rs:200
#7  0x00007ffff7b04b7a in ykcapi::__ykrt_control_point (mt=0x9185d0, loc=0x933ad0, ctrlp_vars=0x7fffffffbc18, frameaddr=0x7fffffffca80) at ykcapi/src/lib.rs:67
#8  0x000000000086dfb3 in luaV_execute (L=<optimised out>, ci=<optimised out>) at lvm.c:1186
#9  0x00000000007ff54b in ccall (L=0x917e38, func=<optimised out>, nResults=<optimised out>, inc=<optimised out>) at ldo.c:609
#10 0x00000000007ff671 in luaD_callnoyield (L=0x917e38, func=0x918710, nResults=-1) at ldo.c:627
#11 0x00000000007eb913 in f_call (L=0x917e38, ud=<optimised out>) at lapi.c:1041
#12 0x00000000007f95f7 in luaD_rawrunprotected (L=0x917e38, f=0x7eb850 <f_call>, ud=0x7ffff2489308) at ldo.c:144
#13 0x0000000000801e16 in luaD_pcall (L=0x917e38, func=0x7eb850 <f_call>, u=0x7ffff2489308, old_top=<optimised out>, ef=<optimised out>) at ldo.c:926
#14 0x00000000007eb3fc in lua_pcallk (L=0x917e38, nargs=<optimised out>, nresults=<optimised out>, errfunc=<optimised out>, ctx=<optimised out>, k=<optimised out>) at lapi.c:1067
#15 0x00000000007dd033 in docall (L=0x917e38, narg=0, nres=-1) at lua.c:160
#16 0x00000000007dc734 in handle_script (L=0x917e38, argv=<optimised out>) at lua.c:255
#17 0x00000000007da9f3 in pmain (L=0x917e38) at lua.c:634
#18 0x00000000007fe485 in precallC (L=0x917e38, func=<optimised out>, nresults=<optimised out>, f=0x7da200 <pmain>) at ldo.c:506
#19 0x00000000007fead8 in luaD_precall (L=0x917e38, func=0x9186d0, nresults=1) at ldo.c:572
#20 0x00000000007ff48f in ccall (L=0x917e38, func=0x9186d0, nResults=1, inc=<optimised out>) at ldo.c:607
#21 0x00000000007ff671 in luaD_callnoyield (L=0x917e38, func=0x9186d0, nResults=1) at ldo.c:627
#22 0x00000000007eb913 in f_call (L=0x917e38, ud=<optimised out>) at lapi.c:1041
#23 0x00000000007f95f7 in luaD_rawrunprotected (L=0x917e38, f=0x7eb850 <f_call>, ud=0x7ffff2489058) at ldo.c:144
#24 0x0000000000801e16 in luaD_pcall (L=0x917e38, func=0x7eb850 <f_call>, u=0x7ffff2489058, old_top=<optimised out>, ef=<optimised out>) at ldo.c:926
#25 0x00000000007eb3fc in lua_pcallk (L=0x917e38, nargs=<optimised out>, nresults=<optimised out>, errfunc=<optimised out>, ctx=<optimised out>, k=<optimised out>) at lapi.c:1067
#26 0x00000000007d9ec0 in main (argc=<optimised out>, argv=<optimised out>) at lua.c:660
$ YKD_SERIALISE_COMPILATION=1 repeat 100 gdb --batch -ex r -ex bt --args ../src/lua -e_U=true literals.lua
....
Thread 1 "lua" received signal SIGINT, Interrupt.
0x00007ffff7bb39f3 in bitvec::slice::iter::{impl#52}::next_back<core::cell::Cell<u8>, bitvec::order::Msb0> (self=0x7fffffff8098) at /home/kimchi/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/src/slice/iter.rs:724
724                                             = unsafe { self.slice.split_at_unchecked(len - size) };
#0  0x00007ffff7bb39f3 in bitvec::slice::iter::{impl#52}::next_back<core::cell::Cell<u8>, bitvec::order::Msb0> (self=0x7fffffff8098) at /home/kimchi/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/src/slice/iter.rs:724
#1  0x00007ffff7bb01f8 in core::iter::adapters::map::{impl#3}::next_back<*const bitvec::slice::BitSlice<core::cell::Cell<u8>, bitvec::order::Msb0>, bitvec::slice::iter::Chunks<core::cell::Cell<u8>, bitvec::order::Msb0>, bitvec::slice::specialization::msb0::{impl#0}::sp_copy_within_unchecked::{closure_env#0}<u8, core::ops::range::RangeTo<usize>>> (self=0x7fffffff8098) at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/core/src/iter/adapters/map.rs:145
#2  0x00007ffff7be9008 in core::iter::adapters::zip::{impl#3}::next_back<core::iter::adapters::map::Map<bitvec::slice::iter::Chunks<core::cell::Cell<u8>, bitvec::order::Msb0>, bitvec::slice::specialization::msb0::{impl#0}::sp_copy_within_unchecked::{closure_env#0}<u8, core::ops::range::RangeTo<usize>>>, core::iter::adapters::map::Map<bitvec::slice::iter::Chunks<core::cell::Cell<u8>, bitvec::order::Msb0>, bitvec::slice::specialization::msb0::{impl#0}::sp_copy_within_unchecked::{closure_env#1}<u8, core::ops::range::RangeTo<usize>>>> (self=0x7fffffff8098) at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/core/src/iter/adapters/zip.rs:188
#3  0x00007ffff7be9437 in core::iter::adapters::zip::{impl#2}::next_back<core::iter::adapters::map::Map<bitvec::slice::iter::Chunks<core::cell::Cell<u8>, bitvec::order::Msb0>, bitvec::slice::specialization::msb0::{impl#0}::sp_copy_within_unchecked::{closure_env#0}<u8, core::ops::range::RangeTo<usize>>>, core::iter::adapters::map::Map<bitvec::slice::iter::Chunks<core::cell::Cell<u8>, bitvec::order::Msb0>, bitvec::slice::specialization::msb0::{impl#0}::sp_copy_within_unchecked::{closure_env#1}<u8, core::ops::range::RangeTo<usize>>>> (self=0x7fffffff8098) at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/core/src/iter/adapters/zip.rs:116
#4  0x00007ffff7bbb4fa in wyz::bidi::{impl#1}::next<core::iter::adapters::zip::Zip<core::iter::adapters::map::Map<bitvec::slice::iter::Chunks<core::cell::Cell<u8>, bitvec::order::Msb0>, bitvec::slice::specialization::msb0::{impl#0}::sp_copy_within_unchecked::{closure_env#0}<u8, core::ops::range::RangeTo<usize>>>, core::iter::adapters::map::Map<bitvec::slice::iter::Chunks<core::cell::Cell<u8>, bitvec::order::Msb0>, bitvec::slice::specialization::msb0::{impl#0}::sp_copy_within_unchecked::{closure_env#1}<u8, core::ops::range::RangeTo<usize>>>>> (self=0x7fffffff8098) at /home/kimchi/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wyz-0.5.1/src/bidi.rs:98
#5  0x00007ffff7bbd17d in bitvec::slice::BitSlice<u8, bitvec::order::Msb0>::sp_copy_within_unchecked<u8, core::ops::range::RangeTo<usize>> (self=..., src=..., dest=1) at /home/kimchi/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/src/slice/specialization/msb0.rs:100
#6  0x00007ffff7bc0d7c in bitvec::slice::BitSlice<u8, bitvec::order::Msb0>::copy_within_unchecked<u8, bitvec::order::Msb0, core::ops::range::RangeTo<usize>> (self=..., src=..., dest=1) at /home/kimchi/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/src/slice.rs:956
#7  0x00007ffff7bc2712 in bitvec::slice::BitSlice<u8, bitvec::order::Msb0>::rotate_right<u8, bitvec::order::Msb0> (self=..., by=1) at /home/kimchi/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/src/slice/api.rs:2101
#8  0x00007ffff7be3f3a in bitvec::vec::BitVec<u8, bitvec::order::Msb0>::insert<u8, bitvec::order::Msb0> (self=0x7fffffff89d0, index=0, value=false) at /home/kimchi/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/src/vec/api.rs:506
#9  0x00007ffff7ba94e4 in deku::impls::primitive::{impl#1}::read (input=...) at src/impls/primitive.rs:123
#10 0x00007ffff7ba9c87 in deku::impls::primitive::{impl#4}::read (input=..., bit_size=...) at src/impls/primitive.rs:306
#11 0x00007ffff7b9ec84 in deku::impls::bool::{impl#0}::read<deku::ctx::BitSize> (input=..., inner_ctx=...) at /home/kimchi/.cargo/registry/src/index.crates.io-6f17d22bba15001f/deku-0.16.0/src/impls/bool.rs:18
#12 0x00007ffff7b8ac48 in hwtracer::decode::ykpt::packet_parser::packets::{impl#57}::read (__deku_input_bits=...) at hwtracer/src/decode/ykpt/packet_parser/packets.rs:212
#13 0x00007ffff7ba773c in hwtracer::decode::ykpt::packet_parser::PacketParser::parse_kind (self=0x923530, kind=hwtracer::decode::ykpt::packet_parser::packets::PacketKind::ShortTNT) at hwtracer/src/decode/ykpt/packet_parser/mod.rs:137
#14 0x00007ffff7ba7ae0 in hwtracer::decode::ykpt::packet_parser::PacketParser::parse_state (self=0x923530) at hwtracer/src/decode/ykpt/packet_parser/mod.rs:160
#15 0x00007ffff7ba806b in hwtracer::decode::ykpt::packet_parser::PacketParser::parse_packet (self=0x923530) at hwtracer/src/decode/ykpt/packet_parser/mod.rs:203
#16 0x00007ffff7ba821a in hwtracer::decode::ykpt::packet_parser::{impl#2}::next (self=0x923530) at hwtracer/src/decode/ykpt/packet_parser/mod.rs:222
#17 0x00007ffff7ba40c5 in hwtracer::decode::ykpt::YkPTBlockIterator::packet (self=0x923520) at hwtracer/src/decode/ykpt/mod.rs:726
#18 0x00007ffff7ba38f0 in hwtracer::decode::ykpt::YkPTBlockIterator::seek_tnt (self=0x923520) at hwtracer/src/decode/ykpt/mod.rs:674
#19 0x00007ffff7ba0ac2 in hwtracer::decode::ykpt::YkPTBlockIterator::follow_blockmap_successor (self=0x923520, ent=0x7ffff239fc30) at hwtracer/src/decode/ykpt/mod.rs:361
#20 0x00007ffff7ba159a in hwtracer::decode::ykpt::YkPTBlockIterator::do_next (self=0x923520) at hwtracer/src/decode/ykpt/mod.rs:436
#21 0x00007ffff7ba4f60 in hwtracer::decode::ykpt::{impl#5}::next (self=0x923520) at hwtracer/src/decode/ykpt/mod.rs:844
#22 0x00007ffff7b4bcae in core::iter::traits::iterator::{impl#0}::next<dyn core::iter::traits::iterator::Iterator<Item=core::result::Result<hwtracer::block::Block, hwtracer::errors::HWTracerError>>> (self=0x7fffffffabd8) at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/core/src/iter/traits/iterator.rs:4010
#23 0x00007ffff7b1e0ac in core::iter::adapters::enumerate::{impl#1}::next<&mut dyn core::iter::traits::iterator::Iterator<Item=core::result::Result<hwtracer::block::Block, hwtracer::errors::HWTracerError>>> (self=0x7fffffffabd8) at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/core/src/iter/adapters/enumerate.rs:47
#24 0x00007ffff7b1f15a in core::iter::traits::iterator::{impl#0}::next<core::iter::adapters::enumerate::Enumerate<&mut dyn core::iter::traits::iterator::Iterator<Item=core::result::Result<hwtracer::block::Block, hwtracer::errors::HWTracerError>>>> (self=0x7fffffffabf0) at /rustc/8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220/library/core/src/iter/traits/iterator.rs:4010
#25 0x00007ffff7b2d23b in ykrt::trace::hwt::mapper::HWTMapper::map_trace (self=0x7fffffffaf90, trace_iter=...) at ykrt/src/trace/hwt/mapper.rs:150
#26 0x00007ffff7b22a3c in ykrt::trace::hwt::{impl#3}::map (self=0x92df70, _tracer=...) at ykrt/src/trace/hwt/mod.rs:52
#27 0x00007ffff7b359c3 in ykrt::mt::{impl#0}::queue_compile_job::{closure#0} () at ykrt/src/mt.rs:386
#28 0x00007ffff7b0d048 in ykrt::mt::MT::queue_compile_job (self=0x7fffffffb7c8, utrace=..., hl_arc=..., tracer=...) at ykrt/src/mt.rs:423
#29 0x00007ffff7b0ccd2 in ykrt::mt::MT::control_point (self=0x7fffffffb7c8, loc=0x933ad0, ctrlp_vars=0x7fffffffbc38, frameaddr=0x7fffffffcaa0) at ykrt/src/mt.rs:221
#30 0x00007ffff7b04b7a in ykcapi::__ykrt_control_point (mt=0x9185d0, loc=0x933ad0, ctrlp_vars=0x7fffffffbc38, frameaddr=0x7fffffffcaa0) at ykcapi/src/lib.rs:67
#31 0x000000000086dfb3 in luaV_execute (L=<optimised out>, ci=<optimised out>) at lvm.c:1186
#32 0x00000000007ff54b in ccall (L=0x917e38, func=<optimised out>, nResults=<optimised out>, inc=<optimised out>) at ldo.c:609
#33 0x00000000007ff671 in luaD_callnoyield (L=0x917e38, func=0x918710, nResults=-1) at ldo.c:627
#34 0x00000000007eb913 in f_call (L=0x917e38, ud=<optimised out>) at lapi.c:1041
#35 0x00000000007f95f7 in luaD_rawrunprotected (L=0x917e38, f=0x7eb850 <f_call>, ud=0x7ffff2489308) at ldo.c:144
#36 0x0000000000801e16 in luaD_pcall (L=0x917e38, func=0x7eb850 <f_call>, u=0x7ffff2489308, old_top=<optimised out>, ef=<optimised out>) at ldo.c:926
#37 0x00000000007eb3fc in lua_pcallk (L=0x917e38, nargs=<optimised out>, nresults=<optimised out>, errfunc=<optimised out>, ctx=<optimised out>, k=<optimised out>) at lapi.c:1067
#38 0x00000000007dd033 in docall (L=0x917e38, narg=0, nres=-1) at lua.c:160
#39 0x00000000007dc734 in handle_script (L=0x917e38, argv=<optimised out>) at lua.c:255
#40 0x00000000007da9f3 in pmain (L=0x917e38) at lua.c:634
#41 0x00000000007fe485 in precallC (L=0x917e38, func=<optimised out>, nresults=<optimised out>, f=0x7da200 <pmain>) at ldo.c:506
#42 0x00000000007fead8 in luaD_precall (L=0x917e38, func=0x9186d0, nresults=1) at ldo.c:572
#43 0x00000000007ff48f in ccall (L=0x917e38, func=0x9186d0, nResults=1, inc=<optimised out>) at ldo.c:607
#44 0x00000000007ff671 in luaD_callnoyield (L=0x917e38, func=0x9186d0, nResults=1) at ldo.c:627
#45 0x00000000007eb913 in f_call (L=0x917e38, ud=<optimised out>) at lapi.c:1041
#46 0x00000000007f95f7 in luaD_rawrunprotected (L=0x917e38, f=0x7eb850 <f_call>, ud=0x7ffff2489058) at ldo.c:144
#47 0x0000000000801e16 in luaD_pcall (L=0x917e38, func=0x7eb850 <f_call>, u=0x7ffff2489058, old_top=<optimised out>, ef=<optimised out>) at ldo.c:926
#48 0x00000000007eb3fc in lua_pcallk (L=0x917e38, nargs=<optimised out>, nresults=<optimised out>, errfunc=<optimised out>, ctx=<optimised out>, k=<optimised out>) at lapi.c:1067
#49 0x00000000007d9ec0 in main (argc=<optimised out>, argv=<optimised out>) at lua.c:660

Versions

YkLua - buildbot-locals-test/fb6b1763b22f75715ded5b033f9b3f9f4ec9764e YK - master/a690e6eaf7253a4fa9c04bb54406c07b7efc0085

Pavel-Durov commented 11 months ago

YKLUA - 950a7ab826cdc502b91976c28f879a12a3573a3d YK - c6a0b9ca333408693a0c904bd502b1cdf0dc8d3f

Tested as:

YKD_SERIALISE_COMPILATION=1 try_repeat -v 1000 ../src/lua -e"_U=true" literals.lua
YKD_SERIALISE_COMPILATION=0 try_repeat -v 1000 ../src/lua -e"_U=true" literals.lua