Last active
August 17, 2017 22:03
-
-
Save dogbert17/cb6b2556c0880f80bdfeab82393f654f to your computer and use it in GitHub Desktop.
ASAN barfage
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dogbert@dogbert-VirtualBox ~/repos/rakudo $ ./perl6-m -v | |
This is Rakudo version 2017.07-194-ga30ce6bca built on MoarVM version 2017.07-453-gc4ee23b4 | |
implementing Perl 6.c | |
dogbert@dogbert-VirtualBox ~/repos/rakudo $ ./perl6-m t/spec/S17-lowlevel/lock.t | |
1..23 | |
ok 1 - Running code under lock | |
ok 2 - Running another piece of code under lock | |
ok 3 - code that dies under lock throws | |
ok 4 - Code that dies in run does release the lock | |
ok 5 - Even from another thread | |
ok 6 - Lock is at least somewhat effective | |
ok 7 - Condition variable worked | |
================================================================= | |
==19088== ERROR: AddressSanitizer: heap-use-after-free on address 0xb4f30514 at pc 0xb57f4ee4 bp 0xb1175a18 sp 0xb1175a0c | |
READ of size 4 at 0xb4f30514 thread T1 | |
#0 0xb57f4ee3 in push /home/dogbert/repos/rakudo/nqp/MoarVM/src/6model/reprs/VMArray.c:461 | |
#1 0xb57ddffa in MVM_repr_push_o /home/dogbert/repos/rakudo/nqp/MoarVM/src/6model/reprconv.c:342 | |
#2 0xb59699d6 in worker /home/dogbert/repos/rakudo/nqp/MoarVM/src/spesh/worker.c:13 | |
#3 0xb5809fa4 in invoke_handler /home/dogbert/repos/rakudo/nqp/MoarVM/src/6model/reprs/MVMCFunction.c:9 | |
#4 0xb571dc0f in thread_initial_invoke /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:59 | |
#5 0xb565e003 in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:88 | |
#6 0xb571ddfa in start_thread /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:83 | |
#7 0xb5a4dd16 in uv__thread_start (//home/dogbert/repos/rakudo/nqp/MoarVM/../../install/lib/libmoar.so+0x54ed16) | |
#8 0xb61c29c6 (/usr/lib/i386-linux-gnu/libasan.so.0+0x1a9c6) | |
#9 0xb61b22ac (/usr/lib/i386-linux-gnu/libasan.so.0+0xa2ac) | |
#10 0xb5337f71 in start_thread (/lib/i386-linux-gnu/libpthread.so.0+0x6f71) | |
#11 0xb543b3ed (/lib/i386-linux-gnu/libc.so.6+0xee3ed) | |
0xb4f30514 is located 20 bytes inside of 480-byte region [0xb4f30500,0xb4f306e0) | |
freed by thread T0 here: | |
#0 0xb61be774 (/usr/lib/i386-linux-gnu/libasan.so.0+0x16774) | |
#1 0xb56e4a81 in MVM_free /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/alloc.h:40 | |
#2 0xb56e56ac in MVM_tc_destroy /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threadcontext.c:112 | |
#3 0xb576f050 in finish_gc /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/orchestrate.c:210 | |
#4 0xb576f9dd in run_gc /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/orchestrate.c:358 | |
#5 0xb577057f in MVM_gc_enter_from_allocator /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/orchestrate.c:466 | |
#6 0xb571e7ff in try_join /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:188 | |
#7 0xb571e8f2 in MVM_thread_join /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:194 | |
#8 0xb56b2d65 in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:3736 | |
#9 0xb5a2d160 in MVM_vm_run_file /home/dogbert/repos/rakudo/nqp/MoarVM/src/moar.c:356 | |
#10 0x8049461 in main /home/dogbert/repos/rakudo/nqp/MoarVM/src/main.c:255 | |
#11 0xb5366af2 (/lib/i386-linux-gnu/libc.so.6+0x19af2) | |
previously allocated by thread T0 here: | |
#0 0xb61be905 (/usr/lib/i386-linux-gnu/libasan.so.0+0x16905) | |
#1 0xb56e4a3b in MVM_calloc /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/alloc.h:11 | |
#2 0xb56e4aaf in MVM_tc_create /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threadcontext.c:8 | |
#3 0xb571d8c2 in MVM_thread_new /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:29 | |
#4 0xb56b2bda in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:3731 | |
#5 0xb5a2d160 in MVM_vm_run_file /home/dogbert/repos/rakudo/nqp/MoarVM/src/moar.c:356 | |
#6 0x8049461 in main /home/dogbert/repos/rakudo/nqp/MoarVM/src/main.c:255 | |
#7 0xb5366af2 (/lib/i386-linux-gnu/libc.so.6+0x19af2) | |
Thread T1 created by T0 here: | |
#0 0xb61b21d0 (/usr/lib/i386-linux-gnu/libasan.so.0+0xa1d0) | |
#1 0xb5a4dd70 in uv_thread_create (//home/dogbert/repos/rakudo/nqp/MoarVM/../../install/lib/libmoar.so+0x54ed70) | |
#2 0xb596a0ef in MVM_spesh_worker_setup /home/dogbert/repos/rakudo/nqp/MoarVM/src/spesh/worker.c:149 | |
#3 0xb5a2c93d in MVM_vm_create_instance /home/dogbert/repos/rakudo/nqp/MoarVM/src/moar.c:301 | |
#4 0x8049356 in main /home/dogbert/repos/rakudo/nqp/MoarVM/src/main.c:238 | |
#5 0xb5366af2 (/lib/i386-linux-gnu/libc.so.6+0x19af2) | |
SUMMARY: AddressSanitizer: heap-use-after-free /home/dogbert/repos/rakudo/nqp/MoarVM/src/6model/reprs/VMArray.c:461 push | |
Shadow bytes around the buggy address: | |
0x369e6050: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd | |
0x369e6060: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd | |
0x369e6070: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd | |
0x369e6080: fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa fa | |
0x369e6090: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa | |
=>0x369e60a0: fd fd[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd | |
0x369e60b0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd | |
0x369e60c0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd | |
0x369e60d0: fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa fa | |
0x369e60e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa | |
0x369e60f0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd | |
Shadow byte legend (one shadow byte represents 8 application bytes): | |
Addressable: 00 | |
Partially addressable: 01 02 03 04 05 06 07 | |
Heap left redzone: fa | |
Heap righ redzone: fb | |
Freed Heap region: fd | |
Stack left redzone: f1 | |
Stack mid redzone: f2 | |
Stack right redzone: f3 | |
Stack partial redzone: f4 | |
Stack after return: f5 | |
Stack use after scope: f8 | |
Global redzone: f9 | |
Global init order: f6 | |
Poisoned by user: f7 | |
ASan internal: fe | |
==19088== ABORTING | |
Another run: | |
dogbert@dogbert-VirtualBox ~/repos/rakudo $ MVM_SPESH_DISABLE=1 ./perl6-m t/spec/S17-lowlevel/lock.t | |
1..23 | |
ok 1 - Running code under lock | |
ok 2 - Running another piece of code under lock | |
ok 3 - code that dies under lock throws | |
ok 4 - Code that dies in run does release the lock | |
ok 5 - Even from another thread | |
================================================================= | |
==24196== ERROR: AddressSanitizer: heap-use-after-free on address 0xb4e3b414 at pc 0xb56e4bf3 bp 0xa1febb88 sp 0xa1febb7c | |
READ of size 4 at 0xb4e3b414 thread T3 | |
#0 0xb56e4bf2 in MVM_gc_allocate_object /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/allocation.c:86 | |
#1 0xb5784274 in allocate /home/dogbert/repos/rakudo/nqp/MoarVM/src/6model/reprs/P6opaque.c:60 | |
#2 0xb55b5e59 in MVM_args_get_pos_obj /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/args.c:289 | |
#3 0xb55e52ed in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:1057 | |
#4 0xb5690dfa in start_thread /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:83 | |
#5 0xb59c0d16 in uv__thread_start (//home/dogbert/repos/rakudo/nqp/MoarVM/../../install/lib/libmoar.so+0x54ed16) | |
#6 0xb61359c6 (/usr/lib/i386-linux-gnu/libasan.so.0+0x1a9c6) | |
#7 0xb61252ac (/usr/lib/i386-linux-gnu/libasan.so.0+0xa2ac) | |
#8 0xb52aaf71 in start_thread (/lib/i386-linux-gnu/libpthread.so.0+0x6f71) | |
#9 0xb53ae3ed (/lib/i386-linux-gnu/libc.so.6+0xee3ed) | |
0xb4e3b414 is located 20 bytes inside of 480-byte region [0xb4e3b400,0xb4e3b5e0) | |
freed by thread T0 here: | |
#0 0xb6131774 (/usr/lib/i386-linux-gnu/libasan.so.0+0x16774) | |
#1 0xb5657a81 in MVM_free /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/alloc.h:40 | |
#2 0xb56586ac in MVM_tc_destroy /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threadcontext.c:112 | |
#3 0xb56e2050 in finish_gc /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/orchestrate.c:210 | |
#4 0xb56e29dd in run_gc /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/orchestrate.c:358 | |
#5 0xb56e357f in MVM_gc_enter_from_allocator /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/orchestrate.c:466 | |
#6 0xb56917ff in try_join /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:188 | |
#7 0xb56918f2 in MVM_thread_join /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:194 | |
#8 0xb5625d65 in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:3736 | |
#9 0xb59a0160 in MVM_vm_run_file /home/dogbert/repos/rakudo/nqp/MoarVM/src/moar.c:356 | |
#10 0x8049461 in main /home/dogbert/repos/rakudo/nqp/MoarVM/src/main.c:255 | |
#11 0xb52d9af2 (/lib/i386-linux-gnu/libc.so.6+0x19af2) | |
previously allocated by thread T0 here: | |
#0 0xb6131905 (/usr/lib/i386-linux-gnu/libasan.so.0+0x16905) | |
#1 0xb5657a3b in MVM_calloc /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/alloc.h:11 | |
#2 0xb5657aaf in MVM_tc_create /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threadcontext.c:8 | |
#3 0xb56908c2 in MVM_thread_new /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:29 | |
#4 0xb5625bda in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:3731 | |
#5 0xb59a0160 in MVM_vm_run_file /home/dogbert/repos/rakudo/nqp/MoarVM/src/moar.c:356 | |
#6 0x8049461 in main /home/dogbert/repos/rakudo/nqp/MoarVM/src/main.c:255 | |
#7 0xb52d9af2 (/lib/i386-linux-gnu/libc.so.6+0x19af2) | |
Thread T3 created by T0 here: | |
#0 0xb61251d0 (/usr/lib/i386-linux-gnu/libasan.so.0+0xa1d0) | |
#1 0xb59c0d70 in uv_thread_create (//home/dogbert/repos/rakudo/nqp/MoarVM/../../install/lib/libmoar.so+0x54ed70) | |
#2 0xb562d7eb in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:4051 | |
#3 0xb59a0160 in MVM_vm_run_file /home/dogbert/repos/rakudo/nqp/MoarVM/src/moar.c:356 | |
#4 0x8049461 in main /home/dogbert/repos/rakudo/nqp/MoarVM/src/main.c:255 | |
#5 0xb52d9af2 (/lib/i386-linux-gnu/libc.so.6+0x19af2) | |
SUMMARY: AddressSanitizer: heap-use-after-free /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/allocation.c:86 MVM_gc_allocate_object | |
Shadow bytes around the buggy address: | |
0x369c7630: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd | |
0x369c7640: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd | |
0x369c7650: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd | |
0x369c7660: fd fd fd fd fd fd fd fd fd fd fa fa fa fa fa fa | |
0x369c7670: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa | |
=>0x369c7680: fd fd[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd | |
0x369c7690: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd | |
0x369c76a0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd | |
0x369c76b0: fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa fa | |
0x369c76c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa | |
0x369c76d0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd | |
Shadow byte legend (one shadow byte represents 8 application bytes): | |
Addressable: 00 | |
Partially addressable: 01 02 03 04 05 06 07 | |
Heap left redzone: fa | |
Heap righ redzone: fb | |
Freed Heap region: fd | |
Stack left redzone: f1 | |
Stack mid redzone: f2 | |
Stack right redzone: f3 | |
Stack partial redzone: f4 | |
Stack after return: f5 | |
Stack use after scope: f8 | |
Global redzone: f9 | |
Global init order: f6 | |
Poisoned by user: f7 | |
ASan internal: fe | |
==24196== ABORTING |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment