Just about all error constants are missing from the /usr/lib/perl5/5.6.0/i386-linux/Errno.pm file from perl-5.6.0-6.i386.rpm. This will result in some strange behaviour when modules that rely on these constants suddenly stop working as expected. I noticed it when I could not get IO::Socket::INET to connect to any host at all if there was a timeout specified. It turned out that it wanted to check if connect() had returned EINPROGRESS, but as that error was not defined it instead failed to create the socket... The following small program will fail with "Failed: Operation now in progress" (assuming a host with the name www exists). #!/usr/bin/perl -w use IO::Socket::INET; IO::Socket::INET->new(PeerAddr => 'www', PeerPort => 80, Proto => 'tcp', Timeout => 180) or die "Failed: $!\n"; print "Success\n";
After a simple test it turned out that this may be the cause for bug #14990 too, as the test supplied for it starts working after I added the required errors to Errno.pm.
This was fixed for #14779. *** This bug has been marked as a duplicate of 14779 ***