Boost logo

Boost Users :

Subject: [Boost-users] [asio] crash on io_service object destruction.
From: Alexander Gutenev (gutenev_at_[hidden])
Date: 2009-10-06 10:35:36


Hi

This is probably bug in my app, but I need an idea how to track it down.

Seen on MSVC8, XP

Occurs after io_service, which is processing many timers, sockets and posts
in one thread is stopped from another thread. It is stopped fine, however it
crashes on service object destruction at this line:

    // Delete the timer.
    void destroy()
    {
      destroy_func_(this); ////
    }

destroy_func_ is often 0xfeeefeee, but sometimes it is 0x0 or any other
value.

Call stack is:

boost::asio::detail::timer_queue<boost::asio::time_traits<boost::posix_time::ptime>
>::timer_base::destroy() Line 211 + 0xe bytes C++
boost::asio::detail::timer_queue<boost::asio::time_traits<boost::posix_time::ptime>
>::destroy_timer_list(boost::asio::detail::timer_queue<boost::asio::time_traits<boost::posix_time::ptime>
>::timer_base * & t=0x01acd090) Line 415 C++
boost::asio::detail::timer_queue<boost::asio::time_traits<boost::posix_time::ptime>
>::destroy_timers() Line 189 C++
boost::asio::detail::win_iocp_io_service::shutdown_service() Line 148 +
0x2c bytes C++
boost::asio::detail::service_registry::~service_registry() Line 75 + 0xf
bytes C++
boost::asio::detail::service_registry::`scalar deleting destructor'() +
0x2b bytes C++
boost::asio::io_service::~io_service() Line 52 + 0x2e bytes C++

Any ideas ?


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net