Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [dmitry@DmitryPC build]$ cmake .. -DDEBUG=1
- -- The C compiler identification is GNU 7.3.0
- -- The CXX compiler identification is GNU 7.3.0
- -- Check for working C compiler: /usr/bin/cc
- -- Check for working C compiler: /usr/bin/cc -- works
- -- Detecting C compiler ABI info
- -- Detecting C compiler ABI info - done
- -- Detecting C compile features
- -- Detecting C compile features - done
- -- Check for working CXX compiler: /usr/bin/c++
- -- Check for working CXX compiler: /usr/bin/c++ -- works
- -- Detecting CXX compiler ABI info
- -- Detecting CXX compiler ABI info - done
- -- Detecting CXX compile features
- -- Detecting CXX compile features - done
- -- 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
- Scanning dependencies of target unit_test
- [ 8%] Building CXX object CMakeFiles/unit_test.dir/unit_test.cpp.o
- In file included from /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:1:0:
- /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)’:
- /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]
- for(int another_thread = 1; another_thread < num; another_thread++) {
- ~~~~~~~~~~~~~~~^~~~~
- /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]
- if(another_thread!=thread_index && levels[another_thread] >= level && victim[level] == thread_index) {
- ~~~~~~~~~~~~~~^~~~~~~~~~~~~~
- [ 16%] Building CXX object CMakeFiles/unit_test.dir/home/dmitry/Code/parallel_programming/tpcc-course-2018/common/source/backoff.cpp.o
- [ 25%] Building CXX object CMakeFiles/unit_test.dir/home/dmitry/Code/parallel_programming/tpcc-course-2018/common/source/test_framework.cpp.o
- [ 33%] Linking CXX executable bin/unit_test
- [ 33%] Built target unit_test
- Scanning dependencies of target run_unit_test
- Test 'LockUnlock' from test suite 'UnitTest' running...
- PASSED
- Test 'SequentialLockUnlock' from test suite 'UnitTest' running...
- PASSED
- Test 'ConcurrentLock' from test suite 'UnitTest' running...
- Affinity is enabled (UNIX)
- Affinity is enabled (UNIX)
- PASSED
- ALL 3 TEST(S) PASSED!
- [ 33%] Built target run_unit_test
- Scanning dependencies of target run_all_unit_tests
- [ 33%] Built target run_all_unit_tests
- Scanning dependencies of target run__run_all_stress_tests__run_all_unit_tests
- [ 33%] Built target run__run_all_stress_tests__run_all_unit_tests
- Scanning dependencies of target asan_test
- [ 41%] Building CXX object CMakeFiles/asan_test.dir/unit_test.cpp.o
- In file included from /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:1:0:
- /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)’:
- /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]
- for(int another_thread = 1; another_thread < num; another_thread++) {
- ~~~~~~~~~~~~~~~^~~~~
- /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]
- if(another_thread!=thread_index && levels[another_thread] >= level && victim[level] == thread_index) {
- ~~~~~~~~~~~~~~^~~~~~~~~~~~~~
- [ 50%] Building CXX object CMakeFiles/asan_test.dir/home/dmitry/Code/parallel_programming/tpcc-course-2018/common/source/backoff.cpp.o
- [ 58%] Building CXX object CMakeFiles/asan_test.dir/home/dmitry/Code/parallel_programming/tpcc-course-2018/common/source/test_framework.cpp.o
- [ 66%] Linking CXX executable bin/asan_test
- [ 66%] Built target asan_test
- Scanning dependencies of target run_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...
- Affinity is enabled (UNIX)
- Affinity is enabled (UNIX)
- PASSED
- ALL 3 TEST(S) PASSED!
- [ 66%] Built target run_asan_test
- Scanning dependencies of target tsan_test
- [ 75%] Building CXX object CMakeFiles/tsan_test.dir/unit_test.cpp.o
- In file included from /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:1:0:
- /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)’:
- /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]
- for(int another_thread = 1; another_thread < num; another_thread++) {
- ~~~~~~~~~~~~~~~^~~~~
- /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]
- if(another_thread!=thread_index && levels[another_thread] >= level && victim[level] == thread_index) {
- ~~~~~~~~~~~~~~^~~~~~~~~~~~~~
- [ 83%] Building CXX object CMakeFiles/tsan_test.dir/home/dmitry/Code/parallel_programming/tpcc-course-2018/common/source/backoff.cpp.o
- [ 91%] Building CXX object CMakeFiles/tsan_test.dir/home/dmitry/Code/parallel_programming/tpcc-course-2018/common/source/test_framework.cpp.o
- [100%] Linking CXX executable bin/tsan_test
- [100%] Built target tsan_test
- Scanning dependencies of target run_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...
- Affinity is enabled (UNIX)
- Affinity is enabled (UNIX)
- ==================
- WARNING: ThreadSanitizer: data race (pid=10907)
- Write of size 8 at 0x7b0400000008 by thread T2:
- #0 tpcc::solutions::TournamentTreeLock::Lock(unsigned long) <null> (tsan_test+0x000000004431)
- #1 void tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::Lock<unsigned long>(unsigned long) <null> (tsan_test+0x0000000069d3)
- #2 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:31 (tsan_test+0x000000003116)
- #3 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:36 (tsan_test+0x000000003236)
- #4 _M_invoke /usr/include/c++/7.3.0/bits/std_function.h:316 (tsan_test+0x000000003b7c)
- #5 std::function<void ()>::operator()() const <null> (tsan_test+0x00000000612a)
- #6 tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}::operator()() const <null> (tsan_test+0x000000004cea)
- #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)
- #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)
- #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)
- #10 std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::operator()() <null> (tsan_test+0x00000000e388)
- #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)
- #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+0x0000000044c6)
- #1 void tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::Lock<unsigned long>(unsigned long) <null> (tsan_test+0x0000000069d3)
- #2 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:31 (tsan_test+0x000000003116)
- #3 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:35 (tsan_test+0x0000000031c6)
- #4 _M_invoke /usr/include/c++/7.3.0/bits/std_function.h:316 (tsan_test+0x000000003995)
- #5 std::function<void ()>::operator()() const <null> (tsan_test+0x00000000612a)
- #6 tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}::operator()() const <null> (tsan_test+0x000000004cea)
- #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)
- #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)
- #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)
- #10 std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::operator()() <null> (tsan_test+0x00000000e388)
- #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)
- #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+0x00000000aacc)
- #2 std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) <null> (tsan_test+0x000000009e4a)
- #3 std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_M_allocate(unsigned long) <null> (tsan_test+0x000000008f38)
- #4 std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_M_create_storage(unsigned long) <null> (tsan_test+0x00000000a7b3)
- #5 std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_Vector_base(unsigned long, std::allocator<unsigned long> const&) <null> (tsan_test+0x00000000982a)
- #6 std::vector<unsigned long, std::allocator<unsigned long> >::vector(unsigned long, unsigned long const&, std::allocator<unsigned long> const&) <null> (tsan_test+0x000000008891)
- #7 std::vector<unsigned long, std::allocator<unsigned long> >::_M_fill_assign(unsigned long, unsigned long const&) <null> (tsan_test+0x0000000071a3)
- #8 std::vector<unsigned long, std::allocator<unsigned long> >::assign(unsigned long, unsigned long const&) <null> (tsan_test+0x000000005d6d)
- #9 tpcc::solutions::TournamentTreeLock::TournamentTreeLock(unsigned long) <null> (tsan_test+0x000000004347)
- #10 tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::MutexTester<int>(int) <null> (tsan_test+0x000000006922)
- #11 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:27 (tsan_test+0x0000000032a7)
- #12 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a93)
- #13 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f26c)
- #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)
- #15 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x000000003703)
- Thread T2 (tid=10910, 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+0x000000009165)
- #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)
- #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)
- #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)
- #7 tpcc::TaskExecutor::Run(std::function<void ()> const&) <null> (tsan_test+0x000000004e51)
- #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:36 (tsan_test+0x0000000033b8)
- #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a93)
- #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f26c)
- #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)
- #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x000000003703)
- Thread T1 (tid=10909, 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+0x000000009165)
- #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)
- #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)
- #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)
- #7 tpcc::TaskExecutor::Run(std::function<void ()> const&) <null> (tsan_test+0x000000004e51)
- #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:35 (tsan_test+0x00000000335b)
- #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a93)
- #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f26c)
- #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)
- #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x000000003703)
- 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)
- ==================
- ==================
- WARNING: ThreadSanitizer: data race (pid=10907)
- Write of size 8 at 0x7b0400000018 by thread T2:
- #0 tpcc::solutions::TournamentTreeLock::Lock(unsigned long) <null> (tsan_test+0x00000000445a)
- #1 void tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::Lock<unsigned long>(unsigned long) <null> (tsan_test+0x0000000069d3)
- #2 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:31 (tsan_test+0x000000003116)
- #3 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:36 (tsan_test+0x000000003236)
- #4 _M_invoke /usr/include/c++/7.3.0/bits/std_function.h:316 (tsan_test+0x000000003b7c)
- #5 std::function<void ()>::operator()() const <null> (tsan_test+0x00000000612a)
- #6 tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}::operator()() const <null> (tsan_test+0x000000004cea)
- #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)
- #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)
- #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)
- #10 std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::operator()() <null> (tsan_test+0x00000000e388)
- #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)
- #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+0x00000000445a)
- #1 void tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::Lock<unsigned long>(unsigned long) <null> (tsan_test+0x0000000069d3)
- #2 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:31 (tsan_test+0x000000003116)
- #3 operator() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:35 (tsan_test+0x0000000031c6)
- #4 _M_invoke /usr/include/c++/7.3.0/bits/std_function.h:316 (tsan_test+0x000000003995)
- #5 std::function<void ()>::operator()() const <null> (tsan_test+0x00000000612a)
- #6 tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}::operator()() const <null> (tsan_test+0x000000004cea)
- #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)
- #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)
- #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)
- #10 std::thread::_Invoker<std::tuple<tpcc::TaskExecutor::Run(std::function<void ()> const&)::{lambda()#1}> >::operator()() <null> (tsan_test+0x00000000e388)
- #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)
- #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+0x00000000aacc)
- #2 std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) <null> (tsan_test+0x000000009e4a)
- #3 std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_M_allocate(unsigned long) <null> (tsan_test+0x000000008f38)
- #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)
- #5 std::vector<unsigned long, std::allocator<unsigned long> >::resize(unsigned long, unsigned long const&) <null> (tsan_test+0x000000005e05)
- #6 tpcc::solutions::TournamentTreeLock::TournamentTreeLock(unsigned long) <null> (tsan_test+0x000000004376)
- #7 tpcc::MutexTester<tpcc::solutions::TournamentTreeLock>::MutexTester<int>(int) <null> (tsan_test+0x000000006922)
- #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:27 (tsan_test+0x0000000032a7)
- #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a93)
- #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f26c)
- #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)
- #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x000000003703)
- Thread T2 (tid=10910, 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+0x000000009165)
- #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)
- #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)
- #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)
- #7 tpcc::TaskExecutor::Run(std::function<void ()> const&) <null> (tsan_test+0x000000004e51)
- #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:36 (tsan_test+0x0000000033b8)
- #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a93)
- #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f26c)
- #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)
- #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x000000003703)
- Thread T1 (tid=10909, 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+0x000000009165)
- #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)
- #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)
- #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)
- #7 tpcc::TaskExecutor::Run(std::function<void ()> const&) <null> (tsan_test+0x000000004e51)
- #8 TestSuiteUnitTest::ExecuteTestConcurrentLock() /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:35 (tsan_test+0x00000000335b)
- #9 TestSuiteUnitTest::TestConcurrentLock::Execute() <null> (tsan_test+0x000000005a93)
- #10 RunSingleTest(std::shared_ptr<ITest>) /home/dmitry/Code/parallel programming/tpcc-course-2018/common/source/test_framework.cpp:106 (tsan_test+0x00000000f26c)
- #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)
- #12 main /home/dmitry/Code/parallel programming/tpcc-course-2018/tasks/1-mutex/tournament-tree/unit_test.cpp:42 (tsan_test+0x000000003703)
- 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)
- ==================
- 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
- [dmitry@DmitryPC build]$
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement