Bug 1065043 - Not a HASH reference at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 689.
Summary: Not a HASH reference at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 689.
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: perl-IO-Socket-IP
Version: 19
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Petr Šabata
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-02-13 18:05 UTC by Gregory Lee Bartholomew
Modified: 2014-03-15 15:26 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-03-03 18:03:35 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Gregory Lee Bartholomew 2014-02-13 18:05:37 UTC
Description of problem:

perl-IO-Socket-IP-0.19 and perl-IO-Socket-SSL-1.88 are incompatible as explained here:

Excerpted from https://rt.cpan.org/Public/Bug/Display.html?id=81932#txn-1211956

-- BEGIN EXCERPT --

...

C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/loadmodule.t .. ok
t/testmodule.t .. 1/9 Not a HASH reference at
C:/strawberry/perl/vendor/lib/IO/Socket/SSL.pm line 600.
Terminating on signal SIGINT(2)

...

The bug initially described here is fixed by installing at least IO::Socket::IP version 0.20, or by using IO::Socket::SSL version 1.89, which will not use older IO::Socket::IP versions.

-- END EXCERPT --

Version-Release number of selected component (if applicable):

[root@vm-00 scripts]# rpm -q perl-IO-Socket-IP perl-IO-Socket-SSL perl-HTTP-Daemon-SSL
perl-IO-Socket-IP-0.19-1.fc19.noarch
perl-IO-Socket-SSL-1.88-2.fc19.noarch
perl-HTTP-Daemon-SSL-1.04-9.fc18.noarch

How reproducible:

Consistent

Steps to Reproduce:

1. # generate a valid certificate and key in pem format and put them in the "certs" subdirectory of the test.pl script's working directory.

cd /etc/pki/tls/certs
make cert-and-key.pem

...

Common Name (eg, your name or your server's hostname) [?]: your.fqdn

...

mkdir /tmp/certs

cat cert-and-key.pem | perl -e '$/=undef; <> =~ /(.*)\n\n/ms && print "$1\n"' > /tmp/certs/server-key.pem
cat cert-and-key.pem | perl -e '$/=undef; <> =~ /\n\n(.*)/ms && print "$1"' > /tmp/certs/server-cert.pem

2. # create and run the test.pl script

cat > /tmp/test.pl
# copy-n-paste the below script and end with Ctrl^D on an empty line

#!/usr/bin/perl

use IO::Select;
use HTTP::Daemon::SSL;
use HTTP::Headers;
use HTTP::Status;

$daemon = HTTP::Daemon::SSL->new(Listen => 3, LocalAddr => 'your.fqdn', LocalPort => 443, ReuseAddr => 1) || die "$!\n";
$select = IO::Select->new( $daemon );

while(@ready = $select->can_read()) {
	foreach $fh (@ready) {
		if($fh == $daemon) {
			($c, $ip) = $daemon->accept();
			$select->add($c);
		} else {
			if($request = $fh->get_request()) {
				$header = HTTP::Headers->new(Content_Type => 'text/plain');
				$fh->send_response(HTTP::Response->new(RC_OK, undef(), $header, 'Hello World!'));
			} else {
				$select->remove($fh);
				$fh->close();
				$fh = undef();
			}
		}
	}
}

3. # with the script running, query it on its listening port

wget -O - https://your.fqdn/ 2>/dev/null | cat

Actual results:

"Not a HASH reference at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 689." printed on server console.

Expected results:

"Hello World!" printed on the client console.

Additional info:

[root@vm-00 tmp]# cat /etc/issue
Fedora release 19 (Schrödinger’s Cat)
Kernel \r on an \m (\l)
[root@vm-00 tmp]# uname -a
Linux vm-00 3.11.8-200.fc19.x86_64 #1 SMP Wed Nov 13 16:29:59 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Comment 1 Petr Šabata 2014-02-27 21:27:08 UTC
Thanks for the report. I'm going to push the latest fixes to f19+.

Comment 2 Fedora Update System 2014-02-27 21:42:03 UTC
perl-IO-Socket-IP-0.29-1.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/perl-IO-Socket-IP-0.29-1.fc20

Comment 3 Fedora Update System 2014-02-27 21:45:10 UTC
perl-IO-Socket-IP-0.29-1.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/perl-IO-Socket-IP-0.29-1.fc19

Comment 4 Gregory Lee Bartholomew 2014-03-03 18:03:35 UTC
perl-IO-Socket-IP-0.29-1.fc19 worked for me.  I consider this issue resolved.  I'll go ahead and close the bug.

Thanks,
gb

Comment 5 Fedora Update System 2014-03-15 15:16:21 UTC
perl-IO-Socket-IP-0.29-1.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 6 Fedora Update System 2014-03-15 15:26:04 UTC
perl-IO-Socket-IP-0.29-1.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.