Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [dmitry@DmitryPC build]$ cmake .. -DNO_AFFINITY=1 -DDEBUG=1
- -- Configuring done
- -- Generating done
- -- Build files have been written to: /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/build
- [dmitry@DmitryPC build]$ make run
- [ 33%] Built target asan_test
- Test 'LockUnlock' from test suite 'UnitTest' running...
- PASSED
- Test 'SequentialLockUnlock' from test suite 'UnitTest' running...
- PASSED
- Test 'ConcurrentLock' from test suite 'UnitTest' running...
- PASSED
- ALL 3 TEST(S) PASSED!
- [ 33%] Built target run_asan_test
- [ 66%] Built target tsan_test
- Test 'LockUnlock' from test suite 'UnitTest' running...
- PASSED
- Test 'SequentialLockUnlock' from test suite 'UnitTest' running...
- PASSED
- Test 'ConcurrentLock' from test suite 'UnitTest' running...
- ==================
- WARNING: ThreadSanitizer: data race (pid=10089)
- Write of size 8 at 0x7b0400000008 by thread T2:
- #0 tpcc::solutions::TournamentTreeLock::Lock(unsigned long) <null> (tsan_test+0x0000000043fd)
- #1 void tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::Lock<unsigned long>(unsigned long) <null> (tsan_test+0x00000000699f)
- #2 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:31 (tsan_test+0x0000000030e2)
- #3 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:36 (tsan_test+0x000000003202)
- #4 _M_invoke /usr/include/c++/7.3.0/bits/std_function.h:316 (tsan_test+0x000000003b48)
- #5 std::function<void ()>::operator()() const <null> (tsan_test+0x0000000060f6)
- #6 tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}::operator()() const <null> (tsan_test+0x000000004cb6)
- #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+0x00000000ac22)
- #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+0x000000009f6c)
- #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+0x00000000e4e2)
- #10 std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::operator()() <null> (tsan_test+0x00000000e354)
- #11 std::thread::_State_impl<std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> > >::_M_run() <null> (tsan_test+0x00000000e1b0)
- #12 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83 (libstdc++.so.6+0x0000000b9b9e)
- Previous read of size 8 at 0x7b0400000008 by thread T1:
- #0 tpcc::solutions::TournamentTreeLock::Lock(unsigned long) <null> (tsan_test+0x000000004492)
- #1 void tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::Lock<unsigned long>(unsigned long) <null> (tsan_test+0x00000000699f)
- #2 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:31 (tsan_test+0x0000000030e2)
- #3 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:35 (tsan_test+0x000000003192)
- #4 _M_invoke /usr/include/c++/7.3.0/bits/std_function.h:316 (tsan_test+0x000000003961)
- #5 std::function<void ()>::operator()() const <null> (tsan_test+0x0000000060f6)
- #6 tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}::operator()() const <null> (tsan_test+0x000000004cb6)
- #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+0x00000000ac22)
- #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+0x000000009f6c)
- #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+0x00000000e4e2)
- #10 std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::operator()() <null> (tsan_test+0x00000000e354)
- #11 std::thread::_State_impl<std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> > >::_M_run() <null> (tsan_test+0x00000000e1b0)
- #12 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83 (libstdc++.so.6+0x0000000b9b9e)
- Location is heap block of size 16 at 0x7b0400000000 allocated by main thread:
- #0 operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:39 (libtsan.so.0+0x0000000701fc)
- #1 __gnu_cxx::new_allocator<unsigned long>::allocate(unsigned long, void const*) <null> (tsan_test+0x00000000aa98)
- #2 std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) <null> (tsan_test+0x000000009e16)
- #3 std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_M_allocate(unsigned long) <null> (tsan_test+0x000000008f04)
- #4 std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_M_create_storage(unsigned long) <null> (tsan_test+0x00000000a77f)
- #5 std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_Vector_base(unsigned long, std::allocator<unsigned long> const&) <null> (tsan_test+0x0000000097f6)
- #6 std::vector<unsigned long, std::allocator<unsigned long> >::vector(unsigned long, unsigned long const&, std::allocator<unsigned long> const&) <null> (tsan_test+0x00000000885d)
- #7 std::vector<unsigned long, std::allocator<unsigned long> >::_M_fill_assign(unsigned long, unsigned long const&) <null> (tsan_test+0x00000000716f)
- #8 std::vector<unsigned long, std::allocator<unsigned long> >::assign(unsigned long, unsigned long const&) <null> (tsan_test+0x000000005d39)
- #9 tpcc::solutions::TournamentTreeLock::TournamentTreeLock(unsigned long) <null> (tsan_test+0x000000004313)
- #10 tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::MutexTester<int>(int) <null> (tsan_test+0x0000000068ee)
- #11 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:27 (tsan_test+0x000000003273)
- #12 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a5f)
- #13 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f238)
- #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+0x00000000f37a)
- #15 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x0000000036cf)
- Thread T2 (tid=10092, running) created by main thread at:
- #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:900 (libtsan.so.0+0x000000028874)
- #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)
- #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)
- #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+0x000000009131)
- #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+0x000000007d2e)
- #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+0x000000007e1a)
- #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+0x00000000630c)
- #7 tpcc::TaskExecutor::Run(std::function<void ()> const&) <null> (tsan_test+0x000000004e1d)
- #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:36 (tsan_test+0x000000003384)
- #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a5f)
- #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f238)
- #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+0x00000000f37a)
- #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x0000000036cf)
- Thread T1 (tid=10091, finished) created by main thread at:
- #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:900 (libtsan.so.0+0x000000028874)
- #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)
- #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)
- #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+0x000000009131)
- #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+0x000000007d2e)
- #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+0x000000007e1a)
- #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+0x00000000630c)
- #7 tpcc::TaskExecutor::Run(std::function<void ()> const&) <null> (tsan_test+0x000000004e1d)
- #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:35 (tsan_test+0x000000003327)
- #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a5f)
- #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f238)
- #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+0x00000000f37a)
- #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x0000000036cf)
- SUMMARY: ThreadSanitizer: data race (/home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/build/bin/tsan_test+0x43fd) in tpcc::solutions::TournamentTreeLock::Lock(unsigned long)
- ==================
- ==================
- WARNING: ThreadSanitizer: data race (pid=10089)
- Write of size 8 at 0x7b0400000018 by thread T2:
- #0 tpcc::solutions::TournamentTreeLock::Lock(unsigned long) <null> (tsan_test+0x000000004426)
- #1 void tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::Lock<unsigned long>(unsigned long) <null> (tsan_test+0x00000000699f)
- #2 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:31 (tsan_test+0x0000000030e2)
- #3 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:36 (tsan_test+0x000000003202)
- #4 _M_invoke /usr/include/c++/7.3.0/bits/std_function.h:316 (tsan_test+0x000000003b48)
- #5 std::function<void ()>::operator()() const <null> (tsan_test+0x0000000060f6)
- #6 tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}::operator()() const <null> (tsan_test+0x000000004cb6)
- #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+0x00000000ac22)
- #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+0x000000009f6c)
- #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+0x00000000e4e2)
- #10 std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::operator()() <null> (tsan_test+0x00000000e354)
- #11 std::thread::_State_impl<std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> > >::_M_run() <null> (tsan_test+0x00000000e1b0)
- #12 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83 (libstdc++.so.6+0x0000000b9b9e)
- Previous write of size 8 at 0x7b0400000018 by thread T1:
- #0 tpcc::solutions::TournamentTreeLock::Lock(unsigned long) <null> (tsan_test+0x000000004426)
- #1 void tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::Lock<unsigned long>(unsigned long) <null> (tsan_test+0x00000000699f)
- #2 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:31 (tsan_test+0x0000000030e2)
- #3 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:35 (tsan_test+0x000000003192)
- #4 _M_invoke /usr/include/c++/7.3.0/bits/std_function.h:316 (tsan_test+0x000000003961)
- #5 std::function<void ()>::operator()() const <null> (tsan_test+0x0000000060f6)
- #6 tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}::operator()() const <null> (tsan_test+0x000000004cb6)
- #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+0x00000000ac22)
- #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+0x000000009f6c)
- #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+0x00000000e4e2)
- #10 std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::operator()() <null> (tsan_test+0x00000000e354)
- #11 std::thread::_State_impl<std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> > >::_M_run() <null> (tsan_test+0x00000000e1b0)
- #12 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83 (libstdc++.so.6+0x0000000b9b9e)
- Location is heap block of size 16 at 0x7b0400000010 allocated by main thread:
- #0 operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:39 (libtsan.so.0+0x0000000701fc)
- #1 __gnu_cxx::new_allocator<unsigned long>::allocate(unsigned long, void const*) <null> (tsan_test+0x00000000aa98)
- #2 std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) <null> (tsan_test+0x000000009e16)
- #3 std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_M_allocate(unsigned long) <null> (tsan_test+0x000000008f04)
- #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+0x000000007794)
- #5 std::vector<unsigned long, std::allocator<unsigned long> >::resize(unsigned long, unsigned long const&) <null> (tsan_test+0x000000005dd1)
- #6 tpcc::solutions::TournamentTreeLock::TournamentTreeLock(unsigned long) <null> (tsan_test+0x000000004342)
- #7 tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::MutexTester<int>(int) <null> (tsan_test+0x0000000068ee)
- #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:27 (tsan_test+0x000000003273)
- #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a5f)
- #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f238)
- #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+0x00000000f37a)
- #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x0000000036cf)
- Thread T2 (tid=10092, running) created by main thread at:
- #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:900 (libtsan.so.0+0x000000028874)
- #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)
- #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)
- #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+0x000000009131)
- #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+0x000000007d2e)
- #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+0x000000007e1a)
- #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+0x00000000630c)
- #7 tpcc::TaskExecutor::Run(std::function<void ()> const&) <null> (tsan_test+0x000000004e1d)
- #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:36 (tsan_test+0x000000003384)
- #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a5f)
- #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f238)
- #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+0x00000000f37a)
- #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x0000000036cf)
- Thread T1 (tid=10091, finished) created by main thread at:
- #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:900 (libtsan.so.0+0x000000028874)
- #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)
- #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)
- #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+0x000000009131)
- #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+0x000000007d2e)
- #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+0x000000007e1a)
- #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+0x00000000630c)
- #7 tpcc::TaskExecutor::Run(std::function<void ()> const&) <null> (tsan_test+0x000000004e1d)
- #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:35 (tsan_test+0x000000003327)
- #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a5f)
- #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f238)
- #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+0x00000000f37a)
- #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x0000000036cf)
- SUMMARY: ThreadSanitizer: data race (/home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/build/bin/tsan_test+0x4426) in tpcc::solutions::TournamentTreeLock::Lock(unsigned long)
- ==================
- PASSED
- ALL 3 TEST(S) PASSED!
- ThreadSanitizer: reported 2 warnings
- make[3]: *** [CMakeFiles/run_tsan_test.dir/build.make:57: CMakeFiles/run_tsan_test] Error 66
- make[2]: *** [CMakeFiles/Makefile2:373: CMakeFiles/run_tsan_test.dir/all] Error 2
- make[1]: *** [CMakeFiles/Makefile2:140: CMakeFiles/run.dir/rule] Error 2
- make: *** [Makefile:144: run] Error 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement