Boost C++ Libraries: Ticket #2936: ASIO crashes when reads data from Windows Pipe https://svn.boost.org/trac10/ticket/2936 <blockquote> <p> I found another problem in boost asio library. </p> </blockquote> <blockquote> <p> I created a pipe server and keep it reading from a windows pipe(read 128 bytes for each operation). Then I created a pipe client to write 257 bytes data to the pipe and the programs crashes at the "operation::do_completion" routine. I have attached the program with full source code, so you can reproduce it (written in VC2008). </p> </blockquote> <blockquote> <p> A possible solution to this problem is located at <a class="ext-link" href="http://wrongpc.blogspot.com/2009/03/boost-asio-for-windows-pipe-bug.html"><span class="icon">​</span>http://wrongpc.blogspot.com/2009/03/boost-asio-for-windows-pipe-bug.html</a> It can fix the problem, but the method needs to change boost asio source code, so it's not very convenient. </p> </blockquote> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/2936 Trac 1.4.3 KHaiFeng@… Sat, 11 Apr 2009 09:41:48 GMT attachment set https://svn.boost.org/trac10/ticket/2936 https://svn.boost.org/trac10/ticket/2936 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">More_read_error.7z</span> </li> </ul> <p> source code to reproduce the bug </p> Ticket chris_kohlhoff Thu, 16 Apr 2009 12:37:22 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/2936#comment:1 https://svn.boost.org/trac10/ticket/2936#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> Fixed in changeset <a class="changeset" href="https://svn.boost.org/trac10/changeset/52419" title="Specifically handle the case when an overlapped ReadFile call fails ...">[52419]</a>: </p> <p> Specifically handle the case when an overlapped <a class="missing wiki">ReadFile</a>? call fails with ERROR_MORE_DATA. This enables a hack where a windows::stream_handle can be used with a message-oriented named pipe. </p> Ticket