Skip to content

Instantly share code, notes, and snippets.

@dogbert17
Created March 1, 2022 14:20
Show Gist options
  • Save dogbert17/ee63cc54d9f7bb712e05e0ac464e0b34 to your computer and use it in GitHub Desktop.
Save dogbert17/ee63cc54d9f7bb712e05e0ac464e0b34 to your computer and use it in GitHub Desktop.
Some tsan output
...
==================
WARNING: ThreadSanitizer: data race (pid=193074)
Read of size 1 at 0x7f83e48dbc4d by thread T4:
#0 VMArray_gc_mark src/6model/reprs/VMArray.c:90 (libmoar.so+0x36c90f)
#1 MVM_gc_mark_collectable src/gc/collect.c:412 (libmoar.so+0x322dc3)
#2 MVM_gc_root_add_gen2s_to_worklist src/gc/roots.c:350 (libmoar.so+0x31b5de)
#3 MVM_gc_collect src/gc/collect.c:136 (libmoar.so+0x31ecf6)
#4 run_gc src/gc/orchestrate.c:444 (libmoar.so+0x30b7c8)
#5 MVM_gc_enter_from_interrupt src/gc/orchestrate.c:734 (libmoar.so+0x30ceea)
#6 <null> <null> (0x7f84182faffb)
#7 MVM_interp_run src/core/interp.c:6281 (libmoar.so+0x28179d)
#8 start_thread src/core/threads.c:101 (libmoar.so+0x2bb92f)
Previous write of size 1 at 0x7f83e48dbc4d by thread T9:
#0 MVM_gc_root_add_gen2s_to_worklist src/gc/roots.c:364 (libmoar.so+0x31b705)
#1 MVM_gc_collect src/gc/collect.c:136 (libmoar.so+0x31ecf6)
#2 run_gc src/gc/orchestrate.c:444 (libmoar.so+0x30b7c8)
#3 MVM_gc_enter_from_interrupt src/gc/orchestrate.c:734 (libmoar.so+0x30ceea)
#4 MVM_interp_run src/core/interp.c:299 (libmoar.so+0x21e714)
#5 start_thread src/core/threads.c:101 (libmoar.so+0x2bb92f)
Thread T4 (tid=193080, running) created by thread T3 at:
#0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5ea79)
#1 uv_thread_create_ex <null> (libmoar.so+0x5e2944)
#2 MVM_interp_run src/core/interp.c:3792 (libmoar.so+0x2588e9)
#3 start_thread src/core/threads.c:101 (libmoar.so+0x2bb92f)
Thread T9 (tid=193085, running) created by thread T3 at:
#0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5ea79)
#1 uv_thread_create_ex <null> (libmoar.so+0x5e2944)
#2 MVM_interp_run src/core/interp.c:3792 (libmoar.so+0x2588e9)
#3 start_thread src/core/threads.c:101 (libmoar.so+0x2bb92f)
SUMMARY: ThreadSanitizer: data race src/6model/reprs/VMArray.c:90 in VMArray_gc_mark
==================
==================
WARNING: ThreadSanitizer: data race (pid=193074)
Read of size 8 at 0x7f83e4440000 by thread T9:
#0 memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:823 (libtsan.so.0+0x42313)
#1 memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:815 (libtsan.so.0+0x42313)
#2 _mi_memcpy_aligned 3rdparty/mimalloc/include/mimalloc-internal.h:1038 (libmoar.so+0x542a9e)
#3 _mi_heap_realloc_zero 3rdparty/mimalloc/src/alloc.c:635 (libmoar.so+0x560602)
#4 mi_heap_realloc 3rdparty/mimalloc/src/alloc.c:642 (libmoar.so+0x56065f)
#5 mi_realloc 3rdparty/mimalloc/src/alloc.c:671 (libmoar.so+0x5608b0)
#6 MVM_realloc src/core/alloc.h:29 (libmoar.so+0x36b8d4)
#7 set_size_internal src/6model/reprs/VMArray.c:372 (libmoar.so+0x36ea27)
#8 MVM_VMArray_push src/6model/reprs/VMArray.c:486 (libmoar.so+0x36f75c)
#9 <null> <null> (0x7f84182f10ee)
#10 MVM_interp_run src/core/interp.c:6281 (libmoar.so+0x28179d)
#11 start_thread src/core/threads.c:101 (libmoar.so+0x2bb92f)
Previous write of size 8 at 0x7f83e4440000 by thread T4:
#0 memset ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:795 (libtsan.so.0+0x3790f)
#1 memset ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:793 (libtsan.so.0+0x3790f)
#2 _mi_free_block_mt 3rdparty/mimalloc/src/alloc.c:352 (libmoar.so+0x55f364)
#3 _mi_free_block 3rdparty/mimalloc/src/alloc.c:424 (libmoar.so+0x55f923)
#4 mi_free_generic 3rdparty/mimalloc/src/alloc.c:442 (libmoar.so+0x55fa79)
#5 mi_free 3rdparty/mimalloc/src/alloc.c:505 (libmoar.so+0x55fe63)
#6 _mi_heap_realloc_zero 3rdparty/mimalloc/src/alloc.c:636 (libmoar.so+0x56060e)
#7 mi_heap_realloc 3rdparty/mimalloc/src/alloc.c:642 (libmoar.so+0x56065f)
#8 mi_realloc 3rdparty/mimalloc/src/alloc.c:671 (libmoar.so+0x5608b0)
#9 MVM_realloc src/core/alloc.h:29 (libmoar.so+0x36b8d4)
#10 set_size_internal src/6model/reprs/VMArray.c:372 (libmoar.so+0x36ea27)
#11 MVM_VMArray_push src/6model/reprs/VMArray.c:486 (libmoar.so+0x36f75c)
#12 <null> <null> (0x7f84182f10ee)
#13 MVM_interp_run src/core/interp.c:6281 (libmoar.so+0x28179d)
#14 start_thread src/core/threads.c:101 (libmoar.so+0x2bb92f)
Thread T9 (tid=193085, running) created by thread T3 at:
#0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5ea79)
#1 uv_thread_create_ex <null> (libmoar.so+0x5e2944)
#2 MVM_interp_run src/core/interp.c:3792 (libmoar.so+0x2588e9)
#3 start_thread src/core/threads.c:101 (libmoar.so+0x2bb92f)
Thread T4 (tid=193080, running) created by thread T3 at:
#0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5ea79)
#1 uv_thread_create_ex <null> (libmoar.so+0x5e2944)
#2 MVM_interp_run src/core/interp.c:3792 (libmoar.so+0x2588e9)
#3 start_thread src/core/threads.c:101 (libmoar.so+0x2bb92f)
SUMMARY: ThreadSanitizer: data race 3rdparty/mimalloc/include/mimalloc-internal.h:1038 in _mi_memcpy_aligned
==================
mimalloc: error: double free detected of block 0x7f83e4440000 with size 5120
ThreadSanitizer:DEADLYSIGNAL
==193074==ERROR: ThreadSanitizer: SEGV on unknown address (pc 0x7f8423fa5561 bp 0x7f83ebfbceb0 sp 0x7f83ebfbce58 T193085)
==193074==The signal is caused by a READ memory access.
==193074==Hint: this fault was caused by a dereference of a high value address (see register values below). Dissassemble the provided pc to learn which register was used.
ThreadSanitizer:DEADLYSIGNAL
#0 __tsan_read8 ../../../../src/libsanitizer/tsan/tsan_rtl.cpp:838 (libtsan.so.0+0x93561)
#1 mi_block_nextx 3rdparty/mimalloc/include/mimalloc-internal.h:662 (libmoar.so+0x5423c5)
#2 _mi_heap_delayed_free 3rdparty/mimalloc/src/page.c:282 (libmoar.so+0x558dac)
#3 _mi_malloc_generic 3rdparty/mimalloc/src/page.c:860 (libmoar.so+0x55b82b)
#4 mi_heap_malloc 3rdparty/mimalloc/src/alloc.c:106 (libmoar.so+0x55e53c)
#5 mi_malloc 3rdparty/mimalloc/src/alloc.c:119 (libmoar.so+0x55e615)
#6 MVM_malloc src/core/alloc.h:3 (libmoar.so+0x30e2aa)
#7 MVM_gc_worklist_create src/gc/worklist.c:8 (libmoar.so+0x30e66d)
#8 MVM_gc_collect src/gc/collect.c:54 (libmoar.so+0x31e594)
#9 run_gc src/gc/orchestrate.c:444 (libmoar.so+0x30b7c8)
#10 MVM_gc_enter_from_interrupt src/gc/orchestrate.c:734 (libmoar.so+0x30ceea)
#11 MVM_gc_allocate_nursery src/gc/allocation.c:21 (libmoar.so+0x30d776)
#12 <null> <null> (0x7f84182f0089)
ThreadSanitizer can not provide additional info.
SUMMARY: ThreadSanitizer: SEGV ../../../../src/libsanitizer/tsan/tsan_rtl.cpp:838 in __tsan_read8
==193074==ABORTING
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment