Skip to content

Instantly share code, notes, and snippets.

@dogbert17
Created August 2, 2019 16:41
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/5da2ca38e9b7444c40346088f75b23c5 to your computer and use it in GitHub Desktop.
Save dogbert17/5da2ca38e9b7444c40346088f75b23c5 to your computer and use it in GitHub Desktop.
SEGV running t/spec/S17-procasync/no-runaway-file-limit.t, FSA_SIZE_DEBUG=1 and a 512 byte nursery
dogbert@dogbert-VirtualBox ~/repos/rakudo $ MVM_JIT_DISABLE=1 ./perl6-valgrind-m -Ilib t/spec/S17-procasync/no-runaway-file-limit.t
================================================================================================
This is Rakudo Perl 6 running in valgrind, a tool for debugging and profiling programs.
Running a program in valgrind usually takes *a lot* more time than running it directly,
so please be patient.
Valgrind options can be added with MVM_VALGRIND_OPTS environment variable.
This Rakudo version is 2019.07.1.105.g.082.c.09.e built on MoarVM version 2019.07.1.67.g.695.a.24.d,
running on linuxmint (18.3.Sylvia) / linux (42.16.04.1.Ubuntu.SMP.Tue.Oct.10.16.32.20.UTC.2017)
------------------------------------------------------------------------------------------------
==10859== Memcheck, a memory error detector
==10859== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==10859== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==10859== Command: /home/dogbert/repos/rakudo/install/bin/moar --execname=/home/dogbert/repos/rakudo/perl6-valgrind-m --libpath=/home/dogbert/repos/rakudo --libpath=/home/dogbert/repos/rakudo/blib --libpath= --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib /home/dogbert/repos/rakudo/perl6.moarvm --nqp-lib=/home/dogbert/repos/rakudo/blib -Ilib t/spec/S17-procasync/no-runaway-file-limit.t
==10859==
--10859-- WARNING: unhandled amd64-linux syscall: 332
--10859-- You may be able to write your own handler.
--10859-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--10859-- Nevertheless we consider this a bug. Please report
--10859-- it at http://valgrind.org/support/bug_reports.html.
1..1
==10859== Thread 5:
==10859== Syscall param epoll_pwait(sigmask) points to unaddressable byte(s)
==10859== at 0x5A7C627: epoll_pwait (epoll_pwait.c:42)
==10859== by 0x5221EFE: uv__io_poll (linux-core.c:284)
==10859== by 0x52284FF: uv_run (core.c:368)
==10859== by 0x50B06E6: enter_loop (eventloop.c:90)
==10859== by 0x50D8D06: invoke_handler (MVMCFunction.c:9)
==10859== by 0x506DFE9: thread_initial_invoke (threads.c:59)
==10859== by 0x50250A8: MVM_interp_run (interp.c:137)
==10859== by 0x506E0A7: start_thread (threads.c:87)
==10859== by 0x604F6B9: start_thread (pthread_create.c:333)
==10859== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==10859==
==10859== Thread 1:
==10859== Invalid read of size 2
==10859== at 0x502642A: MVM_interp_run (interp.c:328)
==10859== by 0x51DE865: MVM_vm_run_file (moar.c:445)
==10859== by 0x4016E6: main (main.c:302)
==10859== Address 0xcc303c4 is 12 bytes before a block of size 56 alloc'd
==10859== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==10859== by 0x5084E9B: MVM_malloc (alloc.h:2)
==10859== by 0x508575C: MVM_fixed_size_alloc (fixedsizealloc.c:178)
==10859== by 0x50D73AC: bind_key (MVMHash.c:103)
==10859== by 0x5037A17: MVM_interp_run (interp.c:2477)
==10859== by 0x51DE865: MVM_vm_run_file (moar.c:445)
==10859== by 0x4016E6: main (main.c:302)
==10859==
==10859== Invalid read of size 2
==10859== at 0x50250D5: MVM_interp_run (interp.c:168)
==10859== by 0x51DE865: MVM_vm_run_file (moar.c:445)
==10859== by 0x4016E6: main (main.c:302)
==10859== Address 0xcc303c6 is 10 bytes before a block of size 56 alloc'd
==10859== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==10859== by 0x5084E9B: MVM_malloc (alloc.h:2)
==10859== by 0x508575C: MVM_fixed_size_alloc (fixedsizealloc.c:178)
==10859== by 0x50D73AC: bind_key (MVMHash.c:103)
==10859== by 0x5037A17: MVM_interp_run (interp.c:2477)
==10859== by 0x51DE865: MVM_vm_run_file (moar.c:445)
==10859== by 0x4016E6: main (main.c:302)
==10859==
==10859== Invalid read of size 4
==10859== at 0x5020AE9: handler_can_handle (exceptions.c:83)
==10859== by 0x5020E2B: search_frame_handlers_dyn (exceptions.c:129)
==10859== by 0x5021578: search_for_handler_from (exceptions.c:309)
==10859== by 0x5023A61: MVM_exception_throw_adhoc_free_va (exceptions.c:923)
==10859== by 0x5023689: MVM_exception_throw_adhoc (exceptions.c:867)
==10859== by 0x5175114: MVM_spesh_frame_walker_get_lex (frame_walker.c:233)
==10859== by 0x5066AB0: MVM_frame_find_dynamic_using_frame_walker (frame.c:1549)
==10859== by 0x5066D32: MVM_frame_find_contextual_by_name (frame.c:1584)
==10859== by 0x506722A: MVM_frame_binddynlex (frame.c:1651)
==10859== by 0x50274A9: MVM_interp_run (interp.c:466)
==10859== by 0x51DE865: MVM_vm_run_file (moar.c:445)
==10859== by 0x4016E6: main (main.c:302)
==10859== Address 0x8 is not stack'd, malloc'd or (recently) free'd
==10859==
==10859==
==10859== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==10859== Access not within mapped region at address 0x8
==10859== at 0x5020AE9: handler_can_handle (exceptions.c:83)
==10859== by 0x5020E2B: search_frame_handlers_dyn (exceptions.c:129)
==10859== by 0x5021578: search_for_handler_from (exceptions.c:309)
==10859== by 0x5023A61: MVM_exception_throw_adhoc_free_va (exceptions.c:923)
==10859== by 0x5023689: MVM_exception_throw_adhoc (exceptions.c:867)
==10859== by 0x5175114: MVM_spesh_frame_walker_get_lex (frame_walker.c:233)
==10859== by 0x5066AB0: MVM_frame_find_dynamic_using_frame_walker (frame.c:1549)
==10859== by 0x5066D32: MVM_frame_find_contextual_by_name (frame.c:1584)
==10859== by 0x506722A: MVM_frame_binddynlex (frame.c:1651)
==10859== by 0x50274A9: MVM_interp_run (interp.c:466)
==10859== by 0x51DE865: MVM_vm_run_file (moar.c:445)
==10859== by 0x4016E6: main (main.c:302)
==10859== If you believe this happened as a result of a stack
==10859== overflow in your program's main thread (unlikely but
==10859== possible), you can try to increase the size of the
==10859== main thread stack using the --main-stacksize= flag.
==10859== The main thread stack size used in this run was 8388608.
==10859==
==10859== HEAP SUMMARY:
==10859== in use at exit: 94,391,001 bytes in 432,161 blocks
==10859== total heap usage: 1,361,125 allocs, 928,964 frees, 717,821,966 bytes allocated
==10859==
==10859== LEAK SUMMARY:
==10859== definitely lost: 576 bytes in 3 blocks
==10859== indirectly lost: 0 bytes in 0 blocks
==10859== possibly lost: 4,703,504 bytes in 83,981 blocks
==10859== still reachable: 89,686,921 bytes in 348,177 blocks
==10859== of which reachable via heuristic:
==10859== length64 : 8,769,604 bytes in 116,716 blocks
==10859== newarray : 64 bytes in 1 blocks
==10859== suppressed: 0 bytes in 0 blocks
==10859== Rerun with --leak-check=full to see details of leaked memory
==10859==
==10859== For counts of detected and suppressed errors, rerun with: -v
==10859== ERROR SUMMARY: 24867 errors from 4 contexts (suppressed: 0 from 0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment