Subject: Re: [Boost-bugs] [Boost C++ Libraries] #13562: Missing null pointer check in compensating_work_started
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2018-05-09 09:28:41
#13562: Missing null pointer check in compensating_work_started
-------------------------------+----------------------------
Reporter: michael.lindig@⦠| Owner: chris_kohlhoff
Type: Bugs | Status: new
Milestone: To Be Determined | Component: asio
Version: Boost 1.66.0 | Severity: Problem
Resolution: | Keywords:
-------------------------------+----------------------------
Comment (by Vladimir Shapranov <equidamoid@â¦>):
Just found this ticket while googling for a crash I'm currently trying to
fix:
{{{
(gdb) bt
#0 0x00d1d4e8 in
boost::asio::detail::scheduler::compensating_work_started (this=0x1c02f90)
at include/boost/asio/detail/impl/scheduler.ipp:275
#1 0x00d1d0bc in
boost::asio::detail::epoll_reactor::perform_io_cleanup_on_block_exit::~perform_io_cleanup_on_block_exit
(this=0x618feca4, __in_chrg=<optimized out>) at
include/boost/asio/detail/impl/epoll_reactor.ipp:712
#2 0x00d1d334 in
boost::asio::detail::epoll_reactor::descriptor_state::perform_io
(this=0x1c05ef0, events=1) at
include/boost/asio/detail/impl/epoll_reactor.ipp:730
#3 0x00d1d3b8 in
boost::asio::detail::epoll_reactor::descriptor_state::do_complete
(owner=0x1c02f90, base=0x1c05ef0, ec=..., bytes_transferred=1) at
include/boost/asio/detail/impl/epoll_reactor.ipp:774
#4 0x76c2e370 in boost::asio::detail::scheduler_operation::complete
(bytes_transferred=1, ec=..., owner=0x1c02f90, this=<optimized out>) at
include/boost/asio/detail/scheduler_operation.hpp:40
#5 boost::asio::detail::scheduler::do_run_one (ec=..., this_thread=...,
lock=..., this=0x1c02f90) at
include/boost/asio/detail/impl/scheduler.ipp:401
#6 boost::asio::detail::scheduler::run (ec=..., this=0x1c02f90) at
include/boost/asio/detail/impl/scheduler.ipp:154
#7 boost::asio::io_context::run (this=<optimized out>) at
include/boost/asio/impl/io_context.ipp:62
#
}}}
The relevant TLS entry is null:
{{{
(gdb) print
boost::asio::detail::call_stack<boost::asio::detail::thread_context,
boost::asio::detail::thread_info_base>::top_.tss_key_
$1 = 8
(gdb) print *((struct pthread*)pthread_self())->specific_at_32
$2 = {0x618ff42c, 0x0 <repeats 31 times>}
}}}
Reproduces when an executable linked against multiple shared libraries
that are linked against static boost.
-- Ticket URL: <https://svn.boost.org/trac10/ticket/13562#comment:1> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2018-05-09 09:35:50 UTC