Open jeremybarnes opened 3 years ago
http_client_test FAILED
Boost.Test WARNING: token "build/arm64/tests/http_client_test" does not correspond to the Boost.Test argument
and should be placed after all Boost.Test arguments and the -- separator.
For example: http_client_test --random -- build/arm64/tests/http_client_test
Running 9 test cases...
client_get
request with timeout
testing behaviour with connection: close
request with 404
request with 200
client_post
client_put
client_delete
client_put_multi
move_constructor
testing move constructor
testing move assignment op.
requests done: 2475
requests done: 7606
requests done: 11111
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 53020 (#0)
> GET /timeout HTTP/1.1
Host: 127.0.0.1:53020
Accept: */*
* Operation timed out after 999 milliseconds with 0 bytes received
* Closing connection 0
* Hostname 127.0.0.1 was found in DNS cache
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 53020 (#1)
> GET / HTTP/1.1
Host: 127.0.0.1:53020
Accept: */*
* Operation timed out after 1003 milliseconds with 0 bytes received
* Closing connection 1
* connection-close
=================================================================
==12203==ERROR: AddressSanitizer: heap-use-after-free on address 0x000109d03db0 at pc 0x000100c98828 bp 0x00016f54a6f0 sp 0x00016f54a6e8
READ of size 8 at 0x000109d03db0 thread T38
#0 0x100c98824 in std::__1::__function::__func<MLDB::TcpSocketHandler::requestClose(std::__1::function<void ()>)::$_0, std::__1::allocator<MLDB::TcpSocketHandler::requestClose(std::__1::function<void ()>)::$_0>, void ()>::operator()() functional:1727
#1 0x100cb312c in void boost::asio::detail::executor_function::complete<MLDB::TcpSocketHandlerImpl::requestClose(std::__1::function<void ()>)::$_1, std::__1::allocator<void> >(boost::asio::detail::executor_function::impl_base*, bool) executor_function.hpp:116
#2 0x100c64d14 in boost::asio::detail::executor_op<boost::asio::detail::executor_function, std::__1::allocator<void>, boost::asio::detail::scheduler_operation>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) executor_op.hpp:70
#3 0x100c2716c in boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) scheduler.ipp:486
#4 0x100c261cc in boost::asio::detail::scheduler::run(boost::system::error_code&) scheduler.ipp:204
#5 0x100c25a7c in MLDB::AsioThreadPool::Impl::run(int) asio_thread_pool.cc:84
#6 0x100c257a8 in void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, MLDB::AsioThreadPool::Impl::Impl(boost::asio::io_context&, double)::'lambda'()> >(void*) thread:291
#7 0x18e887874 in _pthread_start+0x13c (libsystem_pthread.dylib:arm64e+0x7874)
#8 0x18e8825dc in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x25dc)
0x000109d03db0 is located 48 bytes inside of 368-byte region [0x000109d03d80,0x000109d03ef0)
freed by thread T38 here:
#0 0x1015c4f64 in wrap__ZdlPv+0x74 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x4cf64)
#1 0x100c94f54 in std::__1::__function::__func<MLDB::TcpAcceptor::dissociate(MLDB::TcpSocketHandler*)::$_1, std::__1::allocator<MLDB::TcpAcceptor::dissociate(MLDB::TcpSocketHandler*)::$_1>, void ()>::destroy_deallocate() functional:1719
#2 0x100c913a8 in boost::asio::detail::completion_handler<std::__1::function<void ()>, boost::asio::io_context::basic_executor_type<std::__1::allocator<void>, 0u> >::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) completion_handler.hpp:77
#3 0x100c2716c in boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) scheduler.ipp:486
#4 0x100c261cc in boost::asio::detail::scheduler::run(boost::system::error_code&) scheduler.ipp:204
#5 0x100c25a7c in MLDB::AsioThreadPool::Impl::run(int) asio_thread_pool.cc:84
#6 0x100c257a8 in void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, MLDB::AsioThreadPool::Impl::Impl(boost::asio::io_context&, double)::'lambda'()> >(void*) thread:291
#7 0x18e887874 in _pthread_start+0x13c (libsystem_pthread.dylib:arm64e+0x7874)
#8 0x18e8825dc in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x25dc)
previously allocated by thread T38 here:
#0 0x1015c4b4c in wrap__Znwm+0x74 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x4cb4c)
#1 0x100b9c6cc in std::__1::__function::__func<MLDB::TestHttpService::TestHttpService(MLDB::EventLoop&)::$_0, std::__1::allocator<MLDB::TestHttpService::TestHttpService(MLDB::EventLoop&)::$_0>, std::__1::shared_ptr<MLDB::TcpSocketHandler> (MLDB::TcpSocket&&)>::operator()(MLDB::TcpSocket&&) functional:1727
#2 0x100ca39c0 in boost::asio::detail::binder1<MLDB::TcpAcceptorImpl::accept(MLDB::TcpAcceptorImpl::Endpoint&)::$_0, boost::system::error_code>::operator()() bind_handler.hpp:65
#3 0x100ca17d8 in boost::asio::detail::reactive_socket_accept_op<boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::any_io_executor>, boost::asio::ip::tcp, MLDB::TcpAcceptorImpl::accept(MLDB::TcpAcceptorImpl::Endpoint&)::$_0, boost::asio::any_io_executor>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) reactive_socket_accept_op.hpp:148
#4 0x100c2716c in boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) scheduler.ipp:486
#5 0x100c261cc in boost::asio::detail::scheduler::run(boost::system::error_code&) scheduler.ipp:204
#6 0x100c25a7c in MLDB::AsioThreadPool::Impl::run(int) asio_thread_pool.cc:84
#7 0x100c257a8 in void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, MLDB::AsioThreadPool::Impl::Impl(boost::asio::io_context&, double)::'lambda'()> >(void*) thread:291
#8 0x18e887874 in _pthread_start+0x13c (libsystem_pthread.dylib:arm64e+0x7874)
#9 0x18e8825dc in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x25dc)
Thread T38 created by T0 here:
#0 0x1015b15b0 in wrap_pthread_create+0x54 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x395b0)
#1 0x100c25668 in std::__1::thread::thread<MLDB::AsioThreadPool::Impl::Impl(boost::asio::io_context&, double)::'lambda'(), void>(MLDB::AsioThreadPool::Impl::Impl(boost::asio::io_context&, double)::'lambda'()&&) thread:307
#2 0x100c23a8c in MLDB::AsioThreadPool::Impl::Impl(boost::asio::io_context&, double) asio_thread_pool.cc:36
#3 0x100c1cf7c in MLDB::AsioThreadPool::AsioThreadPool(MLDB::EventLoop&, double) asio_thread_pool.cc:204
#4 0x1009f6a94 in test_http_client_connection_closed::test_method() http_client_test.cc:429
#5 0x1009f5068 in test_http_client_connection_closed_invoker() http_client_test.cc:425
#6 0x101489158 in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&)+0x28 (libboost_unit_test_framework.dylib:arm64+0xd158)
#7 0x101486328 in boost::execution_monitor::catch_signals(boost::function<int ()> const&)+0xec (libboost_unit_test_framework.dylib:arm64+0xa328)
#8 0x10148645c in boost::execution_monitor::execute(boost::function<int ()> const&)+0x30 (libboost_unit_test_framework.dylib:arm64+0xa45c)
#9 0x101487088 in boost::execution_monitor::vexecute(boost::function<void ()> const&)+0x2c (libboost_unit_test_framework.dylib:arm64+0xb088)
#10 0x1014ae5d8 in boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned long)+0x140 (libboost_unit_test_framework.dylib:arm64+0x325d8)
#11 0x1014919cc in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*)+0xb4c (libboost_unit_test_framework.dylib:arm64+0x159cc)
#12 0x101491aac in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*)+0xc2c (libboost_unit_test_framework.dylib:arm64+0x15aac)
#13 0x10148fd28 in boost::unit_test::framework::run(unsigned long, bool)+0x8e0 (libboost_unit_test_framework.dylib:arm64+0x13d28)
#14 0x1014ad30c in boost::unit_test::unit_test_main(bool (*)(), int, char**)+0x370 (libboost_unit_test_framework.dylib:arm64+0x3130c)
#15 0x18e8a544c in start+0x0 (libdyld.dylib:arm64e+0x1844c)
SUMMARY: AddressSanitizer: heap-use-after-free functional:1727 in std::__1::__function::__func<MLDB::TcpSocketHandler::requestClose(std::__1::function<void ()>)::$_0, std::__1::allocator<MLDB::TcpSocketHandler::requestClose(std::__1::function<void ()>)::$_0>, void ()>::operator()()
Shadow bytes around the buggy address:
0x0070213c0760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fa fa
0x0070213c0770: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
0x0070213c0780: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0070213c0790: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0070213c07a0: fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa fa
=>0x0070213c07b0: fd fd fd fd fd fd[fd]fd fd fd fd fd fd fd fd fd
0x0070213c07c0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0070213c07d0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa
0x0070213c07e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0070213c07f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0070213c0800: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==12203==ABORTING
==12203==AddressSanitizer CHECK failed: /AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/clang_compiler_rt/clang-1205.0.22.9/compiler-rt/lib/asan/asan_poisoning.cpp:38 "((AddrIsInMem(addr + size - (1ULL << kDefaultShadowScale)))) != (0)" (0x0, 0x0)
#0 0x1015c09f8 in __asan::AsanCheckFailed(char const*, int, char const*, unsigned long long, unsigned long long)+0x50 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x489f8)
**** WATCHDOG TIMEOUT; KILLING HUNG TEST ****
http_client_test FAILED
make: *** [build/arm64/tests/http_client_test.passed] Error 1