We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
In nested mode:
================== WARNING: ThreadSanitizer: unlock of an unlocked mutex (or by a wrong thread) (pid=121151) #0 pthread_mutex_unlock /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4162 (libtsan.so.0+0x3a68e) #1 __gthread_mutex_unlock /usr/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h:779 (gamescope+0x26ec8) #2 std::mutex::unlock() /usr/include/c++/10.1.0/bits/std_mutex.h:118 (gamescope+0x27085) #3 inputSDLThreadRun() ../src/inputsdl.cpp:363 (gamescope+0x46a0f) #4 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:60 (gamescope+0x38408) #5 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:95 (gamescope+0x3835f) #6 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/10.1.0/thread:264 (gamescope+0x382c4) #7 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/10.1.0/thread:271 (gamescope+0x3826e) #8 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/10.1.0/thread:215 (gamescope+0x380ae) #9 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xcfb73) Location is global 'g_SDLInitLock' of size 40 at 0x561af0c0b420 (gamescope+0x00000010e420) Mutex M2051 (0x561af0c0b420) created at: #0 pthread_mutex_lock /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4148 (libtsan.so.0+0x528ce) #1 __gthread_mutex_lock /usr/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h:749 (gamescope+0x26e7f) #2 std::mutex::lock() /usr/include/c++/10.1.0/bits/std_mutex.h:100 (gamescope+0x2702e) #3 inputsdl_init ../src/inputsdl.cpp:440 (gamescope+0x46e74) #4 initOutput ../src/main.cpp:140 (gamescope+0x3898a) #5 main ../src/main.cpp:114 (gamescope+0x387e0) SUMMARY: ThreadSanitizer: unlock of an unlocked mutex (or by a wrong thread) /usr/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h:779 in __gthread_mutex_unlock ================== ================== WARNING: ThreadSanitizer: data race (pid=121151) Write of size 1 at 0x7b6800070034 by main thread (mutexes: write M2051): #0 memcpy /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:806 (libtsan.so.0+0x41fdd) #1 memcpy /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:798 (libtsan.so.0+0x41fdd) #2 <null> <null> (libSDL2-2.0.so.0+0x6f461) #3 main ../src/main.cpp:114 (gamescope+0x387e0) Previous write of size 8 at 0x7b6800070030 by thread T17: [failed to restore the stack] Location is heap block of size 1384 at 0x7b680006fc00 allocated by thread T17: #0 calloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:668 (libtsan.so.0+0x2ffbc) #1 <null> <null> (libSDL2-2.0.so.0+0x6ecc1) #2 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:60 (gamescope+0x38408) #3 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:95 (gamescope+0x3835f) #4 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/10.1.0/thread:264 (gamescope+0x382c4) #5 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/10.1.0/thread:271 (gamescope+0x3826e) #6 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/10.1.0/thread:215 (gamescope+0x380ae) #7 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xcfb73) Mutex M2051 (0x561af0c0b420) created at: #0 pthread_mutex_lock /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4148 (libtsan.so.0+0x528ce) #1 __gthread_mutex_lock /usr/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h:749 (gamescope+0x26e7f) #2 std::mutex::lock() /usr/include/c++/10.1.0/bits/std_mutex.h:100 (gamescope+0x2702e) #3 inputsdl_init ../src/inputsdl.cpp:440 (gamescope+0x46e74) #4 initOutput ../src/main.cpp:140 (gamescope+0x3898a) #5 main ../src/main.cpp:114 (gamescope+0x387e0) Thread T17 (tid=121171, running) created by main thread at: #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5efab) #1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xcfe49) #2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xcfe49) #3 inputsdl_init ../src/inputsdl.cpp:442 (gamescope+0x46e87) #4 initOutput ../src/main.cpp:140 (gamescope+0x3898a) #5 main ../src/main.cpp:114 (gamescope+0x387e0) SUMMARY: ThreadSanitizer: data race (/usr/lib/libSDL2-2.0.so.0+0x6f461) ================== ================== WARNING: ThreadSanitizer: data race (pid=121151) Atomic read of size 1 at 0x7b0c00024510 by main thread (mutexes: write M2051): #0 pthread_mutex_lock /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4148 (libtsan.so.0+0x528ce) #1 <null> <null> (libX11.so.6+0x2e803) #2 main ../src/main.cpp:114 (gamescope+0x387e0) Previous write of size 8 at 0x7b0c00024510 by thread T17: [failed to restore the stack] Location is heap block of size 40 at 0x7b0c00024510 allocated by thread T17: #0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:651 (libtsan.so.0+0x2fd25) #1 <null> <null> (libX11.so.6+0x2e522) #2 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:60 (gamescope+0x38408) #3 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:95 (gamescope+0x3835f) #4 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/10.1.0/thread:264 (gamescope+0x382c4) #5 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/10.1.0/thread:271 (gamescope+0x3826e) #6 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/10.1.0/thread:215 (gamescope+0x380ae) #7 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xcfb73) Mutex M2051 (0x561af0c0b420) created at: #0 pthread_mutex_lock /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4148 (libtsan.so.0+0x528ce) #1 __gthread_mutex_lock /usr/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h:749 (gamescope+0x26e7f) #2 std::mutex::lock() /usr/include/c++/10.1.0/bits/std_mutex.h:100 (gamescope+0x2702e) #3 inputsdl_init ../src/inputsdl.cpp:440 (gamescope+0x46e74) #4 initOutput ../src/main.cpp:140 (gamescope+0x3898a) #5 main ../src/main.cpp:114 (gamescope+0x387e0) Thread T17 (tid=121171, running) created by main thread at: #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5efab) #1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xcfe49) #2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xcfe49) #3 inputsdl_init ../src/inputsdl.cpp:442 (gamescope+0x46e87) #4 initOutput ../src/main.cpp:140 (gamescope+0x3898a) #5 main ../src/main.cpp:114 (gamescope+0x387e0) SUMMARY: ThreadSanitizer: data race (/usr/lib/libX11.so.6+0x2e803) ================== ================== WARNING: ThreadSanitizer: data race (pid=121151) Read of size 8 at 0x561af0c0b0f0 by thread T17: #0 updateOutputRefresh() ../src/inputsdl.cpp:340 (gamescope+0x46904) #1 inputSDLThreadRun() ../src/inputsdl.cpp:421 (gamescope+0x46d9d) #2 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:60 (gamescope+0x38408) #3 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:95 (gamescope+0x3835f) #4 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/10.1.0/thread:264 (gamescope+0x382c4) #5 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/10.1.0/thread:271 (gamescope+0x3826e) #6 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/10.1.0/thread:215 (gamescope+0x380ae) #7 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xcfb73) Previous write of size 8 at 0x561af0c0b0f0 by main thread (mutexes: write M2051): #0 initOutput ../src/main.cpp:149 (gamescope+0x38a08) #1 main ../src/main.cpp:114 (gamescope+0x387e0) As if synchronized via sleep: #0 nanosleep /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:362 (libtsan.so.0+0x639a2) #1 <null> <null> (libSDL2-2.0.so.0+0x10018b) #2 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:60 (gamescope+0x38408) #3 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:95 (gamescope+0x3835f) #4 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/10.1.0/thread:264 (gamescope+0x382c4) #5 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/10.1.0/thread:271 (gamescope+0x3826e) #6 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/10.1.0/thread:215 (gamescope+0x380ae) #7 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xcfb73) Location is global 'window' of size 8 at 0x561af0c0b0f0 (gamescope+0x00000010e0f0) Mutex M2051 (0x561af0c0b420) created at: #0 pthread_mutex_lock /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4148 (libtsan.so.0+0x528ce) #1 __gthread_mutex_lock /usr/include/c++/10.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h:749 (gamescope+0x26e7f) #2 std::mutex::lock() /usr/include/c++/10.1.0/bits/std_mutex.h:100 (gamescope+0x2702e) #3 inputsdl_init ../src/inputsdl.cpp:440 (gamescope+0x46e74) #4 initOutput ../src/main.cpp:140 (gamescope+0x3898a) #5 main ../src/main.cpp:114 (gamescope+0x387e0) Thread T17 (tid=121171, running) created by main thread at: #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5efab) #1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xcfe49) #2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xcfe49) #3 inputsdl_init ../src/inputsdl.cpp:442 (gamescope+0x46e87) #4 initOutput ../src/main.cpp:140 (gamescope+0x3898a) #5 main ../src/main.cpp:114 (gamescope+0x387e0) SUMMARY: ThreadSanitizer: data race ../src/inputsdl.cpp:340 in updateOutputRefresh() ================== ================== WARNING: ThreadSanitizer: data race (pid=121151) Read of size 4 at 0x561af0c08970 by thread T34: #0 gpuvis_trace_init ../src/gpuvis_trace_utils.h:390 (gamescope+0x195f8) #1 trace_printf_impl ../src/gpuvis_trace_utils.h:485 (gamescope+0x19c96) #2 gpuvis_trace_vprintf ../src/gpuvis_trace_utils.h:530 (gamescope+0x19f51) #3 gpuvis_trace_printf ../src/gpuvis_trace_utils.h:522 (gamescope+0x19eda) #4 steamcompmgr_main ../src/steamcompmgr.cpp:2537 (gamescope+0x2603e) #5 steamCompMgrThreadRun() ../src/main.cpp:125 (gamescope+0x3888c) #6 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:60 (gamescope+0x38408) #7 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:95 (gamescope+0x3835f) #8 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/10.1.0/thread:264 (gamescope+0x382c4) #9 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/10.1.0/thread:271 (gamescope+0x3826e) #10 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/10.1.0/thread:215 (gamescope+0x380ae) #11 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xcfb73) Previous write of size 4 at 0x561af0c08970 by thread T40: #0 gpuvis_trace_init ../src/gpuvis_trace_utils.h:398 (gamescope+0x19667) #1 trace_printf_impl ../src/gpuvis_trace_utils.h:485 (gamescope+0x19c96) #2 gpuvis_trace_vprintf ../src/gpuvis_trace_utils.h:530 (gamescope+0x19f51) #3 gpuvis_trace_printf ../src/gpuvis_trace_utils.h:522 (gamescope+0x19eda) #4 vblankThreadRun() ../src/vblankmanager.cpp:53 (gamescope+0x471b5) #5 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:60 (gamescope+0x38408) #6 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:95 (gamescope+0x3835f) #7 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/10.1.0/thread:264 (gamescope+0x382c4) #8 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/10.1.0/thread:271 (gamescope+0x3826e) #9 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/10.1.0/thread:215 (gamescope+0x380ae) #10 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xcfb73) Location is global 'g_trace_fd' of size 4 at 0x561af0c08970 (gamescope+0x00000010b970) Thread T34 (tid=121236, running) created by main thread at: #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5efab) #1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xcfe49) #2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xcfe49) #3 startSteamCompMgr ../src/main.cpp:130 (gamescope+0x388e3) #4 xwayland_ready ../src/wlserver.c:105 (gamescope+0x3b614) #5 wlr_signal_emit_safe ../subprojects/wlroots/util/signal.c:29 (gamescope+0xa8096) #6 xserver_handle_ready ../subprojects/wlroots/xwayland/xwayland.c:250 (gamescope+0xa912d) #7 <null> <null> (libwayland-server.so.0+0xa434) #8 main ../src/main.cpp:120 (gamescope+0x38821) Thread T40 (tid=121243, running) created by thread T34 at: #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5efab) #1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xcfe49) #2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xcfe49) #3 vblank_init() ../src/vblankmanager.cpp:73 (gamescope+0x473aa) #4 steamcompmgr_main ../src/steamcompmgr.cpp:2205 (gamescope+0x244b1) #5 steamCompMgrThreadRun() ../src/main.cpp:125 (gamescope+0x3888c) #6 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:60 (gamescope+0x38408) #7 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:95 (gamescope+0x3835f) #8 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/10.1.0/thread:264 (gamescope+0x382c4) #9 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/10.1.0/thread:271 (gamescope+0x3826e) #10 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/10.1.0/thread:215 (gamescope+0x380ae) #11 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xcfb73) SUMMARY: ThreadSanitizer: data race ../src/gpuvis_trace_utils.h:390 in gpuvis_trace_init ================== ================== WARNING: ThreadSanitizer: data race (pid=121151) Write of size 4 at 0x561af0c089e4 by thread T17: #0 updateOutputRefresh() ../src/inputsdl.cpp:343 (gamescope+0x4694f) #1 inputSDLThreadRun() ../src/inputsdl.cpp:421 (gamescope+0x46d9d) #2 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:60 (gamescope+0x38408) #3 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:95 (gamescope+0x3835f) #4 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/10.1.0/thread:264 (gamescope+0x382c4) #5 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/10.1.0/thread:271 (gamescope+0x3826e) #6 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/10.1.0/thread:215 (gamescope+0x380ae) #7 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xcfb73) Previous read of size 4 at 0x561af0c089e4 by thread T40: #0 vblankThreadRun() ../src/vblankmanager.cpp:31 (gamescope+0x46f67) #1 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:60 (gamescope+0x38408) #2 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:95 (gamescope+0x3835f) #3 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/10.1.0/thread:264 (gamescope+0x382c4) #4 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/10.1.0/thread:271 (gamescope+0x3826e) #5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/10.1.0/thread:215 (gamescope+0x380ae) #6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xcfb73) Location is global 'g_nOutputRefresh' of size 4 at 0x561af0c089e4 (gamescope+0x00000010b9e4) Thread T17 (tid=121171, running) created by main thread at: #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5efab) #1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xcfe49) #2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xcfe49) #3 inputsdl_init ../src/inputsdl.cpp:442 (gamescope+0x46e87) #4 initOutput ../src/main.cpp:140 (gamescope+0x3898a) #5 main ../src/main.cpp:114 (gamescope+0x387e0) Thread T40 (tid=121243, running) created by thread T34 at: #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5efab) #1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xcfe49) #2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xcfe49) #3 vblank_init() ../src/vblankmanager.cpp:73 (gamescope+0x473aa) #4 steamcompmgr_main ../src/steamcompmgr.cpp:2205 (gamescope+0x244b1) #5 steamCompMgrThreadRun() ../src/main.cpp:125 (gamescope+0x3888c) #6 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:60 (gamescope+0x38408) #7 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:95 (gamescope+0x3835f) #8 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/10.1.0/thread:264 (gamescope+0x382c4) #9 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/10.1.0/thread:271 (gamescope+0x3826e) #10 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/10.1.0/thread:215 (gamescope+0x380ae) #11 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xcfb73) SUMMARY: ThreadSanitizer: data race ../src/inputsdl.cpp:343 in updateOutputRefresh() ================== ================== WARNING: ThreadSanitizer: data race (pid=121151) Read of size 4 at 0x561af0c089dc by thread T34: #0 steamcompmgr_main ../src/steamcompmgr.cpp:2582 (gamescope+0x262b6) #1 steamCompMgrThreadRun() ../src/main.cpp:125 (gamescope+0x3888c) #2 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:60 (gamescope+0x38408) #3 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:95 (gamescope+0x3835f) #4 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/10.1.0/thread:264 (gamescope+0x382c4) #5 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/10.1.0/thread:271 (gamescope+0x3826e) #6 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/10.1.0/thread:215 (gamescope+0x380ae) #7 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xcfb73) Previous write of size 4 at 0x561af0c089dc by thread T17: #0 inputSDLThreadRun() ../src/inputsdl.cpp:424 (gamescope+0x46dc6) #1 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:60 (gamescope+0x38408) #2 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/10.1.0/bits/invoke.h:95 (gamescope+0x3835f) #3 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/10.1.0/thread:264 (gamescope+0x382c4) #4 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/10.1.0/thread:271 (gamescope+0x3826e) #5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/10.1.0/thread:215 (gamescope+0x380ae) #6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xcfb73) Location is global 'g_nOutputWidth' of size 4 at 0x561af0c089dc (gamescope+0x00000010b9dc) Thread T34 (tid=121236, running) created by main thread at: #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5efab) #1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xcfe49) #2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xcfe49) #3 startSteamCompMgr ../src/main.cpp:130 (gamescope+0x388e3) #4 xwayland_ready ../src/wlserver.c:105 (gamescope+0x3b614) #5 wlr_signal_emit_safe ../subprojects/wlroots/util/signal.c:29 (gamescope+0xa8096) #6 xserver_handle_ready ../subprojects/wlroots/xwayland/xwayland.c:250 (gamescope+0xa912d) #7 <null> <null> (libwayland-server.so.0+0xa434) #8 main ../src/main.cpp:120 (gamescope+0x38821) Thread T17 (tid=121171, running) created by main thread at: #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5efab) #1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xcfe49) #2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xcfe49) #3 inputsdl_init ../src/inputsdl.cpp:442 (gamescope+0x46e87) #4 initOutput ../src/main.cpp:140 (gamescope+0x3898a) #5 main ../src/main.cpp:114 (gamescope+0x387e0) SUMMARY: ThreadSanitizer: data race ../src/steamcompmgr.cpp:2582 in steamcompmgr_main ==================
Plus a bunch of other races when cleaning up, but we're segfaulting anyway on shutdown.
The text was updated successfully, but these errors were encountered:
No branches or pull requests
In nested mode:
Plus a bunch of other races when cleaning up, but we're segfaulting anyway on shutdown.
The text was updated successfully, but these errors were encountered: