Skip to content
This repository has been archived by the owner on Mar 22, 2023. It is now read-only.

concurrent_async_wait_0_pmemcheck timeouts #230

Open
lukaszstolarczuk opened this issue Jun 28, 2022 · 1 comment
Open

concurrent_async_wait_0_pmemcheck timeouts #230

lukaszstolarczuk opened this issue Jun 28, 2022 · 1 comment
Labels
Type: Bug Something isn't working

Comments

@lukaszstolarczuk
Copy link
Member

Sometimes concurrent_async_wait_0_pmemcheck tests reached the timeout. It may be related to a deadlock, or just a very slow valgrind test... or something else 😉

@lukaszstolarczuk lukaszstolarczuk added the Type: Bug Something isn't working label Jun 28, 2022
@KFilipek
Copy link
Contributor

I run this test with thread sanitizer and below is the output.
If you want to reproduce, please use my draft PR with this sanitizer #234.

Test project /home/kfilipek/Development/pmemstream/build
    Start 40: concurrent_async_wait_0_none
1/3 Test #40: concurrent_async_wait_0_none .......................................***Failed  Error regular expression found in output. Regex=[Sanitizer]  7.77 sec
-- Executing: /home/kfilipek/Development/pmemstream/build/tests/concurrent_async_wait /dev/shm/concurrent_async_wait_0_none/testfile
-- Test concurrent_async_wait_0_none:
-- Stdout:

-- Stderr:
Using configuration: max_size=1024 noshrink=1 seed=3169886181660252065

- verify if calling async_wait_persisted from multiple threads does not lead to any deadlocks
==================
WARNING: ThreadSanitizer: data race (pid=455926)
  Read of size 1 at 0x7efe71401318 by main thread:
    #0 memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827 (libtsan.so.0+0x6243e)
    #1 memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:819 (libtsan.so.0+0x6243e)
    #2 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::__sv_wrapper, std::allocator<char> const&) <null> (libstdc++.so.6+0x1a49a6)
    #3 void __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string_view<char, std::char_traits<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::basic_string_view<char, std::char_traits<char> >&&) <null> (concurrent_async_wait+0x2ebaa)
    #4 void std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string_view<char, std::char_traits<char> > >(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::basic_string_view<char, std::char_traits<char> >&&) <null> (concurrent_async_wait+0x2741c)
    #5 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >& std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<std::basic_string_view<char, std::char_traits<char> > >(std::basic_string_view<char, std::char_traits<char> >&&) <null> (concurrent_async_wait+0x214da)
    #6 pmemstream_helpers_type::get_elements_in_region[abi:cxx11](pmemstream_region, bool) <null> (concurrent_async_wait+0x1d598)
    #7 pmemstream_helpers_type::verify(pmemstream_region, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) <null> (concurrent_async_wait+0x1d691)
    #8 operator() /home/kfilipek/Development/pmemstream/tests/unittest/concurrent_async_wait.cpp:64 (concurrent_async_wait+0x15c86)
    #9 resultOf<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, pmemstream_empty, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool, ranged<long unsigned int, 1, 4> > /usr/include/rapidcheck/detail/Property.hpp:48 (concurrent_async_wait+0x1912e)
    #10 operator() /usr/include/rapidcheck/detail/Property.hpp:70 (concurrent_async_wait+0x189f1)
    #11 apply /usr/include/rapidcheck/detail/ApplyTuple.h:20 (concurrent_async_wait+0x1873d)
    #12 applyTuple<std::tuple<pmemstream_empty, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, ranged<long unsigned int, 1, 4> >, const rc::detail::PropertyAdapter<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, void(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>&> /usr/include/rapidcheck/detail/ApplyTuple.h:51 (concurrent_async_wait+0x18481)
    #13 execWithArguments<rc::detail::PropertyAdapter<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, void(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool&&, ranged<long unsigned int, 1, 4>&&> /usr/include/rapidcheck/gen/detail/ExecRaw.hpp:21 (concurrent_async_wait+0x18195)
    #14 execWithRecipe<rc::detail::PropertyAdapter<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, void(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)> > /usr/include/rapidcheck/gen/detail/ExecRaw.hpp:33 (concurrent_async_wait+0x17ce2)
    #15 operator() /usr/include/rapidcheck/gen/detail/ExecRaw.hpp:49 (concurrent_async_wait+0x177aa)
    #16 value /usr/include/rapidcheck/shrinkable/Create.hpp:40 (concurrent_async_wait+0x19d44)
    #17 value /usr/include/rapidcheck/Shrinkable.hpp:26 (concurrent_async_wait+0x197e4)
    #18 rc::Shrinkable<std::pair<rc::detail::TaggedResult, rc::gen::detail::Recipe> >::value() const <null> (concurrent_async_wait+0xa28c8)
    #19 check<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)> > /usr/include/rapidcheck/Check.hpp:63 (concurrent_async_wait+0x1662c)
    #20 operator() /home/kfilipek/Development/pmemstream/tests/unittest/concurrent_async_wait.cpp:38 (concurrent_async_wait+0x15d8e)
    #21 __invoke_impl<void, main(int, char**)::<lambda()>&> /usr/include/c++/11/bits/invoke.h:61 (concurrent_async_wait+0x1758f)
    #22 __invoke_r<void, main(int, char**)::<lambda()>&> /usr/include/c++/11/bits/invoke.h:111 (concurrent_async_wait+0x17094)
    #23 _M_invoke /usr/include/c++/11/bits/std_function.h:290 (concurrent_async_wait+0x16aa2)
    #24 std::function<void ()>::operator()() const <null> (concurrent_async_wait+0x202ba)
    #25 run_test /home/kfilipek/Development/pmemstream/tests/common/unittest.hpp:105 (concurrent_async_wait+0x152a0)
    #26 main /home/kfilipek/Development/pmemstream/tests/unittest/concurrent_async_wait.cpp:35 (concurrent_async_wait+0x160c8)

  Previous write of size 1 at 0x7efe71401318 by thread T25:
    #0 memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827 (libtsan.so.0+0x6243e)
    #1 memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:819 (libtsan.so.0+0x6243e)
    #2 std_memcpy /tmp/miniasync-mwT/src/data_mover_threads.c:53 (libminiasync.so.0+0x4005)

  Location is global '<null>' at 0x000000000000 (testfile+0x000000001318)

  Thread T25 (tid=456141, running) created by main thread at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605b8)
    #1 os_thread_create /tmp/miniasync-mwT/src/core/os_thread_posix.c:326 (libminiasync.so.0+0x4f5a)
    #2 pmemstream_test_base::pmemstream_test_base(pmemstream_test_base&&) <null> (concurrent_async_wait+0x1dd3b)
    #3 pmemstream_empty::pmemstream_empty(pmemstream_empty&&) <null> (concurrent_async_wait+0x4c771)
    #4 std::_Head_base<0ul, pmemstream_empty, false>::_Head_base(std::_Head_base<0ul, pmemstream_empty, false>&&) <null> (concurrent_async_wait+0x4c7c9)
    #5 std::_Tuple_impl<0ul, pmemstream_empty, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, ranged<unsigned long, 1ul, 4ul> >::_Tuple_impl(std::_Tuple_impl<0ul, pmemstream_empty, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, ranged<unsigned long, 1ul, 4ul> >&&) <null> (concurrent_async_wait+0x4c83c)
    #6 std::tuple<pmemstream_empty, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, ranged<unsigned long, 1ul, 4ul> >::tuple(std::tuple<pmemstream_empty, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, ranged<unsigned long, 1ul, 4ul> >&&) <null> (concurrent_async_wait+0x4c8a1)
    #7 rc::Gen<std::tuple<pmemstream_empty, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, ranged<unsigned long, 1ul, 4ul> > >::operator*() const <null> (concurrent_async_wait+0x4c9f6)
    #8 execWithArguments<rc::detail::PropertyAdapter<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, void(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool&&, ranged<long unsigned int, 1, 4>&&> /usr/include/rapidcheck/gen/detail/ExecRaw.hpp:21 (concurrent_async_wait+0x18175)
    #9 execWithRecipe<rc::detail::PropertyAdapter<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, void(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)> > /usr/include/rapidcheck/gen/detail/ExecRaw.hpp:33 (concurrent_async_wait+0x17ce2)
    #10 operator() /usr/include/rapidcheck/gen/detail/ExecRaw.hpp:49 (concurrent_async_wait+0x177aa)
    #11 value /usr/include/rapidcheck/shrinkable/Create.hpp:40 (concurrent_async_wait+0x19d44)
    #12 value /usr/include/rapidcheck/Shrinkable.hpp:26 (concurrent_async_wait+0x197e4)
    #13 rc::Shrinkable<std::pair<rc::detail::TaggedResult, rc::gen::detail::Recipe> >::value() const <null> (concurrent_async_wait+0xa28c8)
    #14 check<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)> > /usr/include/rapidcheck/Check.hpp:63 (concurrent_async_wait+0x1662c)
    #15 operator() /home/kfilipek/Development/pmemstream/tests/unittest/concurrent_async_wait.cpp:38 (concurrent_async_wait+0x15d8e)
    #16 __invoke_impl<void, main(int, char**)::<lambda()>&> /usr/include/c++/11/bits/invoke.h:61 (concurrent_async_wait+0x1758f)
    #17 __invoke_r<void, main(int, char**)::<lambda()>&> /usr/include/c++/11/bits/invoke.h:111 (concurrent_async_wait+0x17094)
    #18 _M_invoke /usr/include/c++/11/bits/std_function.h:290 (concurrent_async_wait+0x16aa2)
    #19 std::function<void ()>::operator()() const <null> (concurrent_async_wait+0x202ba)
    #20 run_test /home/kfilipek/Development/pmemstream/tests/common/unittest.hpp:105 (concurrent_async_wait+0x152a0)
    #21 main /home/kfilipek/Development/pmemstream/tests/unittest/concurrent_async_wait.cpp:35 (concurrent_async_wait+0x160c8)

SUMMARY: ThreadSanitizer: data race (/lib/x86_64-linux-gnu/libstdc++.so.6+0x1a49a6) in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::__sv_wrapper, std::allocator<char> const&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=455926)
  Read of size 8 at 0x7efe714013e8 by main thread:
    #0 memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827 (libtsan.so.0+0x6243e)
    #1 memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:819 (libtsan.so.0+0x6243e)
    #2 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::__sv_wrapper, std::allocator<char> const&) <null> (libstdc++.so.6+0x1a49a6)
    #3 void __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string_view<char, std::char_traits<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::basic_string_view<char, std::char_traits<char> >&&) <null> (concurrent_async_wait+0x2ebaa)
    #4 void std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string_view<char, std::char_traits<char> > >(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::basic_string_view<char, std::char_traits<char> >&&) <null> (concurrent_async_wait+0x2741c)
    #5 void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::basic_string_view<char, std::char_traits<char> > >(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::basic_string_view<char, std::char_traits<char> >&&) <null> (concurrent_async_wait+0x2753c)
    #6 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >& std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<std::basic_string_view<char, std::char_traits<char> > >(std::basic_string_view<char, std::char_traits<char> >&&) <null> (concurrent_async_wait+0x21540)
    #7 pmemstream_helpers_type::get_elements_in_region[abi:cxx11](pmemstream_region, bool) <null> (concurrent_async_wait+0x1d598)
    #8 pmemstream_helpers_type::verify(pmemstream_region, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) <null> (concurrent_async_wait+0x1d691)
    #9 operator() /home/kfilipek/Development/pmemstream/tests/unittest/concurrent_async_wait.cpp:64 (concurrent_async_wait+0x15c86)
    #10 resultOf<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, pmemstream_empty, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool, ranged<long unsigned int, 1, 4> > /usr/include/rapidcheck/detail/Property.hpp:48 (concurrent_async_wait+0x1912e)
    #11 operator() /usr/include/rapidcheck/detail/Property.hpp:70 (concurrent_async_wait+0x189f1)
    #12 apply /usr/include/rapidcheck/detail/ApplyTuple.h:20 (concurrent_async_wait+0x1873d)
    #13 applyTuple<std::tuple<pmemstream_empty, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, ranged<long unsigned int, 1, 4> >, const rc::detail::PropertyAdapter<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, void(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>&> /usr/include/rapidcheck/detail/ApplyTuple.h:51 (concurrent_async_wait+0x18481)
    #14 execWithArguments<rc::detail::PropertyAdapter<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, void(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool&&, ranged<long unsigned int, 1, 4>&&> /usr/include/rapidcheck/gen/detail/ExecRaw.hpp:21 (concurrent_async_wait+0x18195)
    #15 execWithRecipe<rc::detail::PropertyAdapter<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, void(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)> > /usr/include/rapidcheck/gen/detail/ExecRaw.hpp:33 (concurrent_async_wait+0x17ce2)
    #16 operator() /usr/include/rapidcheck/gen/detail/ExecRaw.hpp:49 (concurrent_async_wait+0x177aa)
    #17 value /usr/include/rapidcheck/shrinkable/Create.hpp:40 (concurrent_async_wait+0x19d44)
    #18 value /usr/include/rapidcheck/Shrinkable.hpp:26 (concurrent_async_wait+0x197e4)
    #19 rc::Shrinkable<std::pair<rc::detail::TaggedResult, rc::gen::detail::Recipe> >::value() const <null> (concurrent_async_wait+0xa28c8)
    #20 check<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)> > /usr/include/rapidcheck/Check.hpp:63 (concurrent_async_wait+0x1662c)
    #21 operator() /home/kfilipek/Development/pmemstream/tests/unittest/concurrent_async_wait.cpp:38 (concurrent_async_wait+0x15d8e)
    #22 __invoke_impl<void, main(int, char**)::<lambda()>&> /usr/include/c++/11/bits/invoke.h:61 (concurrent_async_wait+0x1758f)
    #23 __invoke_r<void, main(int, char**)::<lambda()>&> /usr/include/c++/11/bits/invoke.h:111 (concurrent_async_wait+0x17094)
    #24 _M_invoke /usr/include/c++/11/bits/std_function.h:290 (concurrent_async_wait+0x16aa2)
    #25 std::function<void ()>::operator()() const <null> (concurrent_async_wait+0x202ba)
    #26 run_test /home/kfilipek/Development/pmemstream/tests/common/unittest.hpp:105 (concurrent_async_wait+0x152a0)
    #27 main /home/kfilipek/Development/pmemstream/tests/unittest/concurrent_async_wait.cpp:35 (concurrent_async_wait+0x160c8)

  Previous write of size 8 at 0x7efe714013e8 by thread T40:
    #0 memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827 (libtsan.so.0+0x6243e)
    #1 memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:819 (libtsan.so.0+0x6243e)
    #2 std_memcpy /tmp/miniasync-mwT/src/data_mover_threads.c:53 (libminiasync.so.0+0x4005)

  Location is global '<null>' at 0x000000000000 (testfile+0x0000000013e8)

  Thread T40 (tid=456135, running) created by main thread at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605b8)
    #1 os_thread_create /tmp/miniasync-mwT/src/core/os_thread_posix.c:326 (libminiasync.so.0+0x4f5a)
    #2 pmemstream_test_base::pmemstream_test_base(pmemstream_test_base&&) <null> (concurrent_async_wait+0x1dd3b)
    #3 pmemstream_empty::pmemstream_empty(pmemstream_empty&&) <null> (concurrent_async_wait+0x4c771)
    #4 std::_Head_base<0ul, pmemstream_empty, false>::_Head_base(std::_Head_base<0ul, pmemstream_empty, false>&&) <null> (concurrent_async_wait+0x4c7c9)
    #5 std::_Tuple_impl<0ul, pmemstream_empty, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, ranged<unsigned long, 1ul, 4ul> >::_Tuple_impl(std::_Tuple_impl<0ul, pmemstream_empty, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, ranged<unsigned long, 1ul, 4ul> >&&) <null> (concurrent_async_wait+0x4c83c)
    #6 std::tuple<pmemstream_empty, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, ranged<unsigned long, 1ul, 4ul> >::tuple(std::tuple<pmemstream_empty, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, ranged<unsigned long, 1ul, 4ul> >&&) <null> (concurrent_async_wait+0x4c8a1)
    #7 rc::Gen<std::tuple<pmemstream_empty, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, ranged<unsigned long, 1ul, 4ul> > >::operator*() const <null> (concurrent_async_wait+0x4c9f6)
    #8 execWithArguments<rc::detail::PropertyAdapter<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, void(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool&&, ranged<long unsigned int, 1, 4>&&> /usr/include/rapidcheck/gen/detail/ExecRaw.hpp:21 (concurrent_async_wait+0x18175)
    #9 execWithRecipe<rc::detail::PropertyAdapter<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)>, void(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)> > /usr/include/rapidcheck/gen/detail/ExecRaw.hpp:33 (concurrent_async_wait+0x17ce2)
    #10 operator() /usr/include/rapidcheck/gen/detail/ExecRaw.hpp:49 (concurrent_async_wait+0x177aa)
    #11 value /usr/include/rapidcheck/shrinkable/Create.hpp:40 (concurrent_async_wait+0x19d44)
    #12 value /usr/include/rapidcheck/Shrinkable.hpp:26 (concurrent_async_wait+0x197e4)
    #13 rc::Shrinkable<std::pair<rc::detail::TaggedResult, rc::gen::detail::Recipe> >::value() const <null> (concurrent_async_wait+0xa28c8)
    #14 check<main(int, char**)::<lambda()>::<lambda(pmemstream_empty&&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool, ranged<long unsigned int, 1, 4>)> > /usr/include/rapidcheck/Check.hpp:63 (concurrent_async_wait+0x1662c)
    #15 operator() /home/kfilipek/Development/pmemstream/tests/unittest/concurrent_async_wait.cpp:38 (concurrent_async_wait+0x15d8e)
    #16 __invoke_impl<void, main(int, char**)::<lambda()>&> /usr/include/c++/11/bits/invoke.h:61 (concurrent_async_wait+0x1758f)
    #17 __invoke_r<void, main(int, char**)::<lambda()>&> /usr/include/c++/11/bits/invoke.h:111 (concurrent_async_wait+0x17094)
    #18 _M_invoke /usr/include/c++/11/bits/std_function.h:290 (concurrent_async_wait+0x16aa2)
    #19 std::function<void ()>::operator()() const <null> (concurrent_async_wait+0x202ba)
    #20 run_test /home/kfilipek/Development/pmemstream/tests/common/unittest.hpp:105 (concurrent_async_wait+0x152a0)
    #21 main /home/kfilipek/Development/pmemstream/tests/unittest/concurrent_async_wait.cpp:35 (concurrent_async_wait+0x160c8)

SUMMARY: ThreadSanitizer: data race (/lib/x86_64-linux-gnu/libstdc++.so.6+0x1a49a6) in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::__sv_wrapper, std::allocator<char> const&)
==================
OK, passed 100 tests
ThreadSanitizer: reported 2 warnings

CMake Error at /home/kfilipek/Development/pmemstream/tests/cmake/exec_functions.cmake:206 (message):
   /home/kfilipek/Development/pmemstream/build/tests/concurrent_async_wait /dev/shm/concurrent_async_wait_0_none/testfile failed: 66
Call Stack (most recent call first):
  /home/kfilipek/Development/pmemstream/tests/cmake/exec_functions.cmake:247 (execute_common)
  /home/kfilipek/Development/pmemstream/tests/cmake/run_default.cmake:8 (execute)



    Start 41: concurrent_async_wait_0_memcheck_SKIPPED_BECAUSE_SANITIZER_USED
2/3 Test #41: concurrent_async_wait_0_memcheck_SKIPPED_BECAUSE_SANITIZER_USED ....   Passed    0.01 sec
    Start 42: concurrent_async_wait_0_pmemcheck_SKIPPED_BECAUSE_SANITIZER_USED
3/3 Test #42: concurrent_async_wait_0_pmemcheck_SKIPPED_BECAUSE_SANITIZER_USED ...   Passed    0.01 sec

67% tests passed, 1 tests failed out of 3

Total Test time (real) =   7.79 sec

The following tests FAILED:
         40 - concurrent_async_wait_0_none (Failed)
Errors while running CTest

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Type: Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants