Skip Menu |

This queue is for tickets about the IO-Async CPAN distribution.

Report information
The Basics
Id: 61732
Status: resolved
Priority: 0/
Queue: IO-Async

People
Owner: Nobody in particular
Requestors: CHORNY [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 0.30
Fixed in: 0.61



See http://stackoverflow.com/questions/131473/ewouldblock-equivalent-errno-under-windows-perl - it explains replacement for EWOULDBLOCK on Windows -- Alexandr Ciornii, http://chorny.net
From: p.malishev [...] gmail.com
Втр Сен 28 15:56:24 2010, CHORNY писал: Show quoted text
> See > http://stackoverflow.com/questions/131473/ewouldblock-equivalent- > errno-under-windows-perl > - it explains replacement for EWOULDBLOCK on Windows >
So my solution is this patch for IO::Async::Connector: --- Connector.orig.pm 2011-08-05 02:01:45.000000000 +0400 +++ Connector.dest.pm 2011-10-05 13:51:34.242849600 +0400 @@ -17,6 +17,8 @@ use CPS qw( kpar kforeach ); use Carp; +use AnyEvent::Util qw(WSAEWOULDBLOCK); + =head1 NAME C<IO::Async::Connector> - perform non-blocking socket connections @@ -169,7 +171,7 @@ sub _connect_addresses # localhost, or UNIX sockets, or something like that. goto &$klast; } - elsif( $! != EINPROGRESS ) { + elsif( ($! != EINPROGRESS) && ($! != WSAEWOULDBLOCK) ) { $connecterr = $!; $on_fail->( "connect", $sock, $peeraddr, $! ) if $on_fail; undef $sock;
On Wed Oct 05 05:53:49 2011, afunix wrote: Show quoted text
> --- Connector.orig.pm 2011-08-05 02:01:45.000000000 +0400 > +++ Connector.dest.pm 2011-10-05 13:51:34.242849600 +0400 > @@ -17,6 +17,8 @@ use CPS qw( kpar kforeach ); > > use Carp; > > +use AnyEvent::Util qw(WSAEWOULDBLOCK); > + > =head1 NAME > > C<IO::Async::Connector> - perform non-blocking socket connections > @@ -169,7 +171,7 @@ sub _connect_addresses > # localhost, or UNIX sockets, or something like that. > goto &$klast; > } > - elsif( $! != EINPROGRESS ) { > + elsif( ($! != EINPROGRESS) && ($! != WSAEWOULDBLOCK) ) { > $connecterr = $!; > $on_fail->( "connect", $sock, $peeraddr, $! ) if
$on_fail; Show quoted text
> undef $sock; > >
Ah, that looks rather exciting. I'm not sure I like the look of pulling it from AnyEvent::Util though ;) I'll have a look around to see if I can find a better source for this constant. -- Paul Evans
On Wed Oct 05 05:53:49 2011, afunix wrote: Show quoted text
> Втр Сен 28 15:56:24 2010, CHORNY писал:
> > See > > http://stackoverflow.com/questions/131473/ewouldblock-equivalent- > > errno-under-windows-perl > > - it explains replacement for EWOULDBLOCK on Windows > >
> > So my solution is this patch for IO::Async::Connector: > > --- Connector.orig.pm 2011-08-05 02:01:45.000000000 +0400 > +++ Connector.dest.pm 2011-10-05 13:51:34.242849600 +0400 > @@ -17,6 +17,8 @@ use CPS qw( kpar kforeach ); > > use Carp; > > +use AnyEvent::Util qw(WSAEWOULDBLOCK);
It would appear that at least on Perl 5.12.2, POSIX::EWOULDBLOCK is already a synonym for WSAEWOULDBLOCK on MSWin32. Whereas, POSIX::EWOULDBLOCK croaks with a not-implemented error on 5.8.7. I don't know the bounds between, when it changed. I'll put the code as POSIX::EWOULDBLOCK for now, and see if that has any impact on the smoke testers. We can always hack up something for older perls. -- Paul Evans
How is this one doing? Has the EWOULDBLOCK fixed it now? -- Paul Evans
On Fri Apr 05 11:29:10 2013, PEVANS wrote: Show quoted text
> How is this one doing? Has the EWOULDBLOCK fixed it now?
Yes. There are other errors on IO-Async-0.56. E:\perl\perl5161\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t t/00use.t .................... ok t/01timequeue.t .............. ok # Failed test 'The thing isa IO::Socket::IP' # at t/02os.t line 25. # The thing isn't defined # Failed test '$S1 --writes-> $S2' # at t/02os.t line 41. # got: '' # expected: 'Hello' # Looks like you failed 2 tests of 41. t/02os.t ..................... Dubious, test returned 2 (wstat 512, 0x200) Failed 2/41 subtests (less 2 skipped subtests: 37 okay) t/03loop-magic.t ............. ok t/04notifier.t ............... ok t/05notifier-child.t ......... ok t/06notifier-mixin.t ......... ok # Failed test 'regular file is readready' # at E:\perl\perl5161\cpan\build\IO-Async-0.56-OJdBWa\blib\lib/IO/Async/LoopTests.pm line 380. # got: '0' # expected: '1' # Looks like you failed 1 test of 21. t/10loop-poll-io.t ........... Dubious, test returned 1 (wstat 256, 0x100) Failed 1/21 subtests (less 2 skipped subtests: 18 okay) t/10loop-select-io.t ......... ok t/11loop-poll-timer.t ........ ok t/11loop-select-timer.t ...... ok t/12loop-poll-signal.t ....... Dubious, test returned 5 (wstat 1280, 0x500) Failed 12/18 subtests t/13loop-poll-idle.t ......... ok t/13loop-select-idle.t ....... ok Nothing was ready after 10 second wait; called at E:\perl\perl5161\cpan\build\IO-Async-0.56-OJdBWa\blib\lib/IO/Async/LoopTests.pm line 127 # Looks like you planned 12 tests but ran 5. # Looks like your test exited with 3 just after 5. t/14loop-poll-child.t ........ Dubious, test returned 3 (wstat 768, 0x300) Failed 7/12 subtests Nothing was ready after 10 second wait; called at E:\perl\perl5161\cpan\build\IO-Async-0.56-OJdBWa\blib\lib/IO/Async/LoopTests.pm line 127 # Looks like you planned 12 tests but ran 5. # Looks like your test exited with 3 just after 5. t/14loop-select-child.t ...... Dubious, test returned 3 (wstat 768, 0x300) Failed 7/12 subtests t/15loop-poll-control.t ...... ok t/15loop-select-control.t .... ok t/18loop-poll-legacy.t ....... ok t/18loop-select-legacy.t ..... ok t/19loop-future.t ............ ok t/19test.t ................... ok t/20handle.t ................. ok t/21stream-1read.t ........... ok Nothing was ready after 10 second wait; called at t/21stream-2write.t line 194 # Tests were run but no plan was declared and done_testing() was not seen. t/21stream-2write.t .......... Dubious, test returned 255 (wstat 65280, 0xff00) All 26 subtests passed t/21stream-3split.t .......... ok t/21stream-4encoding.t ....... ok t/22timer-absolute.t ......... ok t/22timer-countdown.t ........ ok t/22timer-periodic.t ......... ok Terminating on signal SIGBREAK(21) t/23signal.t ................. Dubious, test returned 21 (wstat 5376, 0x1500) All 6 subtests passed t/24listener.t ............... ok Nothing was ready after 10 second wait; called at t/25socket.t line 127 # Tests were run but no plan was declared and done_testing() was not seen. t/25socket.t ................. Dubious, test returned 9 (wstat 2304, 0x900) All 11 subtests passed Nothing was ready after 10 second wait; called at t/26pid.t line 50 # Tests were run but no plan was declared and done_testing() was not seen. t/26pid.t .................... Dubious, test returned 3 (wstat 768, 0x300) All 6 subtests passed t/27file.t ................... ok t/28filestream.t ............. ok t/30loop-fork.t .............. Dubious, test returned 5 (wstat 1280, 0x500) No subtests run Use of uninitialized value in subroutine entry at E:\perl\perl5161\cpan\build\IO-Async-0.56-OJdBWa\blib\lib/IO/Async/Loop/Poll.pm line 259. t/31loop-spawnchild.t ........ Dubious, test returned 42 (wstat 10752, 0x2a00) All 3 subtests passed t/32loop-spawnchild-setup.t .. Dubious, test returned 1 (wstat 256, 0x100) All 2 subtests passed Use of uninitialized value in subroutine entry at E:\perl\perl5161\cpan\build\IO-Async-0.56-OJdBWa\blib\lib/IO/Async/Loop/Poll.pm line 259. t/33process.t ................ All 4 subtests passed t/34process-handles.t ........ All 2 subtests passed Use of uninitialized value in subroutine entry at E:\perl\perl5161\cpan\build\IO-Async-0.56-OJdBWa\blib\lib/IO/Async/Loop/Poll.pm line 259. t/35loop-openchild.t ......... No subtests run t/36loop-runchild.t .......... No subtests run Use of uninitialized value in subroutine entry at E:\perl\perl5161\cpan\build\IO-Async-0.56-OJdBWa\blib\lib/IO/Async/Loop/Poll.pm line 259. t/37loop-child-root.t ........ Dubious, test returned 255 (wstat 65280, 0xff00) All 1 subtests passed t/40channel.t ................ ok t/41routine.t ................ Dubious, test returned 255 (wstat 65280, 0xff00) All 2 subtests passed t/42function.t ............... Dubious, test returned 255 (wstat 65280, 0xff00) All 3 subtests passed t/50resolver.t ............... Dubious, test returned 255 (wstat 65280, 0xff00) All 6 subtests passed (less 5 skipped subtests: 1 okay) t/51loop-connect.t ........... Dubious, test returned 255 (wstat 65280, 0xff00) All 5 subtests passed Cannot socket() - Сделана попытка выполнить операцию на объекте, не являющемся сокетом. at E:\perl\perl5161\cpan\build\IO-Async-0.56-OJdBWa\blib\lib/IO/Async/Loop.pm line 1465. # Tests were run but no plan was declared and done_testing() was not seen. t/52loop-listen.t ............ Dubious, test returned 255 (wstat 65280, 0xff00) All 4 subtests passed t/53loop-extend.t ............ ok t/60protocol.t ............... ok t/62protocol-linestream.t .... ok t/99pod.t .................... ok Test Summary Report ------------------- t/02os.t (Wstat: 512 Tests: 41 Failed: 2) Failed tests: 2, 19 Non-zero exit status: 2 t/10loop-poll-io.t (Wstat: 256 Tests: 21 Failed: 1) Failed test: 19 Non-zero exit status: 1 t/12loop-poll-signal.t (Wstat: 1280 Tests: 6 Failed: 0) Non-zero exit status: 5 Parse errors: Bad plan. You planned 18 tests but ran 6. t/14loop-poll-child.t (Wstat: 768 Tests: 5 Failed: 0) Non-zero exit status: 3 Parse errors: Bad plan. You planned 12 tests but ran 5. t/14loop-select-child.t (Wstat: 768 Tests: 5 Failed: 0) Non-zero exit status: 3 Parse errors: Bad plan. You planned 12 tests but ran 5. t/21stream-2write.t (Wstat: 65280 Tests: 26 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output t/23signal.t (Wstat: 5376 Tests: 6 Failed: 0) Non-zero exit status: 21 Parse errors: No plan found in TAP output t/25socket.t (Wstat: 2304 Tests: 11 Failed: 0) Non-zero exit status: 9 Parse errors: No plan found in TAP output t/26pid.t (Wstat: 768 Tests: 6 Failed: 0) Non-zero exit status: 3 Parse errors: No plan found in TAP output t/30loop-fork.t (Wstat: 1280 Tests: 0 Failed: 0) Non-zero exit status: 5 Parse errors: No plan found in TAP output t/31loop-spawnchild.t (Wstat: 10752 Tests: 3 Failed: 0) Non-zero exit status: 42 Parse errors: No plan found in TAP output t/32loop-spawnchild-setup.t (Wstat: 256 Tests: 2 Failed: 0) Non-zero exit status: 1 Parse errors: No plan found in TAP output t/33process.t (Wstat: 0 Tests: 4 Failed: 0) Parse errors: No plan found in TAP output t/34process-handles.t (Wstat: 0 Tests: 2 Failed: 0) Parse errors: No plan found in TAP output t/35loop-openchild.t (Wstat: 0 Tests: 0 Failed: 0) Parse errors: No plan found in TAP output t/36loop-runchild.t (Wstat: 0 Tests: 0 Failed: 0) Parse errors: No plan found in TAP output t/37loop-child-root.t (Wstat: 65280 Tests: 1 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output t/41routine.t (Wstat: 65280 Tests: 2 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output t/42function.t (Wstat: 65280 Tests: 3 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output t/50resolver.t (Wstat: 65280 Tests: 6 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output t/51loop-connect.t (Wstat: 65280 Tests: 5 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output t/52loop-listen.t (Wstat: 65280 Tests: 4 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output Files=54, Tests=917, 165 wallclock secs ( 0.28 usr + 0.25 sys = 0.53 CPU) Result: FAIL Failed 22/54 test programs. 3/917 subtests failed. dmake: Error code 255, while making 'test_dynamic' -- Alexandr Ciornii, http://chorny.net
I've recently been working on some MSWin32 fixes, so hopefully things are now working as of the latest devel release: http://matrix.cpantesters.org/?dist=IO-Async%200.60_004;os=mswin32;reports=1 Please give that a go, and once I have a few more smoke test results for it, I think I'll call it 0.61. -- Paul Evans
On Fri Oct 11 08:45:31 2013, PEVANS wrote: Show quoted text
> I've recently been working on some MSWin32 fixes, so hopefully things > are now working as of the latest devel release: > > http://matrix.cpantesters.org/?dist=IO- > Async%200.60_004;os=mswin32;reports=1 > > Please give that a go, and once I have a few more smoke test results > for it, I think I'll call it 0.61.
Done. Tests of version 0.60 hanged, with 0.60_004 they do not hang. -- Alexandr Ciornii, http://chorny.net
Resolved in 0.61 -- Paul Evans