On Sat, Aug 31, 2013 at 01:23:35AM -0700, ustulation wrote:
Lars Viklund wrote
Anyway, this might be a manifestation of the 1.54.0 bug with Boost.ASIO+IOCP having spurious EOFs on Windows: https://svn.boost.org/trac/boost/ticket/8967
Oh, I see! We had started the project using boost 1.53 and had done testing then. I suspect we had seen no such problems hence was not caught then. On silently upgrading to boost 1.54 the only thing we cared was compilation which was successful at once. The documentations hadn't changed and we didn't care much, but I guess the problem lurked all the time since then. Only now on redoing some alpha test cases we realized.
So what would you suggest? And though i didn't mention - you are right, it /is/ on Windows. Do I use the patch in the link you mentioned (because there seems to be some disagreement on its philosophy) or has christopher kohlhoff (I infer he's the asio developer) done something about it?
There's three workarounds you can try out in the short term: 1) try the patch 2) use Asio with the BOOST_ASIO_DISABLE_IOCP flag 3) revert Boost whole-sale to 1.53 This problem has cropped up in the #boost channel as a hidden problem taking us many days to find, auditing pretty much every single piece of the user code, before eventually stumbling over the bug report. In any way, it's a problem that needs to be solved. If Asio does things incorrectly, it doesn't matter how fast it manages to does it. If I read the two bug reports right, the pre-1.54 way was stable-and-boring-but-works, and the attempted improvements seem to have gone wrong. In my eyes, it's either for the Asio people to revert to the known-good way of 1.53, or fix up their new implementation to work in reality. -- Lars Viklund | zao@acc.umu.se