[mod_python] Session Hanging Problems

David Janes davidjanes at blogmatrix.com
Mon Nov 26 14:50:01 EST 2007


I'd be certainly interested in a non-mod_python session handler, since
I'm suspecting we'll be going to a non-Apache solution soon (since we
don't really take advantage of any Apache features right now) and we
were considering writing a generic one -- or adapting mod_python's
handlers.

On the other hand as Harish notes, it would be good to solve the
problem for mod_python as mod_python's been very good to us! I'm
wondering if there's any need at all to touch the Apache global lock
anyway, or if it can worked around another way.

Regards, etc...

PS: this is what I'm working on right now:
http://www.onaswarm.com

On Nov 26, 2007 2:21 PM, David Lenwell <dlenwell at gmail.com> wrote:
> yeah .. its very broken for me too .. What I am working on is my own
> session handler.. I don't feel that mysql is a valid replacement
> because it puts unnecessary load on your database server.
>
> We are debating on open sourcing the code I am working on. if I win
> the argument that open source can be good for us then I will
> contribute my code to the project.
>
>
>
> On Nov 26, 2007, at 10:55 AM, David Janes wrote:
>
> > All I can say is "we too" -- we're using FileSession. We have not been
> > able to come up with a cure, though we've minimized use of sessions
> > which brings the frequency down significantly.
> >
> > Regards, etc...
> > David
> >
> > On Nov 26, 2007 1:39 PM, Harish Agarwal <harish at octopart.com> wrote:
> >> I'm using session handling with ModPython 3.3.1.  Originally I was
> >> using DbmSession and have since transitioned to a custom MySQL
> >> Session
> >> handler.  With both session types, however, I've noticed that session
> >> initialization intermittently hangs (not forever, but takes as long
> >> as
> >> four minutes to complete), at a low-ish (a handful of times every
> >> hour, while receiving, say, on order of a thousand or so requests
> >> every hour) frequency which seems to scale with the amount of traffic
> >> we're receiving.  I had read that long DbmSession cleanups can cause
> >> problems, which is why I transitioned to the MySQL system, which
> >> takes
> >> < 1 second to complete, but I'm still noticing the long session init
> >> times.
> >>
> >>
> >> I put some debugging statements into the code and it seems to be
> >> related to session locking.  In particular, it is this function call
> >> in the lock method of the BaseSession class:
> >>
> >>
> >> _apache._global_lock(self._req.server, self._sid)
> >>
> >>
> >> which is taking some time to complete. I'm not familiar with
> >> _apache._global_lock (is it used to apply a mutex lock to the
> >> session?) and am having trouble finding information describing its
> >> usage - but it seems likely that this is the root cause.  In the past
> >> I've had problems with session locking but have since transitioned
> >> the
> >> code to ensure that only one session is created per request, as such:
> >>
> >> if not hasattr(req,'session'):
> >>             req.session = Session.MySQLSession(req)
> >>
> >>
> >> Can anyone tell me if this kind of behavior is normal or is
> >> indicative
> >> of some common configuration or coding error?  Any help would be
> >> greatly appreciated.
> >>
> >> Thanks,
> >> -Harish
> >> _______________________________________________
> >> Mod_python mailing list
> >> Mod_python at modpython.org
> >> http://mailman.modpython.org/mailman/listinfo/mod_python
> >>
> >
> >
> >
> > --
> > David Janes
> > Founder, BlogMatrix
> > http://www.blogmatrix.com
> > http://blogmatrix.blogmatrix.com
> > _______________________________________________
> > Mod_python mailing list
> > Mod_python at modpython.org
> > http://mailman.modpython.org/mailman/listinfo/mod_python
>
>



-- 
David Janes
Founder, BlogMatrix
http://www.blogmatrix.com
http://blogmatrix.blogmatrix.com


More information about the Mod_python mailing list