Opened 12 years ago
Last modified 12 years ago
#4766 new Bugs
MinGW: ip_tcp test hangs on io_service::run() after tcp::socket::cancel()
Reported by: | Owned by: | chris_kohlhoff | |
---|---|---|---|
Milestone: | Boost 1.45.0 | Component: | asio |
Version: | Boost 1.44.0 | Severity: | Problem |
Keywords: | mingw gcc-4.4 tcp socket cancel io_service run | Cc: | jim@… |
Description
The MinGW-32 trunk regression test (current as of 2010/10/21) simply says:
Run [2010-10-21 16:24:46 UTC]: fail
bjam.log says:
300 second time limit exceeded
Running it in gdb verifies that it seems hung indefinitely, and breaking shows this stack trace:
#0 0x7c90e514 in ntdll!LdrAccessResource () from C:\WINDOWS\system32\ntdll.dll #1 0x7c90da4a in ntdll!ZwRemoveIoCompletion () from C:\WINDOWS\system32\ntdll.dll #2 0x7c80a7e6 in KERNEL32!GetQueuedCompletionStatus () from C:\WINDOWS\system32\kernel32.dll #3 0x00443dfb in boost::asio::detail::win_iocp_io_service::do_one ( this=0x3e8f8, block=true, ec=@0x23f314) at ../boost/asio/detail/impl/win_iocp_io_service.ipp:349 #4 0x00443954 in boost::asio::detail::win_iocp_io_service::run ( this=0x3e8f8, ec=@0x23f314) at ../boost/asio/detail/impl/win_iocp_io_service.ipp:160 #5 0x00438cee in boost::asio::io_service::run (this=0x23f61c) at ../boost/asio/impl/io_service.ipp:57 #6 0x004061c1 in ip_tcp_socket_runtime::test () at ..\libs\asio\test\ip\tcp.cpp:453 #7 0x0046873a in boost::unit_test::ut_detail::invoker<boost::unit_test::ut_detail::unused>::invoke<void (*)()> (this=0x23f93f, f=@0x386cc) at ../boost/test/utils/callback.hpp:56 #8 0x00466a63 in boost::unit_test::ut_detail::callback0_impl_t<boost::unit_test::ut_detail::unused, void (*)()>::invoke (this=0x386c8) at ../boost/test/utils/callback.hpp:89 #9 0x00473065 in boost::unit_test::callback0<boost::unit_test::ut_detail::unused>::operator() (this=0x38aac) at ../boost/test/utils/callback.hpp:118 #10 0x004214c1 in operator() (this=0x34dac) at ../boost/test/impl/unit_test_monitor.ipp:41 #11 0x004214ab in invoke<boost::unit_test::<unnamed>::zero_return_wrapper_t<boost::unit_test::callback0<boost::unit_test::ut_detail::unused> > > ( this=0x23f9cf, f=@0x34dac) at ../boost/test/utils/callback.hpp:42 #12 0x00421497 in invoke (this=0x34da8) at ../boost/test/utils/callback.hpp:89 #13 0x00473085 in boost::unit_test::callback0<int>::operator() (this=0x23fad4) at ../boost/test/utils/callback.hpp:118 #14 0x004500ad in boost::detail::do_invoke<boost::shared_ptr<boost::detail::translator_holder_base>, boost::unit_test::callback0<int> > (tr=@0x4e6540, F=@0x23fad4) at ../boost/test/impl/execution_monitor.ipp:253 #15 0x004204cb in boost::execution_monitor::catch_signals (this=0x4e6530, F=@0x23fad4) at ../boost/test/impl/execution_monitor.ipp:1129 #16 0x0042064d in boost::execution_monitor::execute (this=0x4e6530, F=@0x23fad4) at ../boost/test/impl/execution_monitor.ipp:1160 #17 0x004210b6 in boost::unit_test::unit_test_monitor_t::execute_and_translate (this=0x4e6530, tc=@0x38a80) at ../boost/test/impl/unit_test_monitor.ipp:69 #18 0x00460d53 in boost::unit_test::framework_impl::visit (this=0x5233c8, tc=@0x38a80) at ../boost/test/impl/framework.ipp:156 #19 0x00409e33 in boost::unit_test::traverse_test_tree (tc=@0x38a80, V=@0x5233c8) at ../boost/test/impl/unit_test_suite.ipp:193 #20 0x0040a267 in boost::unit_test::traverse_test_tree (id=65539, V=@0x5233c8) at ../boost/test/impl/unit_test_suite.ipp:232 #21 0x00409f70 in boost::unit_test::traverse_test_tree (suite=@0x385c8, V=@0x5233c8) at ../boost/test/impl/unit_test_suite.ipp:207 #22 0x0040a283 in boost::unit_test::traverse_test_tree (id=2, V=@0x5233c8) at ../boost/test/impl/unit_test_suite.ipp:234 #23 0x00409f70 in boost::unit_test::traverse_test_tree (suite=@0x384d8, V=@0x5233c8) at ../boost/test/impl/unit_test_suite.ipp:207 #24 0x0040a283 in boost::unit_test::traverse_test_tree (id=1, V=@0x5233c8) at ../boost/test/impl/unit_test_suite.ipp:234 #25 0x0040d9d1 in boost::unit_test::framework::run (id=1, continue_test=true) at ../boost/test/impl/framework.ipp:442 #26 0x00407ddd in boost::unit_test::unit_test_main ( init_func=0x407695 <init_unit_test_suite(int, char**)>, argc=1, argv=0x32f08) at ../boost/test/impl/unit_test_main.ipp:185 #27 0x00407fd1 in main (argc=1, argv=0x32f08) at ../boost/test/impl/unit_test_main.ipp:237
Key line: ..\libs\asio\test\ip\tcp.cpp:453; The io_service::run() call after tcp::socket::cancel().
Change History (3)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
I do not think MinGW is the issue here. The VC8 jc-bell.com ip_tcp test also fails. Is this run on the same machine?
If so, I suspect that there is a non-standard (and possibly buggy) Winsock LSP (Layered Service Provider) installed on the system. Perhaps there is a firewall or some VPN software installed?. The Microsoft tool sporder.exe (included with some versions of the Windows SDK) will tell you what LSPs are installed.
comment:3 by , 12 years ago
Indeed they are run on the same machine. I'll investigate. Thanks for the pointer.
fwiw, I'm not seeing this issue on Mingw 4.5.1 / WinXP (see the RW_Mingw45 runer on Trunk).