Skip to content
New issue

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

ThreadSanitizer: data race #61

Open
calcitem opened this issue Oct 25, 2020 · 0 comments
Open

ThreadSanitizer: data race #61

calcitem opened this issue Oct 25, 2020 · 0 comments

Comments

@calcitem
Copy link
Owner

commit 8d6fc55

==================
WARNING: ThreadSanitizer: data race (pid=26002)
  Read of size 2 at 0x7b4400000310 by thread T1:
    #0 Thread::adjustDepth() /home/calcitem/Sanmill/src/thread.cpp:434:18 (fishmill+0x4d8a7e)
    #1 Thread::search() /home/calcitem/Sanmill/src/search.cpp:92:15 (fishmill+0x4d3a53)
    #2 Thread::idle_loop() /home/calcitem/Sanmill/src/thread.cpp:148:17 (fishmill+0x4d7098)
    #3 void std::__invoke_impl<void, void (Thread::*)(), Thread*>(std::__invoke_memfun_deref, void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:73:14 (fishmill+0x4db65b)
    #4 std::__invoke_result<void (Thread::*)(), Thread*>::type std::__invoke<void (Thread::*)(), Thread*>(void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:95:14 (fishmill+0x4db48d)
    #5 void std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:244:13 (fishmill+0x4db425)
    #6 std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::operator()() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:251:11 (fishmill+0x4db3b8)
    #7 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> > >::_M_run() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:195:13 (fishmill+0x4dafac)
    #8 <null> <null> (libstdc++.so.6+0xd086f)

  Previous write of size 8 at 0x7b4400000310 by main thread:
    #0 memset /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:774:3 (fishmill+0x437ff9)
    #1 Position::set(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Thread*) /home/calcitem/Sanmill/src/position.cpp:205:5 (fishmill+0x4ca73e)
    #2 (anonymous namespace)::go(Position*) /home/calcitem/Sanmill/src/uci.cpp:120:14 (fishmill+0x4de788)
    #3 UCI::loop(int, char**) /home/calcitem/Sanmill/src/uci.cpp:219:41 (fishmill+0x4ddfff)
    #4 main /home/calcitem/Sanmill/src/main.cpp:47:3 (fishmill+0x4c1149)

  Location is heap block of size 320 at 0x7b4400000280 allocated by main thread:
    #0 operator new(unsigned long) /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:65:3 (fishmill+0x4b7dbd)
    #1 UCI::loop(int, char**) /home/calcitem/Sanmill/src/uci.cpp:185:21 (fishmill+0x4ddba1)
    #2 main /home/calcitem/Sanmill/src/main.cpp:47:3 (fishmill+0x4c1149)

  Thread T1 (tid=26013, running) created by main thread at:
    #0 pthread_create /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:975:3 (fishmill+0x42e4d5)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd0b04)
    #2 Thread::Thread(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:52:13 (fishmill+0x4d6e66)
    #3 MainThread::MainThread(unsigned long) /home/calcitem/Sanmill/src/./thread.h:159:19 (fishmill+0x4d9e82)
    #4 ThreadPool::set(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:643:23 (fishmill+0x4d90b6)
    #5 main /home/calcitem/Sanmill/src/main.cpp:44:11 (fishmill+0x4c1126)

