Advertisement
MystMe

Untitled

Feb 20th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 31.13 KB | None | 0 0
  1. [dmitry@DmitryPC build]$ cmake .. -DDEBUG=1
  2. -- The C compiler identification is GNU 7.3.0
  3. -- The CXX compiler identification is GNU 7.3.0
  4. -- Check for working C compiler: /usr/bin/cc
  5. -- Check for working C compiler: /usr/bin/cc -- works
  6. -- Detecting C compiler ABI info
  7. -- Detecting C compiler ABI info - done
  8. -- Detecting C compile features
  9. -- Detecting C compile features - done
  10. -- Check for working CXX compiler: /usr/bin/c++
  11. -- Check for working CXX compiler: /usr/bin/c++ -- works
  12. -- Detecting CXX compiler ABI info
  13. -- Detecting CXX compiler ABI info - done
  14. -- Detecting CXX compile features
  15. -- Detecting CXX compile features - done
  16. -- Configuring done
  17. -- Generating done
  18. -- Build files have been written to: /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/build
  19. [dmitry@DmitryPC build]$ make run
  20. Scanning dependencies of target unit_test
  21. [  8%] Building CXX object CMakeFiles/unit_test.dir/unit_test.cpp.o
  22. In file included from /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:1:0:
  23. /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/../../../../solutions/1-mutex/tournament-tree/solution.hpp: In member function ‘void tpcc::solutions::TournamentTreeLock::Lock(size_t)’:
  24. /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/../../../../solutions/1-mutex/tournament-tree/solution.hpp:24:62: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  25.                    for(int another_thread = 1; another_thread < num; another_thread++) {
  26.                                                ~~~~~~~~~~~~~~~^~~~~
  27. /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/../../../../solutions/1-mutex/tournament-tree/solution.hpp:25:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  28.                      if(another_thread!=thread_index && levels[another_thread] >= level && victim[level] == thread_index) {
  29.                         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  30. [ 16%] Building CXX object CMakeFiles/unit_test.dir/home/dmitry/Code/parallel_programming/tpcc-course-2018/common/source/backoff.cpp.o
  31. [ 25%] Building CXX object CMakeFiles/unit_test.dir/home/dmitry/Code/parallel_programming/tpcc-course-2018/common/source/test_framework.cpp.o
  32. [ 33%] Linking CXX executable bin/unit_test
  33. [ 33%] Built target unit_test
  34. Scanning dependencies of target run_unit_test
  35. Test 'LockUnlock' from test suite 'UnitTest' running...
  36. PASSED
  37. Test 'SequentialLockUnlock' from test suite 'UnitTest' running...
  38. PASSED
  39. Test 'ConcurrentLock' from test suite 'UnitTest' running...
  40. Affinity is enabled (UNIX)
  41. Affinity is enabled (UNIX)
  42. PASSED
  43. ALL 3 TEST(S) PASSED!
  44. [ 33%] Built target run_unit_test
  45. Scanning dependencies of target run_all_unit_tests
  46. [ 33%] Built target run_all_unit_tests
  47. Scanning dependencies of target run__run_all_stress_tests__run_all_unit_tests
  48. [ 33%] Built target run__run_all_stress_tests__run_all_unit_tests
  49. Scanning dependencies of target asan_test
  50. [ 41%] Building CXX object CMakeFiles/asan_test.dir/unit_test.cpp.o
  51. In file included from /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:1:0:
  52. /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/../../../../solutions/1-mutex/tournament-tree/solution.hpp: In member function ‘void tpcc::solutions::TournamentTreeLock::Lock(size_t)’:
  53. /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/../../../../solutions/1-mutex/tournament-tree/solution.hpp:24:62: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  54.                    for(int another_thread = 1; another_thread < num; another_thread++) {
  55.                                                ~~~~~~~~~~~~~~~^~~~~
  56. /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/../../../../solutions/1-mutex/tournament-tree/solution.hpp:25:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  57.                      if(another_thread!=thread_index && levels[another_thread] >= level && victim[level] == thread_index) {
  58.                         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  59. [ 50%] Building CXX object CMakeFiles/asan_test.dir/home/dmitry/Code/parallel_programming/tpcc-course-2018/common/source/backoff.cpp.o
  60. [ 58%] Building CXX object CMakeFiles/asan_test.dir/home/dmitry/Code/parallel_programming/tpcc-course-2018/common/source/test_framework.cpp.o
  61. [ 66%] Linking CXX executable bin/asan_test
  62. [ 66%] Built target asan_test
  63. Scanning dependencies of target run_asan_test
  64. Test 'LockUnlock' from test suite 'UnitTest' running...
  65. PASSED
  66. Test 'SequentialLockUnlock' from test suite 'UnitTest' running...
  67. PASSED
  68. Test 'ConcurrentLock' from test suite 'UnitTest' running...
  69. Affinity is enabled (UNIX)
  70. Affinity is enabled (UNIX)
  71. PASSED
  72. ALL 3 TEST(S) PASSED!
  73. [ 66%] Built target run_asan_test
  74. Scanning dependencies of target tsan_test
  75. [ 75%] Building CXX object CMakeFiles/tsan_test.dir/unit_test.cpp.o
  76. In file included from /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:1:0:
  77. /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/../../../../solutions/1-mutex/tournament-tree/solution.hpp: In member function ‘void tpcc::solutions::TournamentTreeLock::Lock(size_t)’:
  78. /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/../../../../solutions/1-mutex/tournament-tree/solution.hpp:24:62: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  79.                    for(int another_thread = 1; another_thread < num; another_thread++) {
  80.                                                ~~~~~~~~~~~~~~~^~~~~
  81. /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/../../../../solutions/1-mutex/tournament-tree/solution.hpp:25:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  82.                      if(another_thread!=thread_index && levels[another_thread] >= level && victim[level] == thread_index) {
  83.                         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  84. [ 83%] Building CXX object CMakeFiles/tsan_test.dir/home/dmitry/Code/parallel_programming/tpcc-course-2018/common/source/backoff.cpp.o
  85. [ 91%] Building CXX object CMakeFiles/tsan_test.dir/home/dmitry/Code/parallel_programming/tpcc-course-2018/common/source/test_framework.cpp.o
  86. [100%] Linking CXX executable bin/tsan_test
  87. [100%] Built target tsan_test
  88. Scanning dependencies of target run_tsan_test
  89. Test 'LockUnlock' from test suite 'UnitTest' running...
  90. PASSED
  91. Test 'SequentialLockUnlock' from test suite 'UnitTest' running...
  92. PASSED
  93. Test 'ConcurrentLock' from test suite 'UnitTest' running...
  94. Affinity is enabled (UNIX)
  95. Affinity is enabled (UNIX)
  96. ==================
  97. WARNING: ThreadSanitizer: data race (pid=10907)
  98.   Write of size 8 at 0x7b0400000008 by thread T2:
  99.     #0 tpcc::solutions::TournamentTreeLock::Lock(unsigned long) <null> (tsan_test+0x000000004431)
  100.     #1 void tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::Lock<unsigned long>(unsigned long) <null> (tsan_test+0x0000000069d3)
  101.     #2 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:31 (tsan_test+0x000000003116)
  102.     #3 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:36 (tsan_test+0x000000003236)
  103.     #4 _M_invoke /usr/include/c++/7.3.0/bits/std_function.h:316 (tsan_test+0x000000003b7c)
  104.     #5 std::function<void ()>::operator()() const <null> (tsan_test+0x00000000612a)
  105.     #6 tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}::operator()() const <null> (tsan_test+0x000000004cea)
  106.     #7 void std::__invoke_impl<void, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::__invoke_other, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x00000000ac56)
  107.     #8 std::__invoke_result<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>::type std::__invoke<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::__invoke_result&&, (tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&)...) <null> (tsan_test+0x000000009fa0)
  108.     #9 decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) <null> (tsan_test+0x00000000e516)
  109.     #10 std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::operator()() <null> (tsan_test+0x00000000e388)
  110.     #11 std::thread::_State_impl<std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> > >::_M_run() <null> (tsan_test+0x00000000e1e4)
  111.     #12 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83 (libstdc++.so.6+0x0000000b9b9e)
  112.  
  113.   Previous read of size 8 at 0x7b0400000008 by thread T1:
  114.     #0 tpcc::solutions::TournamentTreeLock::Lock(unsigned long) <null> (tsan_test+0x0000000044c6)
  115.     #1 void tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::Lock<unsigned long>(unsigned long) <null> (tsan_test+0x0000000069d3)
  116.     #2 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:31 (tsan_test+0x000000003116)
  117.     #3 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:35 (tsan_test+0x0000000031c6)
  118.     #4 _M_invoke /usr/include/c++/7.3.0/bits/std_function.h:316 (tsan_test+0x000000003995)
  119.     #5 std::function<void ()>::operator()() const <null> (tsan_test+0x00000000612a)
  120.     #6 tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}::operator()() const <null> (tsan_test+0x000000004cea)
  121.     #7 void std::__invoke_impl<void, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::__invoke_other, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x00000000ac56)
  122.     #8 std::__invoke_result<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>::type std::__invoke<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::__invoke_result&&, (tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&)...) <null> (tsan_test+0x000000009fa0)
  123.     #9 decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) <null> (tsan_test+0x00000000e516)
  124.     #10 std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::operator()() <null> (tsan_test+0x00000000e388)
  125.     #11 std::thread::_State_impl<std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> > >::_M_run() <null> (tsan_test+0x00000000e1e4)
  126.     #12 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83 (libstdc++.so.6+0x0000000b9b9e)
  127.  
  128.   Location is heap block of size 16 at 0x7b0400000000 allocated by main thread:
  129.     #0 operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:39 (libtsan.so.0+0x0000000701fc)
  130.     #1 __gnu_cxx::new_allocator<unsigned long>::allocate(unsigned long, void const*) <null> (tsan_test+0x00000000aacc)
  131.     #2 std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) <null> (tsan_test+0x000000009e4a)
  132.     #3 std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_M_allocate(unsigned long) <null> (tsan_test+0x000000008f38)
  133.     #4 std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_M_create_storage(unsigned long) <null> (tsan_test+0x00000000a7b3)
  134.     #5 std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_Vector_base(unsigned long, std::allocator<unsigned long> const&) <null> (tsan_test+0x00000000982a)
  135.     #6 std::vector<unsigned long, std::allocator<unsigned long> >::vector(unsigned long, unsigned long const&, std::allocator<unsigned long> const&) <null> (tsan_test+0x000000008891)
  136.     #7 std::vector<unsigned long, std::allocator<unsigned long> >::_M_fill_assign(unsigned long, unsigned long const&) <null> (tsan_test+0x0000000071a3)
  137.     #8 std::vector<unsigned long, std::allocator<unsigned long> >::assign(unsigned long, unsigned long const&) <null> (tsan_test+0x000000005d6d)
  138.     #9 tpcc::solutions::TournamentTreeLock::TournamentTreeLock(unsigned long) <null> (tsan_test+0x000000004347)
  139.     #10 tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::MutexTester<int>(int) <null> (tsan_test+0x000000006922)
  140.     #11 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:27 (tsan_test+0x0000000032a7)
  141.     #12 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a93)
  142.     #13 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f26c)
  143.     #14 RunTests(std::vector<std::shared_ptr<ITest>, std::allocator<std::shared_ptr<ITest> > > const&) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:117 (tsan_test+0x00000000f3ae)
  144.     #15 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x000000003703)
  145.  
  146.   Thread T2 (tid=10910, running) created by main thread at:
  147.     #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:900 (libtsan.so.0+0x000000028874)
  148.     #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:662 (libstdc++.so.6+0x0000000b9e95)
  149.     #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:163 (libstdc++.so.6+0x0000000b9e95)
  150.     #3 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::thread*, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000009165)
  151.     #4 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::allocator<std::thread>&, std::thread*, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000007d62)
  152.     #5 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000007e4e)
  153.     #6 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000006340)
  154.     #7 tpcc::TaskExecutor::Run(std::function<void ()> const&) <null> (tsan_test+0x000000004e51)
  155.     #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:36 (tsan_test+0x0000000033b8)
  156.     #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a93)
  157.     #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f26c)
  158.     #11 RunTests(std::vector<std::shared_ptr<ITest>, std::allocator<std::shared_ptr<ITest> > > const&) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:117 (tsan_test+0x00000000f3ae)
  159.     #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x000000003703)
  160.  
  161.   Thread T1 (tid=10909, finished) created by main thread at:
  162.     #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:900 (libtsan.so.0+0x000000028874)
  163.     #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:662 (libstdc++.so.6+0x0000000b9e95)
  164.     #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:163 (libstdc++.so.6+0x0000000b9e95)
  165.     #3 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::thread*, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000009165)
  166.     #4 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::allocator<std::thread>&, std::thread*, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000007d62)
  167.     #5 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000007e4e)
  168.     #6 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000006340)
  169.     #7 tpcc::TaskExecutor::Run(std::function<void ()> const&) <null> (tsan_test+0x000000004e51)
  170.     #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:35 (tsan_test+0x00000000335b)
  171.     #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a93)
  172.     #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f26c)
  173.     #11 RunTests(std::vector<std::shared_ptr<ITest>, std::allocator<std::shared_ptr<ITest> > > const&) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:117 (tsan_test+0x00000000f3ae)
  174.     #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x000000003703)
  175.  
  176. SUMMARY: ThreadSanitizer: data race (/home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/build/bin/tsan_test+0x4431) in tpcc::solutions::TournamentTreeLock::Lock(unsigned long)
  177. ==================
  178. ==================
  179. WARNING: ThreadSanitizer: data race (pid=10907)
  180.   Write of size 8 at 0x7b0400000018 by thread T2:
  181.     #0 tpcc::solutions::TournamentTreeLock::Lock(unsigned long) <null> (tsan_test+0x00000000445a)
  182.     #1 void tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::Lock<unsigned long>(unsigned long) <null> (tsan_test+0x0000000069d3)
  183.     #2 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:31 (tsan_test+0x000000003116)
  184.     #3 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:36 (tsan_test+0x000000003236)
  185.     #4 _M_invoke /usr/include/c++/7.3.0/bits/std_function.h:316 (tsan_test+0x000000003b7c)
  186.     #5 std::function<void ()>::operator()() const <null> (tsan_test+0x00000000612a)
  187.     #6 tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}::operator()() const <null> (tsan_test+0x000000004cea)
  188.     #7 void std::__invoke_impl<void, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::__invoke_other, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x00000000ac56)
  189.     #8 std::__invoke_result<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>::type std::__invoke<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::__invoke_result&&, (tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&)...) <null> (tsan_test+0x000000009fa0)
  190.     #9 decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) <null> (tsan_test+0x00000000e516)
  191.     #10 std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::operator()() <null> (tsan_test+0x00000000e388)
  192.     #11 std::thread::_State_impl<std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> > >::_M_run() <null> (tsan_test+0x00000000e1e4)
  193.     #12 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83 (libstdc++.so.6+0x0000000b9b9e)
  194.  
  195.   Previous write of size 8 at 0x7b0400000018 by thread T1:
  196.     #0 tpcc::solutions::TournamentTreeLock::Lock(unsigned long) <null> (tsan_test+0x00000000445a)
  197.     #1 void tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::Lock<unsigned long>(unsigned long) <null> (tsan_test+0x0000000069d3)
  198.     #2 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:31 (tsan_test+0x000000003116)
  199.     #3 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:35 (tsan_test+0x0000000031c6)
  200.     #4 _M_invoke /usr/include/c++/7.3.0/bits/std_function.h:316 (tsan_test+0x000000003995)
  201.     #5 std::function<void ()>::operator()() const <null> (tsan_test+0x00000000612a)
  202.     #6 tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}::operator()() const <null> (tsan_test+0x000000004cea)
  203.     #7 void std::__invoke_impl<void, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::__invoke_other, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x00000000ac56)
  204.     #8 std::__invoke_result<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>::type std::__invoke<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::__invoke_result&&, (tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&)...) <null> (tsan_test+0x000000009fa0)
  205.     #9 decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) <null> (tsan_test+0x00000000e516)
  206.     #10 std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::operator()() <null> (tsan_test+0x00000000e388)
  207.     #11 std::thread::_State_impl<std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> > >::_M_run() <null> (tsan_test+0x00000000e1e4)
  208.     #12 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83 (libstdc++.so.6+0x0000000b9b9e)
  209.  
  210.   Location is heap block of size 16 at 0x7b0400000010 allocated by main thread:
  211.     #0 operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:39 (libtsan.so.0+0x0000000701fc)
  212.     #1 __gnu_cxx::new_allocator<unsigned long>::allocate(unsigned long, void const*) <null> (tsan_test+0x00000000aacc)
  213.     #2 std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) <null> (tsan_test+0x000000009e4a)
  214.     #3 std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_M_allocate(unsigned long) <null> (tsan_test+0x000000008f38)
  215.     #4 std::vector<unsigned long, std::allocator<unsigned long> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned long*, std::vector<unsigned long, std::allocator<unsigned long> > >, unsigned long, unsigned long const&) <null> (tsan_test+0x0000000077c8)
  216.     #5 std::vector<unsigned long, std::allocator<unsigned long> >::resize(unsigned long, unsigned long const&) <null> (tsan_test+0x000000005e05)
  217.     #6 tpcc::solutions::TournamentTreeLock::TournamentTreeLock(unsigned long) <null> (tsan_test+0x000000004376)
  218.     #7 tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::MutexTester<int>(int) <null> (tsan_test+0x000000006922)
  219.     #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:27 (tsan_test+0x0000000032a7)
  220.     #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a93)
  221.     #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f26c)
  222.     #11 RunTests(std::vector<std::shared_ptr<ITest>, std::allocator<std::shared_ptr<ITest> > > const&) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:117 (tsan_test+0x00000000f3ae)
  223.     #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x000000003703)
  224.  
  225.   Thread T2 (tid=10910, running) created by main thread at:
  226.     #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:900 (libtsan.so.0+0x000000028874)
  227.     #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:662 (libstdc++.so.6+0x0000000b9e95)
  228.     #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:163 (libstdc++.so.6+0x0000000b9e95)
  229.     #3 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::thread*, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000009165)
  230.     #4 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::allocator<std::thread>&, std::thread*, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000007d62)
  231.     #5 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000007e4e)
  232.     #6 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000006340)
  233.     #7 tpcc::TaskExecutor::Run(std::function<void ()> const&) <null> (tsan_test+0x000000004e51)
  234.     #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:36 (tsan_test+0x0000000033b8)
  235.     #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a93)
  236.     #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f26c)
  237.     #11 RunTests(std::vector<std::shared_ptr<ITest>, std::allocator<std::shared_ptr<ITest> > > const&) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:117 (tsan_test+0x00000000f3ae)
  238.     #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x000000003703)
  239.  
  240.   Thread T1 (tid=10909, finished) created by main thread at:
  241.     #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:900 (libtsan.so.0+0x000000028874)
  242.     #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:662 (libstdc++.so.6+0x0000000b9e95)
  243.     #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:163 (libstdc++.so.6+0x0000000b9e95)
  244.     #3 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::thread*, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000009165)
  245.     #4 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(std::allocator<std::thread>&, std::thread*, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000007d62)
  246.     #5 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000007e4e)
  247.     #6 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}>(tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}&&) <null> (tsan_test+0x000000006340)
  248.     #7 tpcc::TaskExecutor::Run(std::function<void ()> const&) <null> (tsan_test+0x000000004e51)
  249.     #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:35 (tsan_test+0x00000000335b)
  250.     #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a93)
  251.     #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f26c)
  252.     #11 RunTests(std::vector<std::shared_ptr<ITest>, std::allocator<std::shared_ptr<ITest> > > const&) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:117 (tsan_test+0x00000000f3ae)
  253.     #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x000000003703)
  254.  
  255. SUMMARY: ThreadSanitizer: data race (/home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/build/bin/tsan_test+0x445a) in tpcc::solutions::TournamentTreeLock::Lock(unsigned long)
  256. ==================
  257. PASSED
  258. ALL 3 TEST(S) PASSED!
  259. ThreadSanitizer: reported 2 warnings
  260. make[3]: *** [CMakeFiles/run_tsan_test.dir/build.make:57: CMakeFiles/run_tsan_test] Error 66
  261. make[2]: *** [CMakeFiles/Makefile2:373: CMakeFiles/run_tsan_test.dir/all] Error 2
  262. make[1]: *** [CMakeFiles/Makefile2:140: CMakeFiles/run.dir/rule] Error 2
  263. make: *** [Makefile:144: run] Error 2
  264. [dmitry@DmitryPC build]$
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement