[Mailman-Developers] about qrunner and locking

Marc MERLIN marc_news@valinux.com
Sat, 9 Dec 2000 08:03:49 -0800

On Fri, Dec 08, 2000 at 10:38:12AM -0500, Barry A. Warsaw wrote:
>     MM> But then comes the question: why does qrunner have to modify
>     MM> the list's config.db when it ships a message?  I suppose the
>     MM> relevant piece of code in qrunner is:
>     |    try:
>     |        keepqueued = dispose_message(mlist, msg, msgdata)
>     |        # Did the delivery generate child processes?  Don't store them in
>     |        # the message data files.
>     |        kids = msgdata.get('_kids')
>     |        if kids:
>     |            allkids.update(kids)
>     |            del msgdata['_kids']
>     |        if not keepqueued:
>     |            # We're done with this message
>     |            dequeue(root)
>     MM> but I have to admit to not understanding what it does.
> This isn't directly related to your problem, but some pipeline modules
> can create subprocesses, although the only one that does this
> currently is ToUsenet.py.  This code makes sure that all those
> children are waited on so they don't zombie.  What /really/ ought to
> happen is that there is a separate queue for usenet postings since
> once the message is prepared for usenet, it doesn't need to touch the
> list database again.

I read the other messages with interest (thanks to all those who
contributed), so let me ask: what happens if I remove the piece of code
above, and just not lock the config.db at all in qrunner?
(in my case, I will not be doing usenet gatewaying, so the children problem
doesn't seem to apply to me)

Microsoft is to operating systems & security ....
                                      .... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/   |   Finger marc_f@merlins.org for PGP key