SUMMARY: ThreadSanitizer: data race /home/calcitem/Sanmill/src/thread.cpp:434:18 in Thread::adjustDepth()
==================
==================
WARNING: ThreadSanitizer: data race (pid=26002)
  Write of size 1 at 0x7b3000000caa by main thread:
    #0 (anonymous namespace)::go(Position*) /home/calcitem/Sanmill/src/uci.cpp:121:28 (fishmill+0x4de7c3)
    #1 UCI::loop(int, char**) /home/calcitem/Sanmill/src/uci.cpp:219:41 (fishmill+0x4ddfff)
    #2 main /home/calcitem/Sanmill/src/main.cpp:47:3 (fishmill+0x4c1149)

  Previous read of size 1 at 0x7b3000000caa by thread T1:
    #0 Thread::idle_loop() /home/calcitem/Sanmill/src/thread.cpp:133:62 (fishmill+0x4d7064)
    #1 void std::__invoke_impl<void, void (Thread::*)(), Thread*>(std::__invoke_memfun_deref, void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:73:14 (fishmill+0x4db65b)
    #2 std::__invoke_result<void (Thread::*)(), Thread*>::type std::__invoke<void (Thread::*)(), Thread*>(void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:95:14 (fishmill+0x4db48d)
    #3 void std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:244:13 (fishmill+0x4db425)
    #4 std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::operator()() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:251:11 (fishmill+0x4db3b8)
    #5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> > >::_M_run() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:195:13 (fishmill+0x4dafac)
    #6 <null> <null> (libstdc++.so.6+0xd086f)

  Location is heap block of size 184 at 0x7b3000000c00 allocated by main thread:
    #0 operator new(unsigned long) /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:65:3 (fishmill+0x4b7dbd)
    #1 ThreadPool::set(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:643:19 (fishmill+0x4d90a3)
    #2 main /home/calcitem/Sanmill/src/main.cpp:44:11 (fishmill+0x4c1126)

  Thread T1 (tid=26013, running) created by main thread at:
    #0 pthread_create /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:975:3 (fishmill+0x42e4d5)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd0b04)
    #2 Thread::Thread(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:52:13 (fishmill+0x4d6e66)
    #3 MainThread::MainThread(unsigned long) /home/calcitem/Sanmill/src/./thread.h:159:19 (fishmill+0x4d9e82)
    #4 ThreadPool::set(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:643:23 (fishmill+0x4d90b6)
    #5 main /home/calcitem/Sanmill/src/main.cpp:44:11 (fishmill+0x4c1126)

SUMMARY: ThreadSanitizer: data race /home/calcitem/Sanmill/src/uci.cpp:121:28 in (anonymous namespace)::go(Position*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=26002)
  Read of size 8 at 0x7b44000002f0 by thread T1:
    #0 Position::key() const /home/calcitem/Sanmill/src/./position.h:285:15 (fishmill+0x4d297a)
    #1 search(Position*, Sanmill::Stack<Position, 128ul>&, signed char, signed char, Value, Value, Move&) /home/calcitem/Sanmill/src/search.cpp:221:23 (fishmill+0x4d416b)
    #2 MTDF(Position*, Sanmill::Stack<Position, 128ul>&, Value, signed char, signed char, Move&) /home/calcitem/Sanmill/src/search.cpp:440:13 (fishmill+0x4d4040)
    #3 Thread::search() /home/calcitem/Sanmill/src/search.cpp:186:13 (fishmill+0x4d3e6a)
    #4 Thread::idle_loop() /home/calcitem/Sanmill/src/thread.cpp:148:17 (fishmill+0x4d7098)
    #5 void std::__invoke_impl<void, void (Thread::*)(), Thread*>(std::__invoke_memfun_deref, void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:73:14 (fishmill+0x4db65b)
    #6 std::__invoke_result<void (Thread::*)(), Thread*>::type std::__invoke<void (Thread::*)(), Thread*>(void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:95:14 (fishmill+0x4db48d)
    #7 void std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:244:13 (fishmill+0x4db425)
    #8 std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::operator()() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:251:11 (fishmill+0x4db3b8)
    #9 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> > >::_M_run() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:195:13 (fishmill+0x4dafac)
    #10 <null> <null> (libstdc++.so.6+0xd086f)

  Previous write of size 8 at 0x7b44000002f0 by main thread:
    #0 memset /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:774:3 (fishmill+0x437ff9)
    #1 Position::set(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Thread*) /home/calcitem/Sanmill/src/position.cpp:205:5 (fishmill+0x4ca73e)
    #2 (anonymous namespace)::go(Position*) /home/calcitem/Sanmill/src/uci.cpp:120:14 (fishmill+0x4de788)
    #3 UCI::loop(int, char**) /home/calcitem/Sanmill/src/uci.cpp:219:41 (fishmill+0x4ddfff)
    #4 main /home/calcitem/Sanmill/src/main.cpp:47:3 (fishmill+0x4c1149)

  Location is heap block of size 320 at 0x7b4400000280 allocated by main thread:
    #0 operator new(unsigned long) /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:65:3 (fishmill+0x4b7dbd)
    #1 UCI::loop(int, char**) /home/calcitem/Sanmill/src/uci.cpp:185:21 (fishmill+0x4ddba1)
    #2 main /home/calcitem/Sanmill/src/main.cpp:47:3 (fishmill+0x4c1149)

  Thread T1 (tid=26013, running) created by main thread at:
    #0 pthread_create /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:975:3 (fishmill+0x42e4d5)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd0b04)
    #2 Thread::Thread(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:52:13 (fishmill+0x4d6e66)
    #3 MainThread::MainThread(unsigned long) /home/calcitem/Sanmill/src/./thread.h:159:19 (fishmill+0x4d9e82)
    #4 ThreadPool::set(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:643:23 (fishmill+0x4d90b6)
    #5 main /home/calcitem/Sanmill/src/main.cpp:44:11 (fishmill+0x4c1126)

