[Boost-bugs] [Boost C++ Libraries] #8935: async_write successful but only wrote 64K, handler invoked with bytes_transferred 0

Subject: [Boost-bugs] [Boost C++ Libraries] #8935: async_write successful but only wrote 64K, handler invoked with bytes_transferred 0
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-07-29 14:16:20


#8935: async_write successful but only wrote 64K, handler invoked with
bytes_transferred 0
------------------------------+----------------------------
 Reporter: wim@… | Owner: chris_kohlhoff
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: asio
  Version: Boost 1.54.0 | Severity: Problem
 Keywords: |
------------------------------+----------------------------
 Most of the time, everytime works perfect. Since boost 1.54 on Windows, I
 observed the following pattern in a minority of the cases (about 1 in 10
 connections):

 - socket is open and in use, previous read-write sequences ok
 - async_write(103354 bytes, 4 buffers)
 - handle_async_write: 0 bytes written, The operation completed
 successfully
 - async_write(5 bytes, 3 buffers)
 - handle_async_write: 5 bytes written, The operation completed
 successfully

 What is not correct:
 - write handler is invoked with no error condition, but bytes_transferred
 set to 0 instead of the expected 103354 bytes
 - a packet sniffer shows that of the 103354 bytes, 65536 bytes were
 transferred, even though 0 was reported
 - the packet sniffer also shows that the 5 following bytes were
 transferred

 This corrupts the data stream.

 When I set a conditional breakpoint on the write handler, I see that the
 case where no error is reported but bytes_transferred != 0 happens much
 more regularly, but it does not seem to be problematic for writes of less
 than 64K.

 This is a stack trace of such an occurance (bytes_transferred is 0, e is
 0):
 {{{
         hello.wt.exe!http::server::Connection::handleWriteResponse(const
 boost::system::error_code & e, unsigned int bytes_transferred) Line 372
 C++
 hello.wt.exe!boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>::call<boost::shared_ptr<http::server::TcpConnection>,boost::system::error_code
 const ,unsigned int>(boost::shared_ptr<http::server::TcpConnection> & u,
 const void * __formal, const boost::system::error_code & b1, unsigned int
 & b2) Line 271 C++
 hello.wt.exe!boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>::operator()<boost::shared_ptr<http::server::TcpConnection>
>(boost::shared_ptr<http::server::TcpConnection> & u, const
 boost::system::error_code & a1, unsigned int a2) Line 287 C++
 hello.wt.exe!boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2>
>::operator()<boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned int>,boost::_bi::list2<boost::system::error_code const
 &,unsigned int const &> >(boost::_bi::type<void> __formal,
 boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned int> & f, boost::_bi::list2<boost::system::error_code
 const &,unsigned int const &> & a, int __formal) Line 393 C++
 hello.wt.exe!boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>::operator()<boost::system::error_code,unsigned int>(const
 boost::system::error_code & a1, const unsigned int & a2) Line 103 C++
 hello.wt.exe!boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned
 int>::operator()() Line 129 C++
 hello.wt.exe!boost::asio::asio_handler_invoke<boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned int>
>(boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned int>
 function, ...) Line 65 C++
 hello.wt.exe!boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >
>(boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned int>
 & function,
 boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > > & context) Line 37 C++
 hello.wt.exe!boost::asio::detail::asio_handler_invoke<boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned
 int>(boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned int>
 & function,
 boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned int>
 * this_handler) Line 171 C++
 hello.wt.exe!boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned
 int>,boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned int>
>(boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned int>
 & function,
 boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned int>
 & context) Line 37 C++
 hello.wt.exe!boost::asio::detail::strand_service::dispatch<boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned int>
>(boost::asio::detail::strand_service::strand_impl * & impl,
 boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned int>
 & handler) Line 62 C++
 hello.wt.exe!boost::asio::io_service::strand::dispatch<boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned int>
>(const
 boost::asio::detail::binder2<boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >,boost::system::error_code,unsigned int>
 & handler) Line 157 C++
 hello.wt.exe!boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>::operator()<boost::system::error_code,unsigned
 int>(const boost::system::error_code & arg1, const unsigned int & arg2)
 Line 99 C++
>
 hello.wt.exe!boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running> >::operator()(const
 boost::system::error_code & ec, unsigned int bytes_transferred, int start)
 Line 194 C++
 hello.wt.exe!boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned int>::operator()() Line 129 C++
 hello.wt.exe!boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > > >::operator()() Line 192 C++
 hello.wt.exe!boost::asio::asio_handler_invoke<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > > >
>(boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > > > function, ...) Line 65 C++
 hello.wt.exe!boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >
>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >
>(boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > > > & function,
 boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > > & context) Line 37 C++
 hello.wt.exe!boost::asio::detail::asio_handler_invoke<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >
>,boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >
>(boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > > > & function,
 boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > > > * this_handler) Line 276 C++
 hello.wt.exe!boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > >
>,boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > > >
>(boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > > > & function,
 boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > > > & context) Line 37 C++
 hello.wt.exe!boost::asio::detail::completion_handler<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::write_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,std::vector<boost::asio::const_buffer,std::allocator<boost::asio::const_buffer>
>,boost::asio::detail::transfer_all_t,boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> >
>,boost::asio::detail::is_continuation_if_running>
>,boost::system::error_code,unsigned
 int>,boost::_bi::bind_t<void,boost::_mfi::mf2<void,http::server::Connection,boost::system::error_code
 const &,unsigned
 int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::TcpConnection>
>,boost::arg<1>,boost::arg<2> > > >
>::do_complete(boost::asio::detail::win_iocp_io_service * owner,
 boost::asio::detail::win_iocp_operation * base, const
 boost::system::error_code & __formal, unsigned int __formal) Line 68
 C++
 hello.wt.exe!boost::asio::detail::win_iocp_operation::complete(boost::asio::detail::win_iocp_io_service
 & owner, const boost::system::error_code & ec, unsigned int
 bytes_transferred) Line 45 C++
 hello.wt.exe!boost::asio::detail::strand_service::do_complete(boost::asio::detail::win_iocp_io_service
 * owner, boost::asio::detail::win_iocp_operation * base, const
 boost::system::error_code & ec, unsigned int __formal) Line 168 C++
 hello.wt.exe!boost::asio::detail::win_iocp_operation::complete(boost::asio::detail::win_iocp_io_service
 & owner, const boost::system::error_code & ec, unsigned int
 bytes_transferred) Line 45 C++
         hello.wt.exe!boost::asio::detail::win_iocp_io_service::do_one(bool
 block, boost::system::error_code & ec) Line 402 C++
 hello.wt.exe!boost::asio::detail::win_iocp_io_service::run(boost::system::error_code
 & ec) Line 161 C++
         hello.wt.exe!boost::asio::io_service::run() Line 59 C++
 }}}

 I can reproduce this quite easily, please ask if you need more
 information.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/8935>
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 : 2017-02-16 18:50:13 UTC