Skip to content

Instantly share code, notes, and snippets.

@dogbert17
Last active February 26, 2017 19:39
Show Gist options
  • Save dogbert17/0200459af7ea31aea7acbfbf1ed2f6f1 to your computer and use it in GitHub Desktop.
Save dogbert17/0200459af7ea31aea7acbfbf1ed2f6f1 to your computer and use it in GitHub Desktop.
Common helgrind complaints
dogbert@dogbert-VirtualBox ~/repos/rakudo $ ./perl6-helgrind -e ''
================================================================================================
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.
This Rakudo version is 2017.02.106.gdd.4.dfb.14.d built on MoarVM version 2017.02.7.g.3.d.859008,
running on ubuntu (14.04.3.LTS.Trusty.Tahr) / linux (3.19.0.32.generic)
------------------------------------------------------------------------------------------------
==3780== Helgrind, a thread error detector
==3780== Copyright (C) 2007-2013, and GNU GPL'd, by OpenWorks LLP et al.
==3780== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==3780== Command: /home/dogbert/repos/rakudo/install/bin/moar --execname=./perl6-ugga --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib --libpath=. /home/dogbert/repos/rakudo/perl6.moarvm --nqp-lib=blib -e
==3780==
==3780== ---Thread-Announcement------------------------------------------
==3780==
==3780== Thread #1 is the program's root thread
==3780==
==3780== ----------------------------------------------------------------
==3780==
==3780== Thread #1: lock order "0x6A37EA0 before 0x5A17960" violated
==3780==
==3780== Observed (incorrect) order is: acquisition of lock at 0x5A17960
==3780== at 0x4030594: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-x86-linux.so)
==3780== by 0x4591303: pthread_mutex_lock (forward.c:192)
==3780== by 0x41C738A: uv_mutex_lock (in /home/dogbert/repos/rakudo/install/lib/libmoar.so)
==3780== by 0x413DA47: MVM_reentrantmutex_lock (ReentrantMutex.c:126)
==3780== by 0x40E4C30: MVM_bytecode_finish_frame (bytecode.c:585)
==3780== by 0x40E7517: prepare_and_verify_static_frame (frame.c:26)
==3780== by 0x40E7517: instrumentation_level_barrier (frame.c:77)
==3780== by 0x40E7F8B: MVM_frame_invoke (frame.c:327)
==3780== by 0x412B10E: invoke_handler (MVMCode.c:10)
==3780== by 0x40D56ED: MVM_interp_run (interp.c:923)
==3780== by 0x41AB195: MVM_vm_run_file (moar.c:309)
==3780== by 0x8048D38: main (main.c:201)
==3780==
==3780== followed by a later acquisition of lock at 0x6A37EA0
==3780== at 0x4030594: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-x86-linux.so)
==3780== by 0x4591303: pthread_mutex_lock (forward.c:192)
==3780== by 0x41C738A: uv_mutex_lock (in /home/dogbert/repos/rakudo/install/lib/libmoar.so)
==3780== by 0x413DA47: MVM_reentrantmutex_lock (ReentrantMutex.c:126)
==3780== by 0x41521A6: MVM_serialization_demand_object (serialization.c:2720)
==3780== by 0x414C740: MVM_sc_get_object (sc.c:182)
==3780== by 0x40E4D9A: MVM_bytecode_finish_frame (bytecode.c:683)
==3780== by 0x40E7517: prepare_and_verify_static_frame (frame.c:26)
==3780== by 0x40E7517: instrumentation_level_barrier (frame.c:77)
==3780== by 0x40E7F8B: MVM_frame_invoke (frame.c:327)
==3780== by 0x412B10E: invoke_handler (MVMCode.c:10)
==3780== by 0x40D56ED: MVM_interp_run (interp.c:923)
==3780== by 0x41AB195: MVM_vm_run_file (moar.c:309)
==3780==
==3780== Required order was established by acquisition of lock at 0x6A37EA0
==3780== at 0x4030594: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-x86-linux.so)
==3780== by 0x4591303: pthread_mutex_lock (forward.c:192)
==3780== by 0x41C738A: uv_mutex_lock (in /home/dogbert/repos/rakudo/install/lib/libmoar.so)
==3780== by 0x413DA47: MVM_reentrantmutex_lock (ReentrantMutex.c:126)
==3780== by 0x4152521: MVM_serialization_demand_stable (serialization.c:2753)
==3780== by 0x414CB94: MVM_sc_get_stable (sc.c:245)
==3780== by 0x414E080: read_object_table_entry (serialization.c:2163)
==3780== by 0x414E080: repossess (serialization.c:2939)
==3780== by 0x4155829: MVM_serialization_deserialize (serialization.c:3096)
==3780== by 0x40DED39: MVM_interp_run (interp.c:3054)
==3780== by 0x41AB195: MVM_vm_run_file (moar.c:309)
==3780== by 0x8048D38: main (main.c:201)
==3780==
==3780== followed by a later acquisition of lock at 0x5A17960
==3780== at 0x4030594: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-x86-linux.so)
==3780== by 0x4591303: pthread_mutex_lock (forward.c:192)
==3780== by 0x41C738A: uv_mutex_lock (in /home/dogbert/repos/rakudo/install/lib/libmoar.so)
==3780== by 0x413DA47: MVM_reentrantmutex_lock (ReentrantMutex.c:126)
==3780== by 0x40E4C30: MVM_bytecode_finish_frame (bytecode.c:585)
==3780== by 0x40E7517: prepare_and_verify_static_frame (frame.c:26)
==3780== by 0x40E7517: instrumentation_level_barrier (frame.c:77)
==3780== by 0x40E7C11: create_context_only (frame.c:112)
==3780== by 0x40E7C11: MVM_frame_create_context_only (frame.c:172)
==3780== by 0x4151D72: deserialize_context (serialization.c:2211)
==3780== by 0x4152CBA: deserialize_closure (serialization.c:2304)
==3780== by 0x4152CBA: MVM_serialization_demand_code (serialization.c:2800)
==3780== by 0x414D001: MVM_sc_get_code (sc.c:311)
==3780== by 0x4150927: read_code_ref (serialization.c:1802)
==3780== by 0x4150927: MVM_serialization_read_ref (serialization.c:1872)
==3780== by 0x4127895: deserialize (P6opaque.c:1109)
==3780==
==3780== Lock at 0x6A37EA0 was first observed
==3780== at 0x4030328: pthread_mutex_init (in /usr/lib/valgrind/vgpreload_helgrind-x86-linux.so)
==3780== by 0x45912BB: pthread_mutex_init (forward.c:188)
==3780== by 0x41C7332: uv_mutex_init (in /home/dogbert/repos/rakudo/install/lib/libmoar.so)
==3780== by 0x413D85C: initialize_mutex (ReentrantMutex.c:10)
==3780== by 0x413D85C: initialize (ReentrantMutex.c:31)
==3780== by 0x4119C50: MVM_repr_alloc_init (reprconv.c:16)
==3780== by 0x4132389: initialize (SCRef.c:33)
==3780== by 0x4119BCC: MVM_repr_init (reprconv.c:9)
==3780== by 0x414C119: MVM_sc_create (sc.c:11)
==3780== by 0x40E00E7: MVM_interp_run (interp.c:2938)
==3780== by 0x41AB195: MVM_vm_run_file (moar.c:309)
==3780== by 0x8048D38: main (main.c:201)
==3780== Address 0x6a37ea0 is 0 bytes inside a block of size 24 alloc'd
==3780== at 0x402B36C: malloc (in /usr/lib/valgrind/vgpreload_helgrind-x86-linux.so)
==3780== by 0x413D84A: MVM_malloc (alloc.h:2)
==3780== by 0x413D84A: initialize_mutex (ReentrantMutex.c:9)
==3780== by 0x413D84A: initialize (ReentrantMutex.c:31)
==3780== by 0x4119C50: MVM_repr_alloc_init (reprconv.c:16)
==3780== by 0x4132389: initialize (SCRef.c:33)
==3780== by 0x4119BCC: MVM_repr_init (reprconv.c:9)
==3780== by 0x414C119: MVM_sc_create (sc.c:11)
==3780== by 0x40E00E7: MVM_interp_run (interp.c:2938)
==3780== by 0x41AB195: MVM_vm_run_file (moar.c:309)
==3780== by 0x8048D38: main (main.c:201)
==3780== Block was alloc'd by thread #1
==3780==
==3780== Lock at 0x5A17960 was first observed
==3780== at 0x4030328: pthread_mutex_init (in /usr/lib/valgrind/vgpreload_helgrind-x86-linux.so)
==3780== by 0x45912BB: pthread_mutex_init (forward.c:188)
==3780== by 0x41C7332: uv_mutex_init (in /home/dogbert/repos/rakudo/install/lib/libmoar.so)
==3780== by 0x413D85C: initialize_mutex (ReentrantMutex.c:10)
==3780== by 0x413D85C: initialize (ReentrantMutex.c:31)
==3780== by 0x4119C50: MVM_repr_alloc_init (reprconv.c:16)
==3780== by 0x412C13D: initialize (MVMCompUnit.c:30)
==3780== by 0x4119C50: MVM_repr_alloc_init (reprconv.c:16)
==3780== by 0x40E43A1: MVM_cu_from_bytes (compunit.c:15)
==3780== by 0x40E4537: MVM_cu_map_from_file (compunit.c:64)
==3780== by 0x40F1ED0: MVM_load_bytecode (loadbytecode.c:71)
==3780== by 0x40DE707: MVM_interp_run (interp.c:3123)
==3780== by 0x41AB195: MVM_vm_run_file (moar.c:309)
==3780== Address 0x5a17960 is 0 bytes inside a block of size 24 alloc'd
==3780== at 0x402B36C: malloc (in /usr/lib/valgrind/vgpreload_helgrind-x86-linux.so)
==3780== by 0x413D84A: MVM_malloc (alloc.h:2)
==3780== by 0x413D84A: initialize_mutex (ReentrantMutex.c:9)
==3780== by 0x413D84A: initialize (ReentrantMutex.c:31)
==3780== by 0x4119C50: MVM_repr_alloc_init (reprconv.c:16)
==3780== by 0x412C13D: initialize (MVMCompUnit.c:30)
==3780== by 0x4119C50: MVM_repr_alloc_init (reprconv.c:16)
==3780== by 0x40E43A1: MVM_cu_from_bytes (compunit.c:15)
==3780== by 0x40E4537: MVM_cu_map_from_file (compunit.c:64)
==3780== by 0x40F1ED0: MVM_load_bytecode (loadbytecode.c:71)
==3780== by 0x40DE707: MVM_interp_run (interp.c:3123)
==3780== by 0x41AB195: MVM_vm_run_file (moar.c:309)
==3780== by 0x8048D38: main (main.c:201)
==3780== Block was alloc'd by thread #1
==3780==
==3780==
==3780==
==3780== For counts of detected and suppressed errors, rerun with: -v
==3780== Use --history-level=approx or =none to gain increased speed, at
==3780== the cost of reduced accuracy of conflicting-access information
==3780== ERROR SUMMARY: 4 errors from 1 contexts (suppressed: 0 from 0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment