Skip to content

Instantly share code, notes, and snippets.

@dogbert17
Created July 24, 2017 11:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dogbert17/dffb56a8c0f33ba06168cd65e68bb9da to your computer and use it in GitHub Desktop.
Save dogbert17/dffb56a8c0f33ba06168cd65e68bb9da to your computer and use it in GitHub Desktop.
Spesh
dogbert@dogbert-VirtualBox ~/repos/rakudo $ make test
/usr/bin/perl t/harness5 t/01-sanity t/04-nativecall
t/01-sanity/01-literals.t ................... ok
t/01-sanity/02-op-math.t .................... ok
t/01-sanity/03-op-logic.t ................... ok
t/01-sanity/04-op-cmp.t ..................... ok
t/01-sanity/05-var.t ........................ ok
t/01-sanity/06-op-inplace.t ................. ok
t/01-sanity/07-op-string.t .................. ok
t/01-sanity/08-var-array.t .................. ok
t/01-sanity/09-end-blocks.t ................. ok
t/01-sanity/10-regex.t ...................... ok
t/01-sanity/11-tap.t ........................ ok
t/01-sanity/12-counter.t .................... ok
t/01-sanity/13-equal.t ...................... ok
t/01-sanity/14-if.t ......................... ok
t/01-sanity/15-sub.t ........................ ok
t/01-sanity/16-eqv.t ........................ ok
t/01-sanity/17-isa.t ........................ ok
t/01-sanity/18-simple-multisubs.t ........... ok
t/01-sanity/19-say.t ........................ ok
t/01-sanity/20-defined.t .................... ok
t/01-sanity/21-try.t ........................ ok
t/01-sanity/53-transpose.t .................. ok
t/01-sanity/55-use-trace.t .................. ok
t/01-sanity/98-test-deprecated.t ............ ok
t/01-sanity/99-test-basic.t ................. ok
t/04-nativecall/01-argless.t ................ ok
t/04-nativecall/02-simple-args.t ............ ok
t/04-nativecall/03-simple-returns.t ......... ok
t/04-nativecall/04-pointers.t ............... ok
t/04-nativecall/05-arrays.t ................. ok
t/04-nativecall/06-struct.t ................. ok
t/04-nativecall/07-writebarrier.t ........... ok
t/04-nativecall/08-callbacks.t .............. ok
t/04-nativecall/09-nativecast.t ............. ok
t/04-nativecall/10-cglobals.t ............... ok
t/04-nativecall/11-cpp.t .................... ok
t/04-nativecall/12-sizeof.t ................. ok
t/04-nativecall/13-cpp-mangling.t ........... ok
t/04-nativecall/13-union.t .................. ok
t/04-nativecall/14-rw-attrs.t ............... ok
t/04-nativecall/15-rw-args.t ................ ok
t/04-nativecall/16-rt125408.t ............... ok
t/04-nativecall/16-rt125729.t ............... ok
t/04-nativecall/17-libnames.t ............... ok
t/04-nativecall/18-routine-sig-sanity.t ..... ok
t/04-nativecall/19-function-pointers.t ...... ok
t/04-nativecall/20-concurrent.t ............. ok
t/04-nativecall/21-callback-other-thread.t .. Dubious, test returned 1 (wstat 256, 0x100)
Failed 7/9 subtests
Test Summary Report
-------------------
t/04-nativecall/21-callback-other-thread.t (Wstat: 256 Tests: 2 Failed: 0)
Non-zero exit status: 1
Parse errors: Bad plan. You planned 9 tests but ran 2.
Files=48, Tests=618, 142 wallclock secs ( 0.12 usr 0.09 sys + 155.94 cusr 5.90 csys = 162.05 CPU)
Result: FAIL
make: *** [m-coretest5] Error 1
dogbert@dogbert-VirtualBox ~/repos/rakudo $ make t/04-nativecall/21-callback-other-thread.t
rm -f -- perl6
cp -- perl6-m perl6
chmod -- 755 perl6
/usr/bin/perl t/harness5 --fudge --moar --keep-exit-code --verbosity=1 t/04-nativecall/21-callback-other-thread.t
t/04-nativecall/21-callback-other-thread.t ..
1..9
ok 1 - Sanity check: Calling callback on thread that set it works
=================================================================
==18688== ERROR: AddressSanitizer: heap-buffer-overflow on address 0x4b6d9100 at pc 0x4177cf3b bp 0xbfb9f758 sp 0xbfb9f74c
READ of size 2 at 0x4b6d9100 thread T0
ok 2 - Calling callback on another thread works (0)
#0 0x4177cf3a in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:113
#1 0x41ae2ae4 in MVM_vm_run_file /home/dogbert/repos/rakudo/nqp/MoarVM/src/moar.c:333
#2 0x804944c in main /home/dogbert/repos/rakudo/nqp/MoarVM/src/main.c:247
#3 0x42279af2 (/lib/i386-linux-gnu/libc.so.6+0x19af2)
#4 0x8048b80 in _start (/home/dogbert/repos/rakudo/install/bin/moar+0x8048b80)
0x4b6d9100 is located 0 bytes to the right of 4096-byte region [0x4b6d8100,0x4b6d9100)
allocated by thread T1 here:
#0 0x400579b4 (/usr/lib/i386-linux-gnu/libasan.so.0+0x169b4)
#1 0x419e8cea in MVM_realloc /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/alloc.h:20
#2 0x419e8e30 in ensure_space /home/dogbert/repos/rakudo/nqp/MoarVM/src/spesh/codegen.c:30
#3 0x419e90e5 in write_int16 /home/dogbert/repos/rakudo/nqp/MoarVM/src/spesh/codegen.c:44
#4 0x419ea213 in write_instructions /home/dogbert/repos/rakudo/nqp/MoarVM/src/spesh/codegen.c:144
#5 0x419ebe45 in MVM_spesh_codegen /home/dogbert/repos/rakudo/nqp/MoarVM/src/spesh/codegen.c:276
#6 0x419ed46a in MVM_spesh_candidate_add /home/dogbert/repos/rakudo/nqp/MoarVM/src/spesh/candidate.c:70
#7 0x41a2a874 in worker /home/dogbert/repos/rakudo/nqp/MoarVM/src/spesh/worker.c:13
#8 0x418fcd3b in invoke_handler /home/dogbert/repos/rakudo/nqp/MoarVM/src/6model/reprs/MVMCFunction.c:9
#9 0x4182d131 in thread_initial_invoke /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:57
#10 0x4177cef3 in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:88
#11 0x4182d314 in start_thread /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:81
#12 0x41b12e66 in uv__thread_start /home/dogbert/repos/rakudo/nqp/MoarVM/3rdparty/libuv/src/unix/thread.c:49
#13 0x4234e3ed (/lib/i386-linux-gnu/libc.so.6+0xee3ed)
Thread T1 created by T0 here:
#0 0x4004b1d0 (/usr/lib/i386-linux-gnu/libasan.so.0+0xa1d0)
#1 0x41b12ec0 in uv_thread_create /home/dogbert/repos/rakudo/nqp/MoarVM/3rdparty/libuv/src/unix/thread.c:66
#2 0x41a2afd7 in MVM_spesh_worker_setup /home/dogbert/repos/rakudo/nqp/MoarVM/src/spesh/worker.c:118
#3 0x41ae22c9 in MVM_vm_create_instance /home/dogbert/repos/rakudo/nqp/MoarVM/src/moar.c:278
#4 0x8049341 in main /home/dogbert/repos/rakudo/nqp/MoarVM/src/main.c:230
#5 0x42279af2 (/lib/i386-linux-gnu/libc.so.6+0x19af2)
SUMMARY: AddressSanitizer: heap-buffer-overflow /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:113 MVM_interp_run
Shadow bytes around the buggy address:
0x296db1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x296db1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x296db1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x296db200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x296db210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x296db220:[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x296db230: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x296db240: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x296db250: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x296db260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x296db270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
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
==18688== ABORTING
Dubious, test returned 1 (wstat 256, 0x100)
Failed 7/9 subtests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment