Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data race in in websocket close tests #1594

Closed
djarek opened this issue Apr 26, 2019 · 0 comments
Closed

Data race in in websocket close tests #1594

djarek opened this issue Apr 26, 2019 · 0 comments

Comments

@djarek
Copy link
Contributor

djarek commented Apr 26, 2019

====== BEGIN OUTPUT ======
==================
WARNING: ThreadSanitizer: data race (pid=12586)
  Write of size 4 at 0x7b40000002c8 by main thread:
    #0 boost::beast::test::stream::connect(boost::beast::test::stream&) /home/damian/projects/boost/./boost/beast/_experimental/test/impl/stream.ipp:268:22 (close+0x822b66)
    #1 boost::beast::websocket::close_test::testSuspend()::'lambda'(boost::beast::test::fail_count&)::operator()(boost::beast::test::fail_count&) const /home/damian/projects/boost/libs/beast/test/beast/websocket/close.cpp:290:29 (close+0x4d5b66)
    #2 void boost::beast::websocket::websocket_test_suite::doFailLoop<boost::beast::websocket::close_test::testSuspend()::'lambda'(boost::beast::test::fail_count&)>(boost::beast::websocket::close_test::testSuspend()::'lambda'(boost::beast::test::fail_count&) const&, unsigned long) /home/damian/projects/boost/libs/beast/test/beast/websocket/test.hpp:290:17 (close+0x4d399b)
    #3 boost::beast::websocket::close_test::testSuspend() /home/damian/projects/boost/libs/beast/test/beast/websocket/close.cpp:285:9 (close+0x4d37ac)
    #4 boost::beast::websocket::close_test::run() /home/damian/projects/boost/libs/beast/test/beast/websocket/close.cpp:751:9 (close+0x4ce898)
    #5 void boost::beast::unit_test::suite::run<void>(boost::beast::unit_test::runner&) /home/damian/projects/boost/./boost/beast/_experimental/unit_test/suite.hpp:595:9 (close+0x7de42b)
    #6 void boost::beast::unit_test::suite::operator()<void>(boost::beast::unit_test::runner&) /home/damian/projects/boost/./boost/beast/_experimental/unit_test/suite.hpp:434:9 (close+0x4ce68c)
    #7 boost::beast::unit_test::suite_info boost::beast::unit_test::make_suite_info<boost::beast::websocket::close_test>(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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)::'lambda'(boost::beast::unit_test::runner&)::operator()(boost::beast::unit_test::runner&) const /home/damian/projects/boost/./boost/beast/_experimental/unit_test/suite_info.hpp:117:13 (close+0x4ce40e)
    #8 std::_Function_handler<void (boost::beast::unit_test::runner&), boost::beast::unit_test::suite_info boost::beast::unit_test::make_suite_info<boost::beast::websocket::close_test>(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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)::'lambda'(boost::beast::unit_test::runner&)>::_M_invoke(std::_Any_data const&, boost::beast::unit_test::runner&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:297:2 (close+0x4ce132)
    #9 std::function<void (boost::beast::unit_test::runner&)>::operator()(boost::beast::unit_test::runner&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:687:14 (close+0x7ea05a)
    #10 boost::beast::unit_test::suite_info::run(boost::beast::unit_test::runner&) const /home/damian/projects/boost/./boost/beast/_experimental/unit_test/suite_info.hpp:86:9 (close+0x7e9f9c)
    #11 bool boost::beast::unit_test::runner::run<void>(boost::beast::unit_test::suite_info const&) /home/damian/projects/boost/./boost/beast/_experimental/unit_test/runner.hpp:189:7 (close+0x7e94b4)
    #12 bool boost::beast::unit_test::runner::run_each<boost::beast::unit_test::suite_list>(boost::beast::unit_test::suite_list const&) /home/damian/projects/boost/./boost/beast/_experimental/unit_test/runner.hpp:224:18 (close+0x7dfed3)
    #13 main /home/damian/projects/boost/./boost/beast/_experimental/unit_test/main.ipp:82:20 (close+0x7df2f2)

  Previous read of size 4 at 0x7b40000002c8 by thread T2 (mutexes: write M52):
    #0 unsigned long boost::beast::test::stream::read_some<boost::beast::detail::buffers_pair<true> >(boost::beast::detail::buffers_pair<true> const&, boost::system::error_code&)::'lambda'()::operator()() const /home/damian/projects/boost/./boost/beast/_experimental/test/impl/stream.hpp:289:22 (close+0x4fb74c)
    #1 void std::condition_variable::wait<unsigned long boost::beast::test::stream::read_some<boost::beast::detail::buffers_pair<true> >(boost::beast::detail::buffers_pair<true> const&, boost::system::error_code&)::'lambda'()>(std::unique_lock<std::mutex>&, boost::beast::detail::buffers_pair<true>) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/condition_variable:98:10 (close+0x4faf68)
    #2 unsigned long boost::beast::test::stream::read_some<boost::beast::detail::buffers_pair<true> >(boost::beast::detail::buffers_pair<true> const&, boost::system::error_code&) /home/damian/projects/boost/./boost/beast/_experimental/test/impl/stream.hpp:284:13 (close+0x4f9195)
    #3 unsigned long boost::beast::detail::read<boost::beast::test::stream, boost::beast::static_buffer<1536ul>, boost::beast::http::detail::read_all_condition<true>, void>(boost::beast::test::stream&, boost::beast::static_buffer<1536ul>&, boost::beast::http::detail::read_all_condition<true>, boost::system::error_code&) /home/damian/projects/boost/./boost/beast/core/detail/impl/read.hpp:217:20 (close+0x4f8e0a)
    #4 unsigned long boost::beast::http::read<boost::beast::test::stream, boost::beast::static_buffer<1536ul>, true>(boost::beast::test::stream&, boost::beast::static_buffer<1536ul>&, boost::beast::http::basic_parser<true>&, boost::system::error_code&) /home/damian/projects/boost/./boost/beast/http/impl/read.hpp:433:12 (close+0x4e7412)
    #5 void boost::beast::websocket::stream<boost::beast::test::stream&, true>::do_accept<boost::asio::const_buffer, void (*)(boost::beast::http::message<false, boost::beast::http::basic_string_body<char, std::char_traits<char>, std::allocator<char> >, boost::beast::http::basic_fields<std::allocator<char> > >&)>(boost::asio::const_buffer const&, void (* const&)(boost::beast::http::message<false, boost::beast::http::basic_string_body<char, std::char_traits<char>, std::allocator<char> >, boost::beast::http::basic_fields<std::allocator<char> > >&), boost::system::error_code&) /home/damian/projects/boost/./boost/beast/websocket/impl/accept.hpp:447:5 (close+0x4e6ac0)
    #6 boost::beast::websocket::stream<boost::beast::test::stream&, true>::accept(boost::system::error_code&) /home/damian/projects/boost/./boost/beast/websocket/impl/accept.hpp:477:5 (close+0x4e6630)
    #7 boost::beast::websocket::stream<boost::beast::test::stream&, true>::accept() /home/damian/projects/boost/./boost/beast/websocket/impl/accept.hpp:465:5 (close+0x4e6093)
    #8 boost::beast::websocket::websocket_test_suite::echo_server::do_sync() /home/damian/projects/boost/libs/beast/test/beast/websocket/test.hpp:166:21 (close+0x4e5dcc)
    #9 boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()::operator()() const /home/damian/projects/boost/libs/beast/test/beast/websocket/test.hpp:105:39 (close+0x4e5d68)
    #10 void std::__invoke_impl<void, boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()>(std::__invoke_other, boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:60:14 (close+0x4e5d00)
    #11 std::__invoke_result<boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()>::type std::__invoke<boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()>(boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:95:14 (close+0x4e5c10)
    #12 decltype(std::__invoke(_S_declval<0ul>())) std::thread::_Invoker<std::tuple<boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:244:13 (close+0x4e5bb8)
    #13 std::thread::_Invoker<std::tuple<boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()> >::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:253:11 (close+0x4e5b58)
    #14 std::thread::_State_impl<std::thread::_Invoker<std::tuple<boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()> > >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:196:13 (close+0x4e593c)
    #15 <null> <null> (libstdc++.so.6+0xd041f)

  Location is heap block of size 248 at 0x7b4000000200 allocated by main thread:
    #0 operator new(unsigned long) <null> (close+0x4b37ad)
    #1 boost::detail::shared_count::shared_count<boost::beast::test::stream::state*, boost::detail::sp_ms_deleter<boost::beast::test::stream::state> >(boost::beast::test::stream::state*, boost::detail::sp_inplace_tag<boost::detail::sp_ms_deleter<boost::beast::test::stream::state> >) /home/damian/projects/boost/./boost/smart_ptr/detail/shared_count.hpp:214:19 (close+0x86caed)
    #2 boost::shared_ptr<boost::beast::test::stream::state>::shared_ptr<boost::beast::test::stream::state, boost::detail::sp_inplace_tag<boost::detail::sp_ms_deleter<boost::beast::test::stream::state> > >(boost::beast::test::stream::state*, boost::detail::sp_inplace_tag<boost::detail::sp_ms_deleter<boost::beast::test::stream::state> >) /home/damian/projects/boost/./boost/smart_ptr/shared_ptr.hpp:388:67 (close+0x86c7d2)
    #3 boost::detail::sp_if_not_array<boost::beast::test::stream::state>::type boost::make_shared<boost::beast::test::stream::state, boost::asio::io_context&, boost::shared_ptr<boost::beast::test::stream::service_impl>&, boost::beast::test::fail_count*&>(boost::asio::io_context&, boost::shared_ptr<boost::beast::test::stream::service_impl>&, boost::beast::test::fail_count*&) /home/damian/projects/boost/./boost/smart_ptr/make_shared_object.hpp:250:28 (close+0x8477a6)
    #4 boost::beast::test::stream::service::make_impl(boost::asio::io_context&, boost::beast::test::fail_count*) /home/damian/projects/boost/./boost/beast/_experimental/test/impl/stream.ipp:60:15 (close+0x821224)
    #5 boost::beast::test::stream::stream(boost::asio::io_context&) /home/damian/projects/boost/./boost/beast/_experimental/test/impl/stream.ipp:224:11 (close+0x822580)
    #6 boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind) /home/damian/projects/boost/libs/beast/test/beast/websocket/test.hpp:93:15 (close+0x4d641d)
    #7 boost::beast::websocket::close_test::testSuspend()::'lambda'(boost::beast::test::fail_count&)::operator()(boost::beast::test::fail_count&) const /home/damian/projects/boost/libs/beast/test/beast/websocket/close.cpp:287:25 (close+0x4d5af6)
    #8 void boost::beast::websocket::websocket_test_suite::doFailLoop<boost::beast::websocket::close_test::testSuspend()::'lambda'(boost::beast::test::fail_count&)>(boost::beast::websocket::close_test::testSuspend()::'lambda'(boost::beast::test::fail_count&) const&, unsigned long) /home/damian/projects/boost/libs/beast/test/beast/websocket/test.hpp:290:17 (close+0x4d399b)
    #9 boost::beast::websocket::close_test::testSuspend() /home/damian/projects/boost/libs/beast/test/beast/websocket/close.cpp:285:9 (close+0x4d37ac)
    #10 boost::beast::websocket::close_test::run() /home/damian/projects/boost/libs/beast/test/beast/websocket/close.cpp:751:9 (close+0x4ce898)
    #11 void boost::beast::unit_test::suite::run<void>(boost::beast::unit_test::runner&) /home/damian/projects/boost/./boost/beast/_experimental/unit_test/suite.hpp:595:9 (close+0x7de42b)
    #12 void boost::beast::unit_test::suite::operator()<void>(boost::beast::unit_test::runner&) /home/damian/projects/boost/./boost/beast/_experimental/unit_test/suite.hpp:434:9 (close+0x4ce68c)
    #13 boost::beast::unit_test::suite_info boost::beast::unit_test::make_suite_info<boost::beast::websocket::close_test>(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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)::'lambda'(boost::beast::unit_test::runner&)::operator()(boost::beast::unit_test::runner&) const /home/damian/projects/boost/./boost/beast/_experimental/unit_test/suite_info.hpp:117:13 (close+0x4ce40e)
    #14 std::_Function_handler<void (boost::beast::unit_test::runner&), boost::beast::unit_test::suite_info boost::beast::unit_test::make_suite_info<boost::beast::websocket::close_test>(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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)::'lambda'(boost::beast::unit_test::runner&)>::_M_invoke(std::_Any_data const&, boost::beast::unit_test::runner&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:297:2 (close+0x4ce132)
    #15 std::function<void (boost::beast::unit_test::runner&)>::operator()(boost::beast::unit_test::runner&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:687:14 (close+0x7ea05a)
    #16 boost::beast::unit_test::suite_info::run(boost::beast::unit_test::runner&) const /home/damian/projects/boost/./boost/beast/_experimental/unit_test/suite_info.hpp:86:9 (close+0x7e9f9c)
    #17 bool boost::beast::unit_test::runner::run<void>(boost::beast::unit_test::suite_info const&) /home/damian/projects/boost/./boost/beast/_experimental/unit_test/runner.hpp:189:7 (close+0x7e94b4)
    #18 bool boost::beast::unit_test::runner::run_each<boost::beast::unit_test::suite_list>(boost::beast::unit_test::suite_list const&) /home/damian/projects/boost/./boost/beast/_experimental/unit_test/runner.hpp:224:18 (close+0x7dfed3)
    #19 main /home/damian/projects/boost/./boost/beast/_experimental/unit_test/main.ipp:82:20 (close+0x7df2f2)

  Mutex M52 (0x7b4000000238) created at:
    #0 pthread_mutex_lock <null> (close+0x4462fe)
    #1 __gthread_mutex_lock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64-linux-gnu/c++/8/bits/gthr-default.h:748:12 (close+0x4b56a6)
    #2 std::mutex::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_mutex.h:103:17 (close+0x4fb4e8)
    #3 std::unique_lock<std::mutex>::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_mutex.h:267:17 (close+0x4fb471)
    #4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_mutex.h:197:2 (close+0x4fae83)
    #5 unsigned long boost::beast::test::stream::read_some<boost::beast::detail::buffers_pair<true> >(boost::beast::detail::buffers_pair<true> const&, boost::system::error_code&) /home/damian/projects/boost/./boost/beast/_experimental/test/impl/stream.hpp:282:34 (close+0x4f910f)
    #6 unsigned long boost::beast::detail::read<boost::beast::test::stream, boost::beast::static_buffer<1536ul>, boost::beast::http::detail::read_all_condition<true>, void>(boost::beast::test::stream&, boost::beast::static_buffer<1536ul>&, boost::beast::http::detail::read_all_condition<true>, boost::system::error_code&) /home/damian/projects/boost/./boost/beast/core/detail/impl/read.hpp:217:20 (close+0x4f8e0a)
    #7 unsigned long boost::beast::http::read<boost::beast::test::stream, boost::beast::static_buffer<1536ul>, true>(boost::beast::test::stream&, boost::beast::static_buffer<1536ul>&, boost::beast::http::basic_parser<true>&, boost::system::error_code&) /home/damian/projects/boost/./boost/beast/http/impl/read.hpp:433:12 (close+0x4e7412)
    #8 void boost::beast::websocket::stream<boost::beast::test::stream&, true>::do_accept<boost::asio::const_buffer, void (*)(boost::beast::http::message<false, boost::beast::http::basic_string_body<char, std::char_traits<char>, std::allocator<char> >, boost::beast::http::basic_fields<std::allocator<char> > >&)>(boost::asio::const_buffer const&, void (* const&)(boost::beast::http::message<false, boost::beast::http::basic_string_body<char, std::char_traits<char>, std::allocator<char> >, boost::beast::http::basic_fields<std::allocator<char> > >&), boost::system::error_code&) /home/damian/projects/boost/./boost/beast/websocket/impl/accept.hpp:447:5 (close+0x4e6ac0)
    #9 boost::beast::websocket::stream<boost::beast::test::stream&, true>::accept(boost::system::error_code&) /home/damian/projects/boost/./boost/beast/websocket/impl/accept.hpp:477:5 (close+0x4e6630)
    #10 boost::beast::websocket::stream<boost::beast::test::stream&, true>::accept() /home/damian/projects/boost/./boost/beast/websocket/impl/accept.hpp:465:5 (close+0x4e6093)
    #11 boost::beast::websocket::websocket_test_suite::echo_server::do_sync() /home/damian/projects/boost/libs/beast/test/beast/websocket/test.hpp:166:21 (close+0x4e5dcc)
    #12 boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()::operator()() const /home/damian/projects/boost/libs/beast/test/beast/websocket/test.hpp:105:39 (close+0x4e5d68)
    #13 void std::__invoke_impl<void, boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()>(std::__invoke_other, boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:60:14 (close+0x4e5d00)
    #14 std::__invoke_result<boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()>::type std::__invoke<boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()>(boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:95:14 (close+0x4e5c10)
    #15 decltype(std::__invoke(_S_declval<0ul>())) std::thread::_Invoker<std::tuple<boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:244:13 (close+0x4e5bb8)
    #16 std::thread::_Invoker<std::tuple<boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()> >::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:253:11 (close+0x4e5b58)
    #17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind)::'lambda'()> > >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:196:13 (close+0x4e593c)
    #18 <null> <null> (libstdc++.so.6+0xd041f)

  Thread T2 (tid=12589, running) created by main thread at:
    #0 pthread_create <null> (close+0x42a135)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd06b4)
    #2 boost::beast::websocket::websocket_test_suite::echo_server::echo_server(std::ostream&, boost::beast::websocket::websocket_test_suite::kind) /home/damian/projects/boost/libs/beast/test/beast/websocket/test.hpp:105:22 (close+0x4d6579)
    #3 boost::beast::websocket::close_test::testSuspend()::'lambda'(boost::beast::test::fail_count&)::operator()(boost::beast::test::fail_count&) const /home/damian/projects/boost/libs/beast/test/beast/websocket/close.cpp:287:25 (close+0x4d5af6)
    #4 void boost::beast::websocket::websocket_test_suite::doFailLoop<boost::beast::websocket::close_test::testSuspend()::'lambda'(boost::beast::test::fail_count&)>(boost::beast::websocket::close_test::testSuspend()::'lambda'(boost::beast::test::fail_count&) const&, unsigned long) /home/damian/projects/boost/libs/beast/test/beast/websocket/test.hpp:290:17 (close+0x4d399b)
    #5 boost::beast::websocket::close_test::testSuspend() /home/damian/projects/boost/libs/beast/test/beast/websocket/close.cpp:285:9 (close+0x4d37ac)
    #6 boost::beast::websocket::close_test::run() /home/damian/projects/boost/libs/beast/test/beast/websocket/close.cpp:751:9 (close+0x4ce898)
    #7 void boost::beast::unit_test::suite::run<void>(boost::beast::unit_test::runner&) /home/damian/projects/boost/./boost/beast/_experimental/unit_test/suite.hpp:595:9 (close+0x7de42b)
    #8 void boost::beast::unit_test::suite::operator()<void>(boost::beast::unit_test::runner&) /home/damian/projects/boost/./boost/beast/_experimental/unit_test/suite.hpp:434:9 (close+0x4ce68c)
    #9 boost::beast::unit_test::suite_info boost::beast::unit_test::make_suite_info<boost::beast::websocket::close_test>(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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)::'lambda'(boost::beast::unit_test::runner&)::operator()(boost::beast::unit_test::runner&) const /home/damian/projects/boost/./boost/beast/_experimental/unit_test/suite_info.hpp:117:13 (close+0x4ce40e)
    #10 std::_Function_handler<void (boost::beast::unit_test::runner&), boost::beast::unit_test::suite_info boost::beast::unit_test::make_suite_info<boost::beast::websocket::close_test>(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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)::'lambda'(boost::beast::unit_test::runner&)>::_M_invoke(std::_Any_data const&, boost::beast::unit_test::runner&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:297:2 (close+0x4ce132)
    #11 std::function<void (boost::beast::unit_test::runner&)>::operator()(boost::beast::unit_test::runner&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:687:14 (close+0x7ea05a)
    #12 boost::beast::unit_test::suite_info::run(boost::beast::unit_test::runner&) const /home/damian/projects/boost/./boost/beast/_experimental/unit_test/suite_info.hpp:86:9 (close+0x7e9f9c)
    #13 bool boost::beast::unit_test::runner::run<void>(boost::beast::unit_test::suite_info const&) /home/damian/projects/boost/./boost/beast/_experimental/unit_test/runner.hpp:189:7 (close+0x7e94b4)
    #14 bool boost::beast::unit_test::runner::run_each<boost::beast::unit_test::suite_list>(boost::beast::unit_test::suite_list const&) /home/damian/projects/boost/./boost/beast/_experimental/unit_test/runner.hpp:224:18 (close+0x7dfed3)
    #15 main /home/damian/projects/boost/./boost/beast/_experimental/unit_test/main.ipp:82:20 (close+0x7df2f2)

SUMMARY: ThreadSanitizer: data race /home/damian/projects/boost/./boost/beast/_experimental/test/impl/stream.ipp:268:22 in boost::beast::test::stream::connect(boost::beast::test::stream&)
djarek added a commit to djarek/beast that referenced this issue Apr 29, 2019
Resolve: boostorg#1594

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant