New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
io/eintr.t test hangs indefinitely #11149
Comments
From Mark.Martinec@ijs.siCreated by Mark.Martinec@ijs.siA test io/eintr.t which is invoked at the 'make test' phase Looking at the io/eintr.t more closely, there are two instances If I comment out the '$st = print $out $buf' and Other that that, it seems that perl installs and runs alright, Perl Info
|
From @iabynOn Tue, Feb 22, 2011 at 11:50:51AM -0800, Mark Martinec wrote:
Do you have the ability to run trace on the script, to see what's going on -- |
The RT System itself - Status changed from 'new' to 'open' |
From @LeontOn Tue, Feb 22, 2011 at 8:50 PM, Mark Martinec
I wouldn't be surprised if this was related to my signaling patches, Leon |
From Mark.Martinec@ijs.si
Here is a ktrace (or rather, its kdump -E) of a simplifield test program: #!/usr/bin/perl $SIG{PIPE} = 'IGNORE'; $SIG{ALRM} = sub { close($out) }; # = sub { die }; # ktrace ./0.pl # kdump -E [...] 51237 perl5.13.10 0.011285 CALL setitimer(0,0x7fffffffe850,0x7fffffffe830) Seting environment variable PERLIO=":stdio" or PERLIO=":perlio" So it looks like after the 3 second timer expires the write returns, Mark |
From @LeontOn Tue, Feb 22, 2011 at 8:50 PM, Mark Martinec
Can you test this again on blead? Leon |
From Mark.Martinec@ijs.si
I did (git clone an hour ago), makes no difference. One thing I previously reported incorrectly:
With PERLIO=":stdio" the simplified test case does work (aborts The io/eintr.t bails out on PERLIO=":stdio" - but out of curiosity: $ PERLIO=":stdio" ./perl -I.. -MTestInit io/eintr.t |
From @tomhukinsPorters, I tried building blead on FreeBSD 8.2 yesterday but failed due to a The problem manifests itself as the test t/io/eintr.t freezing after the If I explicitly set PERLIOBUF_DEFAULT_BUFSIZ to 4096 as described in the I'm happy to provide more information on request or run any commands Tom |
From @craigberryOn Thu, Mar 10, 2011 at 9:00 AM, Tom Hukins <perlbug-followup@perl.org> wrote:
Thanks for the report. If I'm counting right that test looks like: # close during print fresh_io; I'm guessing it's the print statement and I'm further guessing that we http://lists.freebsd.org/pipermail/freebsd-arch/2007-September/006790.html so that, since we now write 8192 bytes in one go, the pipe But it must be something related to writing more at one time. So the One alternative is to add something to hints/freebsd.sh so FreeBSD Another alternative is to allocate a different buffer size for special Or if we're going to do an fstat(), perhaps grab st_blksize and use Just thinking out loud for now. |
The RT System itself - Status changed from 'new' to 'open' |
From @LeontOn Thu, Mar 10, 2011 at 9:19 PM, Craig A. Berry <craig.a.berry@gmail.com> wrote:
That would seem a bit drastic
Sounds like a reasonable stopgap solution to me. We should actively
IMO, that whole part of PerlIO should be reworked. It should be a Leon |
From @iabynOn Thu, Mar 10, 2011 at 10:08:19PM +0100, Leon Timmermans wrote:
Note that the hanging test is designed to test the stability of PerlIO If the particular OS's write system call isn't interruptable, then I think -- |
From @iabynOn Fri, Mar 11, 2011 at 02:05:10PM +0000, Dave Mitchell wrote:
PS - this looks similar to [perl #84688] io/eintr.t test hangs indefinitely -- |
From @tomhukinsOn Fri, Mar 11, 2011 at 06:51:25AM -0800, Dave Mitchell via RT wrote:
It does. I apologise for not searching the existing bug reports Tom |
From @craigberryOn Fri, Mar 11, 2011 at 8:05 AM, Dave Mitchell <davem@iabyn.com> wrote:
I went ahead and added a skip for FreeBSD so at least the test suite won't hang. http://perl5.git.perl.org/perl.git/commitdiff/c81114d2b6e9ca2fa098dbdac89edfaca24540f9 I have had a glance at the FreeBSD pipe implementation here: http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/sys_pipe.c and it's very foreign territory for me so I'm not really in a position |
@cpansprout - Status changed from 'open' to 'resolved' |
From @doughera88On Fri, 11 Mar 2011, Craig A. Berry wrote:
I observed the same "hang" on Solaris 8/SPARC. I'll investigate Solaris -- |
From @doughera88On Fri, 18 Mar 2011, Andy Dougherty wrote:
Solaris 10 and 11 are fine. I don't have Solaris 9 around for testing. At Inline Patchdiff --git a/t/io/eintr.t b/t/io/eintr.t
index dc93660..04952b6 100644
--- a/t/io/eintr.t
+++ b/t/io/eintr.t
@@ -45,7 +45,8 @@ if (exists $ENV{PERLIO} && $ENV{PERLIO} =~ /stdio/ ) {
# On FreeBSD, writes to pipes of 8192 bytes or more use a mechanism
# that is not interruptible (see perl #85842 and #84688).
-if ($^O eq 'VMS' || $^O eq 'MSWin32' || $^O eq 'cygwin' || $^O eq 'freebsd') {
+if ($^O eq 'VMS' || $^O eq 'MSWin32' || $^O eq 'cygwin' || $^O eq 'freebsd' ||
+ ($^O eq 'solaris' && $Config{osvers} eq '2.8') ) {
skip_all('various portability issues');
exit 0;
}
-- Andy Dougherty doughera@lafayette.edu |
@doughera88 - Status changed from 'resolved' to 'open' |
From @ikegamiOn Tue, Mar 22, 2011 at 9:31 AM, Andy Dougherty <doughera@lafayette.edu>wrote:
Should Solaris be added to the comment? |
From @doughera88On Tue, 22 Mar 2011, Eric Brine wrote:
I suppose so, but I haven't actually tested whether it's the same problem Still, I guess I'll add something like Thanks for the gentle reminder. -- |
From @cpansproutOn Tue Mar 22 06:31:49 2011, doughera wrote:
This this has now been applied as 384f75d, I’m marking this as resolved |
@cpansprout - Status changed from 'open' to 'resolved' |
From rwstauner@cpan.orgI hit the same problem trying to install 5.14.0-RC1 with perlbrew on I installed 5.12.3 with no trouble, though I believe this io/eintr.t I wasn't sure where I could find minimum system requirements, Linux 2.6.5-1.358 #1 Sat May 8 09:04:50 EDT 2004 i686 i686 i386 gcc (GCC) 3.3.3 20040412 (Red Hat Linux 3.3.3-7) (2003) I skipped the test and everything seems ok (no pun intended). Let me know if you'd like any more information, The next oldest machine I could try it on was: Linux 2.6.12-1.1381_FC3smp #1 SMP Fri Oct 21 04:03:26 EDT 2005 i686 i686 and I had no problems. |
From [Unknown Contact. See original ticket]I hit the same problem trying to install 5.14.0-RC1 with perlbrew on I installed 5.12.3 with no trouble, though I believe this io/eintr.t I wasn't sure where I could find minimum system requirements, Linux 2.6.5-1.358 #1 Sat May 8 09:04:50 EDT 2004 i686 i686 i386 gcc (GCC) 3.3.3 20040412 (Red Hat Linux 3.3.3-7) (2003) I skipped the test and everything seems ok (no pun intended). Let me know if you'd like any more information, The next oldest machine I could try it on was: Linux 2.6.12-1.1381_FC3smp #1 SMP Fri Oct 21 04:03:26 EDT 2005 i686 i686 and I had no problems. |
From @toddrThis hang is repeatable on CentOS/RedHat 4 32/64 with all packages up to date. The login now [root@rpmb-centos-4-32bit perl-5.14.0-RC2]# uname -a |
From @toddrNicholas requested an strace. I believe that below are the relevant lines. write(1, "ok 5 - read/die: close status\n", 30ok 5 - read/die: close status Note the last line appears to be incomplete. |
From rwstauner@cpan.orgconfirmed problem exists on Debian 3.1 Linux 2.4.27-hm64smp #1 SMP Wed Mar 14 22:34:19 CDT 2007 i686 GNU/Linux gcc (GCC) 3.3.5 (Debian 1:3.3.5-8) I sent a signal to the test script from another terminal to get the |
From @toddrOn May 2, 2011, at 4:32 PM, Randy Stauner via RT wrote:
Is this a release blocker? http://bit.ly/blocks-514 |
From @iabynOn Mon, May 02, 2011 at 06:43:24PM -0500, Todd Rinaldo wrote:
Well its a bug in the test script rather than in perl. Jesse, I propose for 5.14.0-RC2, that I put in a general skip on Let me know if that's ok. -- |
From @obraOn Tue, May 03, 2011 at 11:59:26AM +0100, Dave Mitchell wrote:
Does it make sense for us to skip on release versions or only on 5.14? It'd be nice if, in the glorious future, we has characteristic-based -j
-- |
From @iabynOn Tue, May 03, 2011 at 10:35:28AM -0400, Jesse Vincent wrote:
I've gone for all production releases, so I could just cut+paste
Along with the rainbow-farting unicorns ;-) -- |
Migrated from rt.perl.org#84688 (status was 'resolved')
Searchable as RT84688$
The text was updated successfully, but these errors were encountered: