perlbug-followup at perl
Apr 27, 2012, 4:19 AM
Post #2 of 3
On Thu Apr 26 16:41:16 2012, Hugmeir wrote:
[perl #7425] IO::Socket Oddity on Solaris on 5.6.1
[In reply to]
> On Fri, Mar 23, 2012 at 10:15 PM, James E Keenan via RT <
> perlbug-followup [at] perl> wrote:
> > On Wed Aug 01 06:14:30 2001, Peter [at] PSDT wrote:
> > > % perl -MIO::Socket -e 'IO::Socket::INET->new(PeerAddr =>
> > > "ice-www.larc.nasa.gov", PeerPort => 80, Timeout => 180)'
> > >
> > > That produces the error 'Broken pipe'. This doesn't:
> > >
> > > % perl -MIO::Socket -e 'IO::Socket::INET->new(PeerAddr => "ice-www.
> > > larc.nasa.gov", PeerPort => 80)'
> > >
> > > It's only on that address, BTW - pick another web server and it's fine
> > > (!). Also it does not reproduce on Linux (RH 6.2).
> > Are you still observing this oddity on Solaris on versions of IO::Socket
> > distributed with a supported version of Perl such as 5.14.2 or blead?
> I can't reproduce this on 5.8.4, 5.12.4, 5.14.2, nor blead.
Thanks for checking this, but sadly I doubt that *anyone* can usefully
reproduce the problem totally, as the specific host the bug report
mentions as the problem no longer exists:
$ host ice-www.larc.nasa.gov
Host ice-www.larc.nasa.gov not found: 3(NXDOMAIN)
It's a shame that we missed asking this question at the time, but
for future reference, I think what we really (also) needed was the
output from running the test program under truss.
It looks like a spurious SIGPIPE is being sent by the OS for no
particularly good reason, as the error seems to arrive without
the Perl code doing any sort of read on the socket. To be sure about
this we would have needed to know the order of system calls - hence
(and equivalently ktrace on *BSD, strace on Linux. Not sure whether
any other platforms have similarly good tools)
via perlbug: queue: perl5 status: resolved