SUMMARY: ThreadSanitizer: data race /home/calcitem/Sanmill/src/./position.h:285:15 in Position::key() const
==================
==================
WARNING: ThreadSanitizer: data race (pid=26002)
  Read of size 1 at 0x7b44000002d8 by thread T1:
    #0 Position::side_to_move() const /home/calcitem/Sanmill/src/./position.h:253:12 (fishmill+0x4c0be6)
    #1 ExtMove* generate<(GenType)3>(Position&, ExtMove*) /home/calcitem/Sanmill/src/movegen.cpp:37:20 (fishmill+0x4c4fd7)
    #2 MovePicker::next_move() /home/calcitem/Sanmill/src/movepick.cpp:176:16 (fishmill+0x4c77f5)
    #3 search(Position*, Sanmill::Stack<Position, 128ul>&, signed char, signed char, Value, Value, Move&) /home/calcitem/Sanmill/src/search.cpp:320:24 (fishmill+0x4d431a)
    #4 MTDF(Position*, Sanmill::Stack<Position, 128ul>&, Value, signed char, signed char, Move&) /home/calcitem/Sanmill/src/search.cpp:440:13 (fishmill+0x4d4040)
    #5 Thread::search() /home/calcitem/Sanmill/src/search.cpp:186:13 (fishmill+0x4d3e6a)
    #6 Thread::idle_loop() /home/calcitem/Sanmill/src/thread.cpp:148:17 (fishmill+0x4d7098)
    #7 void std::__invoke_impl<void, void (Thread::*)(), Thread*>(std::__invoke_memfun_deref, void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:73:14 (fishmill+0x4db65b)
    #8 std::__invoke_result<void (Thread::*)(), Thread*>::type std::__invoke<void (Thread::*)(), Thread*>(void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:95:14 (fishmill+0x4db48d)
    #9 void std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:244:13 (fishmill+0x4db425)
    #10 std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::operator()() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:251:11 (fishmill+0x4db3b8)
    #11 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> > >::_M_run() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:195:13 (fishmill+0x4dafac)
    #12 <null> <null> (libstdc++.so.6+0xd086f)

  Previous write of size 8 at 0x7b44000002d8 by main thread:
    #0 memset /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:774:3 (fishmill+0x437ff9)
    #1 Position::set(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Thread*) /home/calcitem/Sanmill/src/position.cpp:205:5 (fishmill+0x4ca73e)
    #2 (anonymous namespace)::go(Position*) /home/calcitem/Sanmill/src/uci.cpp:120:14 (fishmill+0x4de788)
    #3 UCI::loop(int, char**) /home/calcitem/Sanmill/src/uci.cpp:219:41 (fishmill+0x4ddfff)
    #4 main /home/calcitem/Sanmill/src/main.cpp:47:3 (fishmill+0x4c1149)

  Location is heap block of size 320 at 0x7b4400000280 allocated by main thread:
    #0 operator new(unsigned long) /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:65:3 (fishmill+0x4b7dbd)
    #1 UCI::loop(int, char**) /home/calcitem/Sanmill/src/uci.cpp:185:21 (fishmill+0x4ddba1)
    #2 main /home/calcitem/Sanmill/src/main.cpp:47:3 (fishmill+0x4c1149)

  Thread T1 (tid=26013, running) created by main thread at:
    #0 pthread_create /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:975:3 (fishmill+0x42e4d5)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd0b04)
    #2 Thread::Thread(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:52:13 (fishmill+0x4d6e66)
    #3 MainThread::MainThread(unsigned long) /home/calcitem/Sanmill/src/./thread.h:159:19 (fishmill+0x4d9e82)
    #4 ThreadPool::set(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:643:23 (fishmill+0x4d90b6)
    #5 main /home/calcitem/Sanmill/src/main.cpp:44:11 (fishmill+0x4c1126)

SUMMARY: ThreadSanitizer: data race /home/calcitem/Sanmill/src/./position.h:253:12 in Position::side_to_move() const
==================
==================
WARNING: ThreadSanitizer: data race (pid=26002)
  Read of size 1 at 0x7b4400000291 by thread T1:
    #0 ExtMove* generate<(GenType)3>(Position&, ExtMove*) /home/calcitem/Sanmill/src/movegen.cpp:49:25 (fishmill+0x4c50e7)
    #1 MovePicker::next_move() /home/calcitem/Sanmill/src/movepick.cpp:176:16 (fishmill+0x4c77f5)
    #2 search(Position*, Sanmill::Stack<Position, 128ul>&, signed char, signed char, Value, Value, Move&) /home/calcitem/Sanmill/src/search.cpp:320:24 (fishmill+0x4d431a)
    #3 MTDF(Position*, Sanmill::Stack<Position, 128ul>&, Value, signed char, signed char, Move&) /home/calcitem/Sanmill/src/search.cpp:440:13 (fishmill+0x4d4040)
    #4 Thread::search() /home/calcitem/Sanmill/src/search.cpp:186:13 (fishmill+0x4d3e6a)
    #5 Thread::idle_loop() /home/calcitem/Sanmill/src/thread.cpp:148:17 (fishmill+0x4d7098)
    #6 void std::__invoke_impl<void, void (Thread::*)(), Thread*>(std::__invoke_memfun_deref, void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:73:14 (fishmill+0x4db65b)
    #7 std::__invoke_result<void (Thread::*)(), Thread*>::type std::__invoke<void (Thread::*)(), Thread*>(void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:95:14 (fishmill+0x4db48d)
    #8 void std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:244:13 (fishmill+0x4db425)
    #9 std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::operator()() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:251:11 (fishmill+0x4db3b8)
    #10 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> > >::_M_run() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:195:13 (fishmill+0x4dafac)
    #11 <null> <null> (libstdc++.so.6+0xd086f)

  Previous write of size 8 at 0x7b4400000290 by main thread:
    #0 memset /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:774:3 (fishmill+0x437ff9)
    #1 Position::set(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Thread*) /home/calcitem/Sanmill/src/position.cpp:205:5 (fishmill+0x4ca73e)
    #2 (anonymous namespace)::go(Position*) /home/calcitem/Sanmill/src/uci.cpp:120:14 (fishmill+0x4de788)
    #3 UCI::loop(int, char**) /home/calcitem/Sanmill/src/uci.cpp:219:41 (fishmill+0x4ddfff)
    #4 main /home/calcitem/Sanmill/src/main.cpp:47:3 (fishmill+0x4c1149)

  Location is heap block of size 320 at 0x7b4400000280 allocated by main thread:
    #0 operator new(unsigned long) /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:65:3 (fishmill+0x4b7dbd)
    #1 UCI::loop(int, char**) /home/calcitem/Sanmill/src/uci.cpp:185:21 (fishmill+0x4ddba1)
    #2 main /home/calcitem/Sanmill/src/main.cpp:47:3 (fishmill+0x4c1149)

  Thread T1 (tid=26013, running) created by main thread at:
    #0 pthread_create /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:975:3 (fishmill+0x42e4d5)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd0b04)
    #2 Thread::Thread(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:52:13 (fishmill+0x4d6e66)
    #3 MainThread::MainThread(unsigned long) /home/calcitem/Sanmill/src/./thread.h:159:19 (fishmill+0x4d9e82)
    #4 ThreadPool::set(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:643:23 (fishmill+0x4d90b6)
    #5 main /home/calcitem/Sanmill/src/main.cpp:44:11 (fishmill+0x4c1126)

SUMMARY: ThreadSanitizer: data race /home/calcitem/Sanmill/src/movegen.cpp:49:25 in ExtMove* generate<(GenType)3>(Position&, ExtMove*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=26002)
  Read of size 8 at 0x7b4400000280 by thread T1:
    #0 memcpy /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:802:5 (fishmill+0x4382fd)
    #1 Sanmill::Stack<Position, 128ul>::push(Position const&) /home/calcitem/Sanmill/src/./stack.h:81:9 (fishmill+0x4d516e)
    #2 search(Position*, Sanmill::Stack<Position, 128ul>&, signed char, signed char, Value, Value, Move&) /home/calcitem/Sanmill/src/search.cpp:344:12 (fishmill+0x4d4449)
    #3 MTDF(Position*, Sanmill::Stack<Position, 128ul>&, Value, signed char, signed char, Move&) /home/calcitem/Sanmill/src/search.cpp:440:13 (fishmill+0x4d4040)
    #4 Thread::search() /home/calcitem/Sanmill/src/search.cpp:186:13 (fishmill+0x4d3e6a)
    #5 Thread::idle_loop() /home/calcitem/Sanmill/src/thread.cpp:148:17 (fishmill+0x4d7098)
    #6 void std::__invoke_impl<void, void (Thread::*)(), Thread*>(std::__invoke_memfun_deref, void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:73:14 (fishmill+0x4db65b)
    #7 std::__invoke_result<void (Thread::*)(), Thread*>::type std::__invoke<void (Thread::*)(), Thread*>(void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:95:14 (fishmill+0x4db48d)
    #8 void std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:244:13 (fishmill+0x4db425)
    #9 std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::operator()() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:251:11 (fishmill+0x4db3b8)
    #10 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> > >::_M_run() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:195:13 (fishmill+0x4dafac)
    #11 <null> <null> (libstdc++.so.6+0xd086f)

  Previous write of size 8 at 0x7b4400000280 by main thread:
    #0 memset /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:774:3 (fishmill+0x437ff9)
    #1 Position::set(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Thread*) /home/calcitem/Sanmill/src/position.cpp:205:5 (fishmill+0x4ca73e)
    #2 (anonymous namespace)::go(Position*) /home/calcitem/Sanmill/src/uci.cpp:120:14 (fishmill+0x4de788)
    #3 UCI::loop(int, char**) /home/calcitem/Sanmill/src/uci.cpp:219:41 (fishmill+0x4ddfff)
    #4 main /home/calcitem/Sanmill/src/main.cpp:47:3 (fishmill+0x4c1149)

  Location is heap block of size 320 at 0x7b4400000280 allocated by main thread:
    #0 operator new(unsigned long) /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:65:3 (fishmill+0x4b7dbd)
    #1 UCI::loop(int, char**) /home/calcitem/Sanmill/src/uci.cpp:185:21 (fishmill+0x4ddba1)
    #2 main /home/calcitem/Sanmill/src/main.cpp:47:3 (fishmill+0x4c1149)

  Thread T1 (tid=26013, running) created by main thread at:
    #0 pthread_create /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:975:3 (fishmill+0x42e4d5)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd0b04)
    #2 Thread::Thread(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:52:13 (fishmill+0x4d6e66)
    #3 MainThread::MainThread(unsigned long) /home/calcitem/Sanmill/src/./thread.h:159:19 (fishmill+0x4d9e82)
    #4 ThreadPool::set(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:643:23 (fishmill+0x4d90b6)
    #5 main /home/calcitem/Sanmill/src/main.cpp:44:11 (fishmill+0x4c1126)

