On Tuesday 26 March 2002 06:26, Oleg Assovski wrote: > >We had the exact same issues. We are using > >Apache::AxKit::Plugins::Session and that is where the problem > >was. If you are using Apache::AxKit::Plugins::Session, this is a diff > >of our patch: > > > >54c54 > >< my $res = tieHash( undef, \%flex_options ); > >--- > > > >> my $res = tieHash( undef, \%flex_options, \%session); > > IMHO key is here ^^^^^^^ > Apache::Session and its derivatives saves changes in session hash to > storage only when hash is untied. If not - changes are lost.
Yep, exactly, which is precisely why we made this fix to the plugin. The fact that %session was a package global in the original code meant that each child simply never untied the hash, thus destroy was never called, and that lead the underlying serializer never to flush its I/O buffers. You can verify how this works by taking a look at Apache::Session::Storage::File and see what happens there. Anyway, you can't store refs to the session hash in globals, it breaks the whole system. This also goes for code in taglibs etc. If you keep a ref to the session hash, you WILL break the session management system! This is going to be true for any mechanism that uses Apache::Session behind the scenes (though I guess it would be possible to rewrite some of the Storage:: modules to fix it, but there would be a possibly nasty performance hit for doing so). > > > Ciao, OLeG > ----------------------------------------------------------------- > Oleg Assovski, Development dept., Bitcom Ltd., Moscow > We make few little bugs, > we compensate with a lot of big ones > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
