> > I tried setting Lock to File instead of Null, but there is some sort
> > of contention issue because after the first request all other requests
> > hang like they are waiting for a lock to be release.
> 
> This usually means you have a scoping bug in your code.  If the session
> object never goes out of scope, it will not release the lock.

I put some loggin into apache::session::lock::file, and then switched
between using apache::session::file and apache::session::flex with
postgres and Lock set to File.
With postgres it calls acquire_read lock a bunch of times in a row
with an acquire_write_lock thrown in and then something blocks.  Using
apache::session::file it alternates correctly and doesn't do that. 
There has to be some logic in apache::session that is different than
apache::session::file.

Here is a log when using apache::session::file.  I put the pid in front.

96836 acquire_read_lock
96836 acquire_write_lock
96836 release_all_lock
96836 DESTROY
96836 release_all_lock
96822 acquire_read_lock
96822 acquire_write_lock
96822 release_all_lock
96822 DESTROY
96822 release_all_lock
96836 acquire_read_lock
96836 acquire_write_lock
96836 release_all_lock
96836 DESTROY
96836 release_all_lock

Here is a log using flex with postgres and Lock set to File.
96824 acquire_read_lock
96834 acquire_read_lock
96826 acquire_read_lock
96824 acquire_write_lock
96822 acquire_read_lock


I'm not sure exactly what pages were being called in the log snippets
above, but this pattern is always the same.

Chris

-- 
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html

Reply via email to