dharana wrote:
Hello Jim,

sorry for the lag. Here is the .mp_sess.lck info:

/tmp/mp_sess # ll /tmp/mp_sess/.mp_sess.lck
-rw-r----- 1 httpd sys 0 Oct 12 01:56 /tmp/mp_sess/.mp_sess.lck

I didn' touched anything in /tmp after my last email but I have had to add a cronjob with the find line.

If I can do anything more to help debug this tell me.


A .mp_sess.lck file more than 2 or 3 seconds old indicates a stale lock file. This file should be deleted at the end of each cleanup but the fact that it's there means something went wrong (or a cleanup is running at the precise moment you ran the ls command). You can safely delete this file to end the cleanup "vacation".

Take a look in the apache error log. A successful cleanup will log messages similar to the following:

[Wed Oct 12 13:13:58 2005] [notice] [client 192.168.1.2] FileSession: registered filesession cleanup., referer: http://www.example.com/mod_python/session/ [Wed Oct 12 13:13:58 2005] [notice] [client 192.168.1.2] FileSession cleanup: (fast=True, verify=True) ..., referer: http://www.example.com/mod_python/session/ [Wed Oct 12 13:13:58 2005] [notice] [client 192.168.1.2] FileSession cleanup: deleted 3 of 1501 in 0.3012 seconds, referer: http://www.example.com/mod_python

If a request attempts to run the cleanup while another request is already running a cleanup you should see something like this:

[Wed Oct 12 13:10:41 2005] [notice] [client 192.168.1.2] FileSession: registered filesession cleanup. [Wed Oct 12 13:10:41 2005] [notice] [client 192.168.1.2] FileSession cleanup: (fast=True, verify=True) ... [Wed Oct 12 13:10:41 2005] [notice] [client 192.168.1.2] FileSession cleanup: another process is already running.

I'm assuming you are only seeing the second group of messages repeated. Delete /tmp/mp_sess/.mp_sess.lck and see what happens. You can force the cleanup to run by calling the cleanup() method of your session object, ie. sess.cleanup().

Regards,
Jim


Jim Gallacher wrote:

dharana wrote:

I think there is a problem with the autocleaning function in FileSession. I'm using Mod_Python 3.2.2b in a live server and I today I noticed this:


/tmp/mp_sess # df -h /tmp
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda7             989M  544M  395M  58% /tmp


/tmp/mp_sess # df -i /tmp
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda7             128768  128768       0  100% /tmp


/tmp/mp_sess # ll /tmp/
total 24
drwxrwxrwt    2 root     root         4096 Oct  6 11:43 .ICE-unix/
drwx------    2 root     root        16384 Jun 14 22:30 lost+found/
drwxr-x---  258 httpd    sys          4096 Oct  6 06:04 mp_sess/


And, after executing this:

    /tmp/mp_sess # find ./ -mmin +1440 -exec rm {} \;



I get this:

/tmp/mp_sess # df -i /tmp
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda7             128768   23857  104911   19% /tmp

So I think FileSession isn't doing its work. Any ideas?


Could you check:
   ls -l /tmp/mp_sess/.mp_sess.lck

It should only exist when a cleanup is running.

.mp_sess.lck is a lock file to ensure only one cleanup process/thread is running at one time. If something went wrong during a cleanup (segfault?) then this lock file might not have been deleted. If an stale lock file exists any subsequent cleanup will exit without doing anything. If it exists delete it and see if the cleanup will run to completion.

If this lock file looks like it might create problems I can add a check to see if it's stale.

Regards,
Jim







Reply via email to