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

Bradley C Bailey cgiapp at brad.memoryleak.org
Fri Nov 21 15:22:17 EST 2008


>> Is there a way we could better update the documenation around these issues?
> 
> Yeah, we need to think about this.
> 
> In summary, I'm more and more convinced now that CGI::Session has not
> been at fault, but design faults (yes, bugs) in other modules create
> circular references, which in turn cause symptoms making it look like
> CGI::Session is at fault.

Agreed.

Even if you don't think it is safe to rely on autoflushing, these bugs 
should be found and fixed.  I have been using CGI::Session for many 
years and never had to explicitly call flush().  I think you should be 
able to rely on DESTROY() being called, if not there's a problem 
somewhere else.


> But - as always - these are symptoms, and the underlying reason - again,
> as always - needs to be determined. And this process seems to have done
> that.
> 
> As for docs, we can include a warning in the docs for CGI::Session, but
> keep in mind the authors/maintainers of CGI::Session are not responsible
> for the bugs in other modules.
> 
> And by that I mean it's not up to us to do something to CGI::Session to
> fix these other problems, or even do something in the code to pre-empt
> them.
> 
> However, a doc patch for CGI::Session (I'll draft something today, it's
> 7am here now) can definitely warn people about these symptoms, and which
> tools to use to investigate.

Agreed.

I am going to update my documentation for the Flash stuff as well to 
point this kind of problem out.

Thanks to Rhesa for pointing out Devel::Cycle, that is a cool module.

So pardon my ignorance here, but if a circular reference is created and 
objects don't go out of scope and get destroyed, wouldn't that lead to 
memory leaks in persistance environments (ie: mod_perl, fastcgi, ...)? 
Seems like a major problem.


And here are the versions of software I was testing with:

CGI: 3.33
CGI::Application: 4.20
CGI::Application::Server: 0.060
CGI::Application::Dispatch: 2.14
CGI::Session: 4.38
CGI::Session::Flash: 0.01
CGI::Application::Plugin::AutoRunmode: 0.15
CGI::Application::Plugin::DebugScreen: 0.06
CGI::Application::Plugin::ErrorPage: 1.12
CGI::Application::Plugin::Flash: 0.01
CGI::Application::Plugin::Redirect: 0.1
CGI::Application::Plugin::Session: 1.03
CGI::Application::Plugin::Stash: 0.01
CGI::Application::Plugin::TT: 1.03
Titanium: 1.00

Regards,
Bradley C Bailey



More information about the cgiapp mailing list