You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
My $work app has encountered a problem that I believe is identical to
rt#81237, but with Net::SSL rather than IO::Socket::SSL as the underlying
socket library.
Our current plan to address this is to upgrade to latest Crypt::SSLeay
(which exposed the 'pending' method in a recent change) and then apply
the following local patch (against Net-HTTP-6.06, but should apply over
6.07 as well):
--- lib/perl5/Net/HTTP/Methods.pm.old 2013-03-10 22:35:43.000000000 +0000
+++ lib/perl5/Net/HTTP/Methods.pm 2014-09-15 14:05:38.000000000 +0100
@@ -284,6 +284,7 @@
my $self = shift;
return 1 unless defined(fileno($self));
return 1 if $self->isa('IO::Socket::SSL') && $self->pending;
+ return 1 if $self->isa('Net::SSL') && $self->pending;
# With no timeout, wait forever. An explict timeout of 0 can be
# used to just check if the socket is readable without waiting.
It looks like the support for pending() came in between 0.65_02 and 0.65_04
of Crypt::SSLeay, so it isn't obvious how Net::HTTP should incorporate
a similar fix - if you're using an older Crypt::SSLeay you'll get something
like:
Can't locate object method "pending" via package "LWP::Protocol::https::Socket" at lib/perl5/Net/HTTP/Methods.pm line 287.
Hugo
Hi all,
I'm pretty sure that I was just hit by this bug too.
I'm using LWP to make HTTP POST requests to a site.
The following combination works fast as expected:
Net::HTTP 6.01
Crypt::SSLeay 0.57
IO::Socket::INET 1.31
The follwoing combination does return after a long period (timeout):
Net::HTTP 6.06 also 6.07
Crypt::SSLeay 0.57
IO::Socket::INET 1.31
I found the same portion of code with profiling the weired test run with Devel::NYTProf showing that the call to can_read spent most of the time.
Following the proposed patch I installed newest Crypt::SSLeay and Net::HTTP, added the line and the measured runtime is as expected.
I'm writing this because I'm pretty sure that this bug happens in the wild and is a kind of backward compatibility regression of Net::HTTP.
Important is that the method 'pending' of 'Net::SSL' is introduced in one of the younger versions. The right dependencies must be set.
Regards
McA
As an addendum:
I did some research on that to find a solution to my problem. It seems that the usage of Net::SSL as part of Crypt::SSLeay to make SSL connections is deprecated (version 0.72). As soon as you install that version the module LWP::Protocol::https is pulled from CPAN if it's not installed before. With that installation IO::Socket::SSL should be pulled from CPAN to do the whole SSL stuff in favour of Net::SSL.
So, as soon as you hit the bug you should check why you're using Net::SSL and not IO::Socket::SSL. In my case is seems to be a strange history of dependency resolution.
Regards
McA
The text was updated successfully, but these errors were encountered:
Migrated from rt.cpan.org#98898 (status was 'open')
Requestors:
From hv@crypt.org on 2014-09-15 13:09:32
:
From http://xlogon.net/amock on 2014-10-15 12:48:54
:
From http://xlogon.net/amock on 2014-10-15 14:34:21
:
The text was updated successfully, but these errors were encountered: