Subject: Re: [Boost-bugs] [Boost C++ Libraries] #13193: multiple sockets (reuse_address) + multiple io_service = packages never received
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2017-09-05 14:36:31
#13193: multiple sockets (reuse_address) + multiple io_service = packages never
received
---------------------------+-----------------------------------------------
Reporter: rafal2@⦠| Owner: chris_kohlhoff
Type: Bugs | Status: new
Milestone: To Be | Component: asio
Determined |
Version: Boost 1.63.0 | Severity: Problem
Resolution: | Keywords: reuse_address,io_service,multiple
---------------------------+-----------------------------------------------
Comment (by anonymous):
Formatting fix:
1) N sockets (same addr/port), using N various io_service - does not work
2) N sockets (each own port), using N various io_service - works
3) N sockets (same addr/port), but using same 1 io_service - works
4) 1 socket - works
For clarity:
this program is supposed to receive UDP data (and throw it away,
performance test) using multiple threads/buffers, and optionally multiple
sockets and/or io_service.
When we turn all of this on, many sockets and threads and io_services, if
they use same addres+port (via reuse addr) then program shows receive
speed 0 and count 0. (except for spurious receiving 1 packet from time
to time, not sure what this possible bug is about).
If we either use different ports so the reuse-port is not needed (by
adding command line option "mport" at end as in Makefile make run), or if
we use just 1 io_service, then when we send the data (e.g. from the
sibling test program linked above) then all works (e.g. 100 MB/sec and
more).
p.s. you can enable/disable some debug by toggling the "#if 0" at very top
of program.
-- Ticket URL: <https://svn.boost.org/trac10/boost/ticket/13193#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 : 2017-09-05 14:42:40 UTC