[Catalyst-dev] IO bug in Catalyst refactored
Dan Kubb
dan.kubb at autopilotmarketing.com
Mon Sep 19 11:06:05 CEST 2005
Hi All,
I found a bug in the way Catalyst refactored reads in the message
body.
If the client isn't quick enough at sending the message body after
the headers the entire body will be skipped over and ignored.
I found this problem while running the HTTP Engine, but it may
affect all the engines, since the bug is in the core Engine
prepare_body() method.
Attached to this email is a simple program that demonstrates
the problem.
To use this program, just:
1. Modify the path (and possibly port) to a running instance
of Catalyst running in Debug mode.
2. Execute the program and note that the Body parameters will
not be read.. nothing will be shown in the Debug logs.
3. Comment out the sleep on line 21, and re-run the program.
The message Body parameters will most likely be read
and shown in the Debug logs.
I don't have a bug fix to Catalyst, since I rarely do raw IO
stuff -- I did try playing around with using IO::Select's
can_read within C::E::prepare_body(), but I didn't have any
luck getting it to work properly.
--
Thanks,
Dan
__________________________________________________________________
Dan Kubb Email: dan.kubb at autopilotmarketing.com
Autopilot Marketing Inc. Phone: 1 (604) 820-0212
Web: http://www.autopilotmarketing.com
__________________________________________________________________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: socket.pl
Type: text/x-perl-script
Size: 692 bytes
Desc: not available
Url : http://lists.rawmode.org/pipermail/catalyst-dev/attachments/20050919/26f8be58/socket.bin
More information about the Catalyst-dev
mailing list