mmm... bugs. it's what's for dinner.

2001-12-14 Thread Andrew A. Chen

Hello.  Today is a double dose of bugs.

1.) The HTTPD bug is still present in the POE CVS from two days 
ago...  Here's the error from the program.  Be aware that this is a hacked 
up version of httpd.perl.  A copy of the program is at 
http://stupid.divo.net/~achen/blankimg.txt.  The error below was generated 
with TRACE_DEFAULT set to 0.

Received a request from 127.0.0.1 : 45525
$VAR1 = 
'http://ad.doubleclick.net/adi/N477.osdn/B48605;sz=468x60;ord=100837953100837953';
Use of uninitialized value at bin/blankimg.perl line 122.
Use of uninitialized value at 
/usr/lib/perl5/site_perl/5.005/POE/Filter/HTTPD.pm line 67.
Received a request from 127.0.0.1 : 45525
Can't locate object method "uri" via package "HTTP::Headers" at 
/usr/lib/perl5/site_perl/5.005/HTTP/Message.pm line 189.

2.) All due apologizes to Mr. Bergman for stealing bug... I seem to have 
hit the "POE starts growing out of control, consuming all RAM and CPU, and 
unresponsive to signals except -9" bug.  Incidentally, it's the same 
program listed above, except TRACE_DEFAULT was set to 1.

achen17303 31.8 84.7 466728 435432 pts/7 RN   21:23   2:59  \_ perl 
-w bin/blankimg.perl

This eventually grew to about 1.2GB of RAM until I killed it with -9.

Unlike Mr. Bergman's problem, where it took weeks to produce the bug, I was 
able to cause POE to do this in minutes.  I actually happens to have this 
running through tee to a logfile... It's at 
http://stupid.divo.net/~achen/blankimg.output.gz.  It's 600kB uncompressed, 
about 20kB compressed.  What sucks is I can't seem to duplicate it 
again.  =/  Sorry.

Linux sunflower 2.4.16 #1 Tue Dec 11 20:58:11 PST 2001 i686 unknown
For the curious.

-a




ReadWrite wheels, InputStates, and error events

2001-12-14 Thread Dan McCormick

Hi,

I discovered something -- not sure if it's a bug or a feature -- but
it's worth noting:

When using ReadWrite wheels to just send data (is there a better
method?), defining an empty InputState (or, presumably, any InputState,
but since we're just sending data "InputState => ''" will suffice) will
trigger socket error events more quickly than not defining one.  In my
simple tests, it took two sent records over a dropped connection to
trigger an error without an InputState, but with an InputState the
dropped connection was detected immediately.

Dan