Skip Menu |

This queue is for tickets about the POE-Component-Server-SimpleHTTP CPAN distribution.

Report information
The Basics
Id: 4851
Status: resolved
Priority: 0/
Queue: POE-Component-Server-SimpleHTTP

People
Owner: Nobody in particular
Requestors: timwood0 [...] pacbell.net
Cc:
AdminCc:

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



Subject: SimpleHTTP server exits with error on rapid reloads (IGNORE 4849)
Code a server based on the synopsis code and start it. In the browser, enter an illegal URL (like "http://host/foo"), then rapidly click the refresh button. Several reloads occur, then server exits with errno 29 (Solaris 7), and DEBUG-mode messages (starting from last click): Acceptor got connection, sending to parent at /usr/local/lib/perl5/site_perl/5.8.1/POE/Component/Server/SimpleHTTP.pm line 320. Got_Connection completed creation of ReadWrite wheel ( 6 ) at /usr/local/lib/perl5/site_perl/5.8.1/POE/Component/Server/SimpleHTTP.pm line 352. Wheel 6 generated read error 0: Can't call method "put" on an undefined value at /usr/local/lib/perl5/site_perl/5.8.1/POE/Component/Server/SimpleHTTP.pm line 468. Successful reloads have above trace plus messages from lines 475 and 415 before the "read error" message (and no undef error). It looks like the rapid reload closes the wheel socket before Got_Output() runs. Platform: Server: Perl 5.8.1-sun4-solaris-thread-multi/Solaris 7/Sparcstn 2; client: Win2000 PC/Opera 7.1x.
Hi Tim, Thanks again for catching this subtle bug, my code doesn't check if the socket exists when it receives output to send, it simply assumes it's there, the next update will fix this by checking if the socket was shut down or not as you said. ~Apocalypse [guest - Tue Jan 6 21:18:57 2004]: Show quoted text
> Code a server based on the synopsis code and start it. In the > browser, enter an illegal URL (like "http://host/foo"), then > rapidly click the refresh button. Several reloads occur, then > server exits with errno 29 (Solaris 7), and DEBUG-mode messages > (starting from last click): > > Acceptor got connection, sending to parent at > /usr/local/lib/perl5/site_perl/5.8.1/POE/Component/Server/SimpleHTT
P.pm Show quoted text
> line 320. > Got_Connection completed creation of ReadWrite wheel ( 6 ) at > /usr/local/lib/perl5/site_perl/5.8.1/POE/Component/Server/SimpleHTT
P.pm Show quoted text
> line 352. > Wheel 6 generated read error 0: > Can't call method "put" on an undefined value at > /usr/local/lib/perl5/site_perl/5.8.1/POE/Component/Server/SimpleHTT
P.pm Show quoted text
> line 468. > > Successful reloads have above trace plus messages from lines 475 and > 415 before the "read error" message (and no undef error). > > It looks like the rapid reload closes the wheel socket before > Got_Output() runs. Platform: Server: Perl 5.8.1-sun4-solaris- > thread-multi/Solaris 7/Sparcstn 2; client: Win2000 PC/Opera 7.1x.
New version uploaded -> 1.04, thanks again! -- ~Apocalypse