Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#450 Use inotify instead of polling in Runner.py

Mailman 2.2 / 3.0
open
nobody
5
2007-09-20
2007-08-17
Tomas Smetana
No

Hi,
the Mailman wakes up 7 times per second which is somehow resource unfriendly. This is caused by qrunners that poll for new files in queue directory. The proposed patch replaces polling in Runner.py with inotify which enables CPU to idle when possible.

The patch requires python-inotify (http://pyinotify.sourceforge.net) to be installed.
--ts

Discussion

1 2 > >> (Page 1 of 2)
  • Barry Warsaw
    Barry Warsaw
    2007-08-17

    Logged In: YES
    user_id=12800
    Originator: NO

    IIUC, inotify is a Linux-only thing so this would have to be optional. I haven't looked at the patch, but I would target this for Mailman 3 instead of 2.2.

     
  • Tomas Smetana
    Tomas Smetana
    2007-08-17

    Logged In: YES
    user_id=1869522
    Originator: YES

    Yes, you're right... I didn't realize that inotify is Linux specific. I will add a configure script option -- this should solve the Linux-only problem and make the python-inotify dependency optional. Also I will take a look at Mailman 3 and try to create a patch for it as well.

     
  • Tomas Smetana
    Tomas Smetana
    2007-08-21

    Logged In: YES
    user_id=1869522
    Originator: YES

    File Added: mailman-inotify.patch

     
  • Tomas Smetana
    Tomas Smetana
    2007-08-21

    Logged In: YES
    user_id=1869522
    Originator: YES

    I'm adding updated patch for Mailman 2.2 and a new patch for Mailman 3. I've moved the python-inotify parts in conditionals, so if inotify is not present in the system, everything should work as in the unpatched version.
    File Added: mailman3-inotify.patch

     
  • Tomas Smetana
    Tomas Smetana
    2007-08-24

    Logged In: YES
    user_id=1869522
    Originator: YES

    The patches will make Mailman working but unstoppable. It looks to be a python's problem with handling signals in threads. I'm closing this ticket until the issues got solved.

     
  • Tomas Smetana
    Tomas Smetana
    2007-08-24

    • status: open --> closed-invalid
     
  • Tomas Smetana
    Tomas Smetana
    2007-09-20

    • status: closed-invalid --> open
     
  • Tomas Smetana
    Tomas Smetana
    2007-09-20

    Logged In: YES
    user_id=1869522
    Originator: YES

    Reopening: I have prepared new patches that were tested with Mailman 2 and look to be OK. Please consider incorporating the patches.
    File Added: mailman3-inotify.patch

     
  • Tomas Smetana
    Tomas Smetana
    2007-09-20

    New patch for Mailman 3

     
  • Tomas Smetana
    Tomas Smetana
    2007-09-20

    New patch for Mailman 2

     
    Attachments
1 2 > >> (Page 1 of 2)