Skip Menu |

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

Report information
The Basics
Id: 52602
Status: resolved
Priority: 0/
Queue: HTTP-Daemon

People
Owner: Nobody in particular
Requestors: mark [...] aufflick.com
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: (no value)



Subject: IO::Socket::SSL and HTTP::Daemon's select-sysread loop don't work well together
The below bug raised for HTTP::Daemon::SSL is actually a bug in the base HTTP::Daemon. You can rewrite the test server in the Perlmonks node using only HTTP::Daemon and the result is the same. 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
sorry - my mistake :(
ok, i shouldn't be raising RT tickets this late. so: the test case does work fine with just HTTP::Daemon, but it *is* an issue in the underlying HTTP::Daemon and IO::Socket::SSL which prevents HTTP::Daemon::SSL from working with large posts.
FYI - I'm testing re-introducing the _need_more method which was in HTTP::Daemon::SSL 1.03 to work around this. This has other issues (not least of which is breaking abstraction). http://github.com/aufflick/p5-http-daemon- ssl/commit/021ac9373855e7b99a1fd5b44c14537c950a0dd6 On Wed Dec 09 06:18:56 2009, AUFFLICK wrote: Show quoted text
> ok, i shouldn't be raising RT tickets this late. > > so: the test case does work fine with just HTTP::Daemon, but it *is* an > issue in the underlying HTTP::Daemon and IO::Socket::SSL which
prevents Show quoted text
> HTTP::Daemon::SSL from working with large posts.