[Boost-bugs] [Boost C++ Libraries] #8861: boost 1.39 io_service_pool accept hangs

Subject: [Boost-bugs] [Boost C++ Libraries] #8861: boost 1.39 io_service_pool accept hangs
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-07-19 14:18:07

#8861: boost 1.39 io_service_pool accept hangs
 Reporter: bill <shuzhouliu@…> | Owner: chris_kohlhoff
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: asio
  Version: Boost 1.39.0 | Severity: Problem
 Keywords: |
 O.S.: Centos 5.4 64 bit
 Boost version: 1.39
 Symptom: With io_service-per-CPU and thread pool size 4, after the sever
 accepted at 8th connection, it cannot accept any connections afterwards.

 How to reproduce it:
 (1) Get the server2 example at

 (2) Modify connection.cpp to support persistent connection:
 void connection::handle_write(const boost::system::error_code& e)
   if (!e)
     // Initiate graceful connection closure.
     //boost::system::error_code ignored_ec;

 (3) Modify the server.cpp to use different acceptor_ constructor
 server::server(const std::string& address, const std::string& port,
     const std::string& doc_root, std::size_t io_service_pool_size)
   : io_service_pool_(io_service_pool_size),
 // acceptor_(io_service_pool_.get_io_service()),
     acceptor_( io_service_pool_.get_io_service(),

     new_connection_(new connection(
           io_service_pool_.get_io_service(), request_handler_)),

   // Open the acceptor with the option to reuse the address (i.e.

   boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(),
       boost::bind(&server::handle_accept, this,

 (4) The client test harness create threads each second. In the thread, it
 will connect to the server, send a request and receive the response (both
 request/response should be small enough for one read/write). After that,
 the thread will sleep 1000 seconds without closing the connection.

 (5) The server cannot accept any connections after 8th requests.

Ticket URL: <https://svn.boost.org/trac/boost/ticket/8861>
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