[mod_python] Session Hanging Problems

Harish Agarwal harish at octopart.com
Mon Nov 26 14:29:36 EST 2007

Did you also have problems with _apache._global_lock?  For now, I'm  
not too worried about the database load (if necessary we can  
transition to an in memory session handler as well), I'd just like to  
understand the source of the problems as I have a feeling this problem  
will always show up (as the other David has noticed this problem with  
FileSession as well) as long as we're inheriting our session handler  
from BaseSession.


On Nov 26, 2007, at 11:21 AM, David Lenwell 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

More information about the Mod_python mailing list