[Catalyst] App breaks after updating to Catalyst::Plugin::Session::State::URI v0.14

Ash Berlin ash_cpan at firemirror.com
Thu Aug 19 17:32:49 GMT 2010


On 19 Aug 2010, at 18:12, Charlie Garrison wrote:
> Good morning,
> 
> On 19/08/10 at 9:12 AM -0700, Bryan Opfer <b at opfermail.com> wrote:
> 
>> I have the same exact behavior in my app after upgrading to 0.14.  So,
>> I don't think it is just your app.  Interestingly, if I remove "param"
>> from my config and use the mode where the session id is appended to
>> the URI, then things work fine.  But, if I use the session id in the
>> param, it breaks just like your app.
> 
> We're hitting the same thing then. I've just been playing with C::P::Session::State::URI code and found that if I change line 323 from:
> 
>        if ( my $sid = $c->request->param($param) ) {
> 
> to:
> 
>        if ( my $sid = 0 ) {
> 
> then the problem goes away. So without knowing more about Cat internals I would conclude that calling $c->request->param during `prepare_path` is creating problems elsewhere. I also tried:
> 
>        if ( my $sid = $c->request->parameters->{$param} ) {

Try changing parameters to query_parameters. It sounds like hitting params is causing it to read the body and mess things up when it comes to read the body again.

Also if you could see to creating a (failing) regression test this would help.



> 
> And that fails as well.
> 
> I've tried following the code logic but I'm quickly getting lost in all the different prepare_* methods spread among Catalyst.pm and the different C::Engine modules.
> 
> For now I've changed C::P::Session::State::URI with `sub prepare_action {...]` rather than `prepare_path` and my app is working. Hopefully someone with some better ideas than me can suggest what the proper fix is.
> 
> 
> Charlie






More information about the Catalyst mailing list