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
##### CGI::Application community mailing list ################
## ##
## To unsubscribe, or change your message delivery options, ##
## visit: http://www.erlbaum.net/mailman/listinfo/cgiapp ##
## ##
## Web archive: http://www.erlbaum.net/pipermail/cgiapp/ ##
## Wiki: http://cgiapp.erlbaum.net/ ##
## ##
################################################################