SUMMARY: ThreadSanitizer: data race /home/calcitem/Sanmill/src/./stack.h:81:9 in Sanmill::Stack<Position, 128ul>::push(Position const&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=26002)
  Read of size 8 at 0x7b44000002d0 by thread T1:
    #0 memcpy /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:802:5 (fishmill+0x4382fd)
    #1 Sanmill::Stack<Position, 128ul>::push(Position const&) /home/calcitem/Sanmill/src/./stack.h:81:9 (fishmill+0x4d516e)
    #2 search(Position*, Sanmill::Stack<Position, 128ul>&, signed char, signed char, Value, Value, Move&) /home/calcitem/Sanmill/src/search.cpp:344:12 (fishmill+0x4d4449)
    #3 MTDF(Position*, Sanmill::Stack<Position, 128ul>&, Value, signed char, signed char, Move&) /home/calcitem/Sanmill/src/search.cpp:440:13 (fishmill+0x4d4040)
    #4 Thread::search() /home/calcitem/Sanmill/src/search.cpp:186:13 (fishmill+0x4d3e6a)
    #5 Thread::idle_loop() /home/calcitem/Sanmill/src/thread.cpp:148:17 (fishmill+0x4d7098)
    #6 void std::__invoke_impl<void, void (Thread::*)(), Thread*>(std::__invoke_memfun_deref, void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:73:14 (fishmill+0x4db65b)
    #7 std::__invoke_result<void (Thread::*)(), Thread*>::type std::__invoke<void (Thread::*)(), Thread*>(void (Thread::*&&)(), Thread*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:95:14 (fishmill+0x4db48d)
    #8 void std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:244:13 (fishmill+0x4db425)
    #9 std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> >::operator()() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:251:11 (fishmill+0x4db3b8)
    #10 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (Thread::*)(), Thread*> > >::_M_run() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:195:13 (fishmill+0x4dafac)
    #11 <null> <null> (libstdc++.so.6+0xd086f)

  Previous write of size 4 at 0x7b44000002d4 by main thread:
    #0 Position::set(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Thread*) /home/calcitem/Sanmill/src/position.cpp:273:13 (fishmill+0x4cad19)
    #1 (anonymous namespace)::go(Position*) /home/calcitem/Sanmill/src/uci.cpp:120:14 (fishmill+0x4de788)
    #2 UCI::loop(int, char**) /home/calcitem/Sanmill/src/uci.cpp:219:41 (fishmill+0x4ddfff)
    #3 main /home/calcitem/Sanmill/src/main.cpp:47:3 (fishmill+0x4c1149)

  Location is heap block of size 320 at 0x7b4400000280 allocated by main thread:
    #0 operator new(unsigned long) /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:65:3 (fishmill+0x4b7dbd)
    #1 UCI::loop(int, char**) /home/calcitem/Sanmill/src/uci.cpp:185:21 (fishmill+0x4ddba1)
    #2 main /home/calcitem/Sanmill/src/main.cpp:47:3 (fishmill+0x4c1149)

  Thread T1 (tid=26013, running) created by main thread at:
    #0 pthread_create /home/amd/JENKINS/workspace/AOCC_2_0_0/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:975:3 (fishmill+0x42e4d5)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd0b04)
    #2 Thread::Thread(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:52:13 (fishmill+0x4d6e66)
    #3 MainThread::MainThread(unsigned long) /home/calcitem/Sanmill/src/./thread.h:159:19 (fishmill+0x4d9e82)
    #4 ThreadPool::set(unsigned long) /home/calcitem/Sanmill/src/thread.cpp:643:23 (fishmill+0x4d90b6)
    #5 main /home/calcitem/Sanmill/src/main.cpp:44:11 (fishmill+0x4c1126)

SUMMARY: ThreadSanitizer: data race /home/calcitem/Sanmill/src/./stack.h:81:9 in Sanmill::Stack<Position, 128ul>::push(Position const&)
calcitem added a commit that referenced this issue Oct 27, 2020
calcitem added a commit that referenced this issue Oct 27, 2020
See: #61

此为临时性修改方案,是否可靠待确认。
calcitem added a commit that referenced this issue Oct 27, 2020
See: #61

此为临时性修改方案,是否可靠待确认。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant