This queue is for tickets about the HTTP-Daemon-SSL CPAN distribution.

Report information
The Basics
Id:
45625
Status:
open
Priority:
Low/Low

People
Owner:
Nobody in particular
Requestors:
davidgaramond [...] gmail.com
Cc:
AdminCc:

BugTracker
Severity:
Normal
Broken in:
1.04
Fixed in:
(no value)



Subject: IO::Socket::SSL and HTTP::Daemon's select-sysread loop don't work well together
HTTP::Daemon::SSL hangs on largish (e.g. >37k or >67k) POST request. Quoting zwon on perlmonks.org: "It looks like select-sysread loop in HTTP::Daemon doesn't work correctly with IO::Socket::SSL. That's because select in _need_more tests real filehandle and sysread reads from IO::Socket::SSL object which is buffered, so sysread($self, $_[0], 2048, length($_[0])) may actually read more than 2048 bytes from the socket and subsequent select on socket will hang. Removing Timeout [which avoids the select() altogether] as proposed by derby solves the problem." Complete description in: http://www.perlmonks.org/?node_id=761270
It's a bug in the base classes from LWP - raised RT #52602 and added skipped tests and warnings to HTTP::Daemon::SSL dist.
ok, so it is a bug in the base classes IMO, but it turns out that is what the _need_more override was there for in HTTP::Daemon::SSL 1.03. I have reinstated that in the dev release 1.05_01. Apparently it caused issues before but I cannot replicate them now. More investigation is needed before releasing this as a main version. On Wed Dec 09 06:19:42 2009, AUFFLICK wrote:
Show quoted text
> It's a bug in the base classes from LWP - raised RT #52602 and added > skipped tests and warnings to HTTP::Daemon::SSL dist.
Just tried out HTTP::Daemon::SSL 1.05_01. It still hangs. In fact, unlike 1.04, it still hangs even when Timeout option is not specified. To reproduce the problem, you can use my test case: https://github.com/sharyanto/test/tree/master/20140603-http_daemon_ssl-hanging-problem Using HTTP::Daemon::SSL 1.04, run http-daemon-ssl-with-timeout and launch a rather long request (see README.org). It hangs. Use http-daemon-ssl-without-timeout and it won't hang. But using HTTP::Daemon::SSL 1.05_01, both daemon will hang. Regards, Steven


This service runs on Request Tracker, is sponsored by The Perl Foundation, and maintained by Best Practical Solutions.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.