Running on RedHat Linux, compiled with gcc 4.x. Program terminates with "Transport endpoint is not connected" -- io_service::run (processing loop) ends with exception thrown. I'm using asynchronous API.

Stack trace of optimized debug (-02 -g) binary shows:

#0  0x0000003a15a30155 in raise () from /lib64/libc.so.6
#1  0x0000003a15a31bf0 in abort () from /lib64/libc.so.6
#2  0x0000003a15a6a38b in __libc_message () from /lib64/libc.so.6
#3  0x0000003a15a71634 in _int_free () from /lib64/libc.so.6
#4  0x0000003a15a74c5c in free () from /lib64/libc.so.6
#5  0x00000000005093b0 in boost::asio::detail::epoll_reactor<false>::cleanup_operations_and_timers ()
#6  0x000000000050e6aa in boost::asio::detail::epoll_reactor<false>::run ()
#7  0x000000000050ebe3 in boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor<false> >::run ()

The problem occurs sporadically, under moderate load (about 30 client connections). Appears to be coming from
cleanup_operations_and_timers()

I can catch exceptions leaking from io_service::run, but would appreciate more info on why this occurs and whether it has other side-effects.

Thanks,
Slawomir