
perlbug-followup at perl
Apr 27, 2012, 4:19 AM
Post #2 of 3
(62 views)
Permalink
|
|
[perl #7425] IO::Socket Oddity on Solaris on 5.6.1
[In reply to]
|
|
On Thu Apr 26 16:41:16 2012, Hugmeir wrote: > 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 truss (and equivalently ktrace on *BSD, strace on Linux. Not sure whether any other platforms have similarly good tools) Nicholas Clark --- via perlbug: queue: perl5 status: resolved https://rt.perl.org:443/rt3/Ticket/Display.html?id=7425
|