{"action":"opened","issue":{"url":"https://api.github.com/repos/boostorg/asio/issues/150","repository_url":"https://api.github.com/repos/boostorg/asio","labels_url":"https://api.github.com/repos/boostorg/asio/issues/150/labels{/name}","comments_url":"https://api.github.com/repos/boostorg/asio/issues/150/comments","events_url":"https://api.github.com/repos/boostorg/asio/issues/150/events","html_url":"https://github.com/boostorg/asio/issues/150","id":364146432,"node_id":"MDU6SXNzdWUzNjQxNDY0MzI=","number":150,"title":"SIGSEGV on scheduler::compensating_work_started()","user":{"login":"cotti","id":889227,"node_id":"MDQ6VXNlcjg4OTIyNw==","avatar_url":"https://avatars2.githubusercontent.com/u/889227?v=4","gravatar_id":"","url":"https://api.github.com/users/cotti","html_url":"https://github.com/cotti","followers_url":"https://api.github.com/users/cotti/followers","following_url":"https://api.github.com/users/cotti/following{/other_user}","gists_url":"https://api.github.com/users/cotti/gists{/gist_id}","starred_url":"https://api.github.com/users/cotti/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cotti/subscriptions","organizations_url":"https://api.github.com/users/cotti/orgs","repos_url":"https://api.github.com/users/cotti/repos","events_url":"https://api.github.com/users/cotti/events{/privacy}","received_events_url":"https://api.github.com/users/cotti/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-09-26T18:03:18Z","updated_at":"2018-09-26T18:03:18Z","closed_at":null,"author_association":"NONE","body":"We have encountered multiple times what appears to be the same issue as described in https://svn.boost.org/trac10/ticket/13562 on a server application that makes heavy use of asio to send HTTP requests and read their responses.\r\n\r\nOur usage is fairly standard: upon getting a connection, we call boost::asio::async_write() binding the next method, onWrite(), and inside it we call boost::asio::async_read_until(), binding onRead() which performs the next step of reading the response to our request, and so on. Our Async HTTP threads are quite short-lived: on our logs their whole life-cycle takes less than a second. We find the threads take a certain amount of time without activity before they are hit with a SIGSEGV - it can vary between a few seconds up to more than a minute, and it seems to happen between onWrite() and onRead().\r\n\r\nWe were using boost 1.66.0 up until a couple of weeks ago. After this issue occurred a few times, we tried an upgrade to boost 1.68.0, but if anything the frequency this issue is ocurring has increased to almost daily.\r\n\r\n```\r\n        Received signal: 11 - SIGSEGV. Segmentation violation\r\n        Thread: A-Http-4816 - 140326043744000\r\n        Stack trace:\r\n          /server: SignalHandler::getSignalInformation(int)()+0x191\r\n          /server() [0x144a973]\r\n          /lib64/libc.so.6: ()+0x35250\r\n          /server: boost::asio::detail::scheduler::compensating_work_started()()+0x20\r\n          /server: boost::asio::detail::epoll_reactor::perform_io_cleanup_on_block_exit::~perform_io_cleanup_on_block_exit()()+0x63\r\n          /server: boost::asio::detail::epoll_reactor::descriptor_state::perform_io(unsigned int)()+0x16d\r\n          /server: boost::asio::detail::epoll_reactor::descriptor_state::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long)()+0x3f\r\n          /server: boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long)()+0x32\r\n          /server: 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&)()+0x1a8\r\n          /server: boost::asio::detail::scheduler::run(boost::system::error_code&)()+0x10e\r\n          /server: boost::asio::io_context::run()()+0x2f\r\n          /server: boost::_mfi::mf0<unsigned long, boost::asio::io_context>::operator()(boost::asio::io_context*) const()+0x65\r\n          /server: unsigned long boost::_bi::list1<boost::_bi::value<boost::asio::io_context*> >::operator()<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_context>, boost::_bi::list0>(boost::_bi::type<unsigned long>, boost::_mfi::mf0<unsigned long, boost::asio::io_context>&, boost::_bi::list0&, long)()+0x4b\r\n          /server: boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_context>, boost::_bi::list1<boost::_bi::value<boost::asio::io_context*> > >::operator()()()+0x39\r\n          /server: unsigned long std::_Bind_simple<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_context>, boost::_bi::list1<boost::_bi::value<boost::asio::io_context*> > > ()>::_M_invoke<>(std::_Index_tuple<>)()+0x28\r\n          /server: std::_Bind_simple<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_context>, boost::_bi::list1<boost::_bi::value<boost::asio::io_context*> > > ()>::operator()()()+0x1b\r\n          /server: std::thread::_Impl<std::_Bind_simple<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_context>, boost::_bi::list1<boost::_bi::value<boost::asio::io_context*> > > ()> >::_M_run()()+0x1c\r\n          /lib64/libstdc++.so.6: ()+0xb5230\r\n          /lib64/libpthread.so.0: ()+0x7dc5\r\n          /lib64/libc.so.6: clone()+0x6d\r\n``` "}}
{"actor":{"display_login":"cotti"}}