Skip to content

Instantly share code, notes, and snippets.

@HappyCerberus
Created May 14, 2020 20:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save HappyCerberus/0a2326ad478c75e666291f9d12141540 to your computer and use it in GitHub Desktop.
Save HappyCerberus/0a2326ad478c75e666291f9d12141540 to your computer and use it in GitHub Desktop.
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ab58 by thread T4:
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ab58 by thread T1:
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58)
Thread T4 (tid=9621, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee)
#5 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ab58 by thread T5:
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ab58 by thread T1:
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58)
Thread T5 (tid=9622, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ab58 by thread T3:
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ab58 by thread T1:
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58)
Thread T3 (tid=9620, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ab58 by thread T2:
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ab58 by thread T1:
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58)
Thread T2 (tid=9619, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ab58 by thread T7:
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ab58 by thread T1:
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58)
Thread T7 (tid=9624, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee)
#5 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ab58 by thread T6:
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ab58 by thread T1:
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58)
Thread T6 (tid=9623, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee)
#5 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ab58 by thread T8:
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ab58 by thread T1:
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58)
Thread T8 (tid=9625, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee)
#5 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ab58 by thread T9:
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ab58 by thread T1:
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58)
Thread T9 (tid=9626, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ab58 by thread T10:
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ab58 by thread T1:
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982)
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f)
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769)
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2)
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201)
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e)
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e)
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1)
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0)
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626)
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#18 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58)
Thread T10 (tid=9627, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee)
#5 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 1 at 0x556bf9a5ac40 by thread T9:
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1079 (demo+0x1099e2)
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60)
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981)
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4)
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da)
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9)
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe)
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164)
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8)
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067)
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a)
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#19 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 1 at 0x556bf9a5ac40 by thread T1:
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1086 (demo+0x109a82)
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60)
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981)
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4)
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da)
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9)
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe)
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164)
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8)
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067)
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a)
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#19 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'parser_settings_initialized' of size 1 at 0x556bf9a5ac40 (demo+0x0000004a6c40)
Thread T9 (tid=9626, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/src/transports/httpclient.c:1079 in http_client_parser_settings
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ac70 by thread T9:
#0 http_parser_execute external/libgit2/deps/http-parser/http_parser.c:1336 (demo+0x17788e)
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1108 (demo+0x109b75)
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981)
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4)
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da)
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9)
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe)
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164)
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8)
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067)
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a)
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#19 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ac70 by thread T1:
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1080 (demo+0x109a00)
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60)
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981)
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4)
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da)
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9)
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe)
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164)
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8)
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067)
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a)
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#19 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'parser_settings' of size 56 at 0x556bf9a5ac60 (demo+0x0000004a6c70)
Thread T9 (tid=9626, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/deps/http-parser/http_parser.c:1336 in http_parser_execute
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ac78 by thread T9:
#0 http_parser_execute external/libgit2/deps/http-parser/http_parser.c:1428 (demo+0x1780a6)
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1108 (demo+0x109b75)
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981)
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4)
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da)
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9)
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe)
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164)
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8)
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067)
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a)
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#19 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ac78 by thread T1:
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1081 (demo+0x109a1a)
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60)
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981)
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4)
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da)
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9)
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe)
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164)
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8)
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067)
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a)
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#19 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'parser_settings' of size 56 at 0x556bf9a5ac60 (demo+0x0000004a6c78)
Thread T9 (tid=9626, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/deps/http-parser/http_parser.c:1428 in http_parser_execute
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ac80 by thread T9:
#0 http_parser_execute external/libgit2/deps/http-parser/http_parser.c:1581 (demo+0x178a61)
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1108 (demo+0x109b75)
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981)
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4)
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da)
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9)
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe)
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164)
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8)
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067)
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a)
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#19 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ac80 by thread T1:
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1082 (demo+0x109a34)
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60)
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981)
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4)
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da)
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9)
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe)
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164)
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8)
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067)
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a)
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#19 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'parser_settings' of size 56 at 0x556bf9a5ac60 (demo+0x0000004a6c80)
Thread T9 (tid=9626, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/deps/http-parser/http_parser.c:1581 in http_parser_execute
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ac88 by thread T9:
#0 http_parser_execute external/libgit2/deps/http-parser/http_parser.c:1802 (demo+0x179b73)
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1108 (demo+0x109b75)
#2 git_http_client_read_body external/libgit2/src/transports/httpclient.c:1427 (demo+0x10aba5)
#3 http_stream_read external/libgit2/src/transports/http.c:422 (demo+0xfcb76)
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da)
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9)
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe)
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164)
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8)
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067)
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a)
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#19 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ac88 by thread T1:
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1083 (demo+0x109a4e)
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60)
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981)
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4)
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da)
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9)
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe)
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164)
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8)
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067)
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a)
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#19 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'parser_settings' of size 56 at 0x556bf9a5ac60 (demo+0x0000004a6c88)
Thread T9 (tid=9626, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/deps/http-parser/http_parser.c:1802 in http_parser_execute
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Read of size 8 at 0x556bf9a5ac88 by thread T8:
#0 http_parser_execute external/libgit2/deps/http-parser/http_parser.c:1802 (demo+0x179b73)
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1108 (demo+0x109b75)
#2 git_http_client_read_body external/libgit2/src/transports/httpclient.c:1427 (demo+0x10aba5)
#3 http_stream_read external/libgit2/src/transports/http.c:422 (demo+0xfcb76)
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da)
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9)
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe)
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164)
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8)
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067)
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a)
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#19 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x556bf9a5ac88 by thread T1:
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1083 (demo+0x109a4e)
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60)
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981)
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4)
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da)
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9)
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe)
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164)
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8)
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067)
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a)
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#19 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'parser_settings' of size 56 at 0x556bf9a5ac60 (demo+0x0000004a6c88)
Thread T8 (tid=9625, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee)
#5 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race external/libgit2/deps/http-parser/http_parser.c:1802 in http_parser_execute
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Write of size 8 at 0x7b0400000dd0 by thread T8:
#0 free <null> (libtsan.so.0+0x2cf6b)
#1 <null> <null> (libc.so.6+0xd50e1)
#2 git_signature_now external/libgit2/src/signature.c:170 (demo+0x9a24a)
#3 git_signature_default external/libgit2/src/signature.c:192 (demo+0x9a3ea)
#4 git_reference__log_signature external/libgit2/src/refs.c:498 (demo+0x7cd74)
#5 git_reference_create_matching external/libgit2/src/refs.c:521 (demo+0x7ce59)
#6 git_reference_create external/libgit2/src/refs.c:539 (demo+0x7cf30)
#7 create_branch external/libgit2/src/clone.c:48 (demo+0x24937)
#8 create_tracking_branch external/libgit2/src/clone.c:102 (demo+0x24bc1)
#9 update_head_to_new_branch external/libgit2/src/clone.c:124 (demo+0x24c8f)
#10 update_head_to_remote external/libgit2/src/clone.c:189 (demo+0x24f9d)
#11 checkout_branch external/libgit2/src/clone.c:315 (demo+0x254f2)
#12 clone_into external/libgit2/src/clone.c:348 (demo+0x257a1)
#13 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#14 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#15 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#16 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#17 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#18 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#19 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#20 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#21 <null> <null> (libstdc++.so.6+0xd6f73)
Previous write of size 8 at 0x7b0400000dd0 by thread T2:
#0 malloc <null> (libtsan.so.0+0x2cbe6)
#1 __strdup <null> (libc.so.6+0xa253e)
#2 git_signature_now external/libgit2/src/signature.c:170 (demo+0x9a24a)
#3 git_signature_default external/libgit2/src/signature.c:192 (demo+0x9a3ea)
#4 git_reference__log_signature external/libgit2/src/refs.c:498 (demo+0x7cd74)
#5 git_reference_create_matching external/libgit2/src/refs.c:521 (demo+0x7ce59)
#6 git_reference_create external/libgit2/src/refs.c:539 (demo+0x7cf30)
#7 update_tips_for_spec external/libgit2/src/remote.c:1451 (demo+0x8999c)
#8 git_remote_update_tips external/libgit2/src/remote.c:1654 (demo+0x8a591)
#9 git_remote_fetch external/libgit2/src/remote.c:1041 (demo+0x88150)
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a)
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#19 <null> <null> (libstdc++.so.6+0xd6f73)
Thread T8 (tid=9625, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee)
#5 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T2 (tid=9619, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2cf6b) in free
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Atomic write of size 4 at 0x556bf9a5abf4 by thread T1 (mutexes: write M70):
#0 __tsan_atomic32_fetch_add <null> (libtsan.so.0+0x6c101)
#1 git_atomic_add external/libgit2/src/thread-utils.h:82 (demo+0xba3ad)
#2 cache_store external/libgit2/src/cache.c:200 (demo+0xbaeb9)
#3 git_cache_store_raw external/libgit2/src/cache.c:231 (demo+0xbb02d)
#4 odb_read_1 external/libgit2/src/odb.c:1095 (demo+0x56ad3)
#5 git_odb_read external/libgit2/src/odb.c:1116 (demo+0x56c3f)
#6 git_object_lookup_prefix external/libgit2/src/object.c:221 (demo+0xfe7a8)
#7 git_object_lookup external/libgit2/src/object.c:252 (demo+0xfe8ce)
#8 git_commit_lookup external/libgit2/src/object_api.c:23 (demo+0x528e0)
#9 create_branch external/libgit2/src/clone.c:41 (demo+0x248c3)
#10 create_tracking_branch external/libgit2/src/clone.c:102 (demo+0x24bc1)
#11 update_head_to_new_branch external/libgit2/src/clone.c:124 (demo+0x24c8f)
#12 update_head_to_remote external/libgit2/src/clone.c:189 (demo+0x24f9d)
#13 checkout_branch external/libgit2/src/clone.c:315 (demo+0x254f2)
#14 clone_into external/libgit2/src/clone.c:348 (demo+0x257a1)
#15 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#16 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#17 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#18 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#19 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#20 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#21 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#22 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#23 <null> <null> (libstdc++.so.6+0xd6f73)
Previous read of size 4 at 0x556bf9a5abf4 by thread T8 (mutexes: write M359):
#0 cache_store external/libgit2/src/cache.c:192 (demo+0xbad9e)
#1 git_cache_store_parsed external/libgit2/src/cache.c:237 (demo+0xbb08d)
#2 git_object__from_odb_object external/libgit2/src/object.c:148 (demo+0xfe411)
#3 git_object_lookup_prefix external/libgit2/src/object.c:244 (demo+0xfe844)
#4 git_object_lookup external/libgit2/src/object.c:252 (demo+0xfe8ce)
#5 git_commit_lookup external/libgit2/src/object_api.c:23 (demo+0x528e0)
#6 create_branch external/libgit2/src/clone.c:41 (demo+0x248c3)
#7 create_tracking_branch external/libgit2/src/clone.c:102 (demo+0x24bc1)
#8 update_head_to_new_branch external/libgit2/src/clone.c:124 (demo+0x24c8f)
#9 update_head_to_remote external/libgit2/src/clone.c:189 (demo+0x24f9d)
#10 checkout_branch external/libgit2/src/clone.c:315 (demo+0x254f2)
#11 clone_into external/libgit2/src/clone.c:348 (demo+0x257a1)
#12 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#13 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#14 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#15 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#16 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#17 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#18 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#19 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#20 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'git_cache__current_storage' of size 4 at 0x556bf9a5abf4 (demo+0x0000004a6bf4)
Mutex M70 (0x7b440000ff28) created at:
#0 pthread_rwlock_init <null> (libtsan.so.0+0x2ef82)
#1 git_cache_init external/libgit2/src/cache.c:72 (demo+0xba78c)
#2 repository_alloc external/libgit2/src/repository.c:245 (demo+0x8ec44)
#3 git_repository_open_ext external/libgit2/src/repository.c:829 (demo+0x911de)
#4 git_repository_open external/libgit2/src/repository.c:887 (demo+0x91607)
#5 git_repository_init_ext external/libgit2/src/repository.c:2112 (demo+0x953b5)
#6 git_repository_init external/libgit2/src/repository.c:2056 (demo+0x94e5b)
#7 default_repository_create external/libgit2/src/clone.c:234 (demo+0x2517f)
#8 git__clone external/libgit2/src/clone.c:420 (demo+0x25c0c)
#9 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#10 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#11 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#12 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#13 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#14 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#15 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#16 <null> <null> (libstdc++.so.6+0xd6f73)
Mutex M359 (0x7b4400050028) created at:
#0 pthread_rwlock_init <null> (libtsan.so.0+0x2ef82)
#1 git_cache_init external/libgit2/src/cache.c:72 (demo+0xba78c)
#2 repository_alloc external/libgit2/src/repository.c:245 (demo+0x8ec44)
#3 git_repository_open_ext external/libgit2/src/repository.c:829 (demo+0x911de)
#4 git_repository_open external/libgit2/src/repository.c:887 (demo+0x91607)
#5 git_repository_init_ext external/libgit2/src/repository.c:2112 (demo+0x953b5)
#6 git_repository_init external/libgit2/src/repository.c:2056 (demo+0x94e5b)
#7 default_repository_create external/libgit2/src/clone.c:234 (demo+0x2517f)
#8 git__clone external/libgit2/src/clone.c:420 (demo+0x25c0c)
#9 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#10 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#11 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#12 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#13 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#14 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#15 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#16 <null> <null> (libstdc++.so.6+0xd6f73)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T8 (tid=9625, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee)
#5 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x6c101) in __tsan_atomic32_fetch_add
==================
==================
WARNING: ThreadSanitizer: data race (pid=9616)
Atomic write of size 4 at 0x556bf9a5abf4 by thread T2 (mutexes: write M71):
#0 __tsan_atomic32_fetch_add <null> (libtsan.so.0+0x6c101)
#1 git_atomic_add external/libgit2/src/thread-utils.h:82 (demo+0xba3ad)
#2 cache_store external/libgit2/src/cache.c:200 (demo+0xbaeb9)
#3 git_cache_store_raw external/libgit2/src/cache.c:231 (demo+0xbb02d)
#4 odb_read_1 external/libgit2/src/odb.c:1095 (demo+0x56ad3)
#5 git_odb_read external/libgit2/src/odb.c:1116 (demo+0x56c3f)
#6 git_object_lookup_prefix external/libgit2/src/object.c:221 (demo+0xfe7a8)
#7 git_object_lookup external/libgit2/src/object.c:252 (demo+0xfe8ce)
#8 git_commit_lookup external/libgit2/src/object_api.c:23 (demo+0x528e0)
#9 create_branch external/libgit2/src/clone.c:41 (demo+0x248c3)
#10 create_tracking_branch external/libgit2/src/clone.c:102 (demo+0x24bc1)
#11 update_head_to_new_branch external/libgit2/src/clone.c:124 (demo+0x24c8f)
#12 update_head_to_remote external/libgit2/src/clone.c:189 (demo+0x24f9d)
#13 checkout_branch external/libgit2/src/clone.c:315 (demo+0x254f2)
#14 clone_into external/libgit2/src/clone.c:348 (demo+0x257a1)
#15 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#16 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#17 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#18 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#19 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#20 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#21 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#22 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#23 <null> <null> (libstdc++.so.6+0xd6f73)
Previous read of size 4 at 0x556bf9a5abf4 by thread T1 (mutexes: write M70):
#0 cache_store external/libgit2/src/cache.c:192 (demo+0xbad9e)
#1 git_cache_store_raw external/libgit2/src/cache.c:231 (demo+0xbb02d)
#2 odb_read_1 external/libgit2/src/odb.c:1095 (demo+0x56ad3)
#3 git_odb_read external/libgit2/src/odb.c:1116 (demo+0x56c3f)
#4 git_object_lookup_prefix external/libgit2/src/object.c:221 (demo+0xfe7a8)
#5 git_object_lookup external/libgit2/src/object.c:252 (demo+0xfe8ce)
#6 git_commit_lookup external/libgit2/src/object_api.c:23 (demo+0x528e0)
#7 create_branch external/libgit2/src/clone.c:41 (demo+0x248c3)
#8 create_tracking_branch external/libgit2/src/clone.c:102 (demo+0x24bc1)
#9 update_head_to_new_branch external/libgit2/src/clone.c:124 (demo+0x24c8f)
#10 update_head_to_remote external/libgit2/src/clone.c:189 (demo+0x24f9d)
#11 checkout_branch external/libgit2/src/clone.c:315 (demo+0x254f2)
#12 clone_into external/libgit2/src/clone.c:348 (demo+0x257a1)
#13 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4)
#14 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#15 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#16 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#17 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#18 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#19 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#20 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#21 <null> <null> (libstdc++.so.6+0xd6f73)
Location is global 'git_cache__current_storage' of size 4 at 0x556bf9a5abf4 (demo+0x0000004a6bf4)
Mutex M71 (0x7b4400019f28) created at:
#0 pthread_rwlock_init <null> (libtsan.so.0+0x2ef82)
#1 git_cache_init external/libgit2/src/cache.c:72 (demo+0xba78c)
#2 repository_alloc external/libgit2/src/repository.c:245 (demo+0x8ec44)
#3 git_repository_open_ext external/libgit2/src/repository.c:829 (demo+0x911de)
#4 git_repository_open external/libgit2/src/repository.c:887 (demo+0x91607)
#5 git_repository_init_ext external/libgit2/src/repository.c:2112 (demo+0x953b5)
#6 git_repository_init external/libgit2/src/repository.c:2056 (demo+0x94e5b)
#7 default_repository_create external/libgit2/src/clone.c:234 (demo+0x2517f)
#8 git__clone external/libgit2/src/clone.c:420 (demo+0x25c0c)
#9 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#10 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#11 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#12 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#13 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#14 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#15 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#16 <null> <null> (libstdc++.so.6+0xd6f73)
Mutex M70 (0x7b440000ff28) created at:
#0 pthread_rwlock_init <null> (libtsan.so.0+0x2ef82)
#1 git_cache_init external/libgit2/src/cache.c:72 (demo+0xba78c)
#2 repository_alloc external/libgit2/src/repository.c:245 (demo+0x8ec44)
#3 git_repository_open_ext external/libgit2/src/repository.c:829 (demo+0x911de)
#4 git_repository_open external/libgit2/src/repository.c:887 (demo+0x91607)
#5 git_repository_init_ext external/libgit2/src/repository.c:2112 (demo+0x953b5)
#6 git_repository_init external/libgit2/src/repository.c:2056 (demo+0x94e5b)
#7 default_repository_create external/libgit2/src/clone.c:234 (demo+0x2517f)
#8 git__clone external/libgit2/src/clone.c:420 (demo+0x25c0c)
#9 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d)
#10 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0)
#11 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6)
#12 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639)
#13 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c)
#14 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e)
#15 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0)
#16 <null> <null> (libstdc++.so.6+0xd6f73)
Thread T2 (tid=9619, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
Thread T1 (tid=9618, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2dc82)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238)
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc)
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf)
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764)
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354)
#6 main multi_threading/demo.cc:63 (demo+0x21cca)
SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x6c101) in __tsan_atomic32_fetch_add
==================
ThreadSanitizer: reported 18 warnings
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment