[cgiapp] Problem with Flash, Session & persistent environment identified

Richard Jones ra.jones at dpw.clara.co.uk
Fri Nov 21 15:17:45 EST 2008


Bradley C Bailey wrote:
> Richard,
> 
>> If Ron can make a working demo with CAP::Flash :) ..
>>
>> Starting out with the bare minimum (no login, no authentication, 
>> direct use of $dbh, etc), I get the flash messages displaying under 
>> mod_cgi, but not under CA::Server unless I session->flush in teardown.
>>
>> use base qw(Titanium);
>> use CGI::Application::Plugin::TT;
>> use CGI::Application::Plugin::Flash;
>>
>> Startmode() sets some flash messages then re-directs to function1() to 
>> display the template.
>>
>> Removing Titanium and substituting CGI::Application as the superclass 
>> was the key to getting the flash messages displayed under CA::Server 
>> without needing session->flush. Yay!!
> 
> I am able to reproduce this as well.  I had my test application working, 
> and I switched it to Titanium instead of CGI::Application and my 
> sessions stopped working automatically flushing (not going out of scope).
> 
> 
>> Then, bringing back all the plugins that Titanium uses one by one 
>> until it broke again, CAP::ErrorPage is the one responsible. 
>> Presumably there is something in there that causes the session to be 
>> retained in a persistent env?
>>
>> It's possible that one of the Titanium mods is also causing the 
>> failure of AutoRunmode to work under mod_perl for me, but that's 
>> another issue.
> 
> I can confirm CAP::ErrorPage is what is causing this behavior.  Though I 
> couldn't reproduce my problems with CAP::DebugScreen.

Well it's possible CAP::DebugScreen was conflicting with my own 
$SIG{__DIE__} handler in my Dispatch class, which itself was causing 
some issues when used under mod_perl, but as I wasn't really using 
DebugScreen I'm not too sad to miss it.
-- 
Richard Jones


More information about the cgiapp mailing list