[Mailman-Users] missing qfiles .db files - messages don't get sent

Jessica Koeppel jessica at anticlockwise.com
Mon Feb 25 08:44:23 CET 2002


>1) is there any way to recreate the .db files, or in any other manner, 
>get these messages sent out? 

I figured out that I could cat the stranded .msg file through
"mail/wrapper post <listname>". 

where listname was the appropriate list for the file in question.  I
moved all these stranded .msg files to a temporary dir to get them out
of the way, then used this method to re-send them.  All my previously
stranded messages are sent out now.

>2) does anyone know why this might be happening, and what I can
>do to prevent it?

>I'm tempted to change Message.py to write the .msg first.

I went ahead and did this, as it seemed incredibly harmless
to do. The change is precisely, in Message.py:

Was: 

        # Write the data file
        dbfp = Utils.open_ex(dbfile, 'w')
        marshal.dump(msgdata, dbfp)
        dbfp.close()
        # If it doesn't already exist, or if the text of the message has
        # changed, write the message file to disk.
        if not existsp or dirty:
            msgfp = Utils.open_ex(msgfile, 'w')
            msgfp.write(text)
            msgfp.close()

Is now:

        # If it doesn't already exist, or if the text of the message has
        # changed, write the message file to disk.
        if not existsp or dirty:
            msgfp = Utils.open_ex(msgfile, 'w')
            msgfp.write(text)
            msgfp.close()
        # Write the data file
        dbfp = Utils.open_ex(dbfile, 'w')
        marshal.dump(msgdata, dbfp)
        dbfp.close()

After making this change and re-"post"ing each of the previously
stuck .msg files, qrunner behaved unexpectedly. Each time it ran,
on the minute via cron, it would send *one* file from qfiles.
Just one, and exit. The next run at the next minute would send another
message. Eventually, after enough minutes, the queue was empty.

I noticed an entry like this in the log for each file:

Feb 24 23:34:14 2002 (11588) Unlinking orphaned .db file: /local/mailman/qfiles/ba7b4c0187245ffa075d0b6478c8e9427aace895.db
Feb 24 23:40:04 2002 (14974) Unlinking orphaned .db file: /local/mailman/qfiles/a5c144d54936ee94281b619a1e5b09ad273049d4.db

Odd. Maybe each run would send one file and remove the .msg file
but then for some reason exit. Then on the next run the .db file
would be removed because it was orphaned?

No, I just sent a test message. in the "post" log:

Feb 24 23:40:03 2002 (14974) post to testlist2 from mailman at there.com, size=145, success

In the qrunner log:

Feb 24 23:40:04 2002 (14974) Unlinking orphaned .db file: /local/mailman/qfiles/a5c144d54936ee94281b619a1e5b09ad273049d4.db

So that had to be the same qrunner run, at 23:40.

Hrm, this doesn't seem right, does it? mailman shouldn't be having
to clean up an orphaned .db file every time it sends a message.

But the *only* thing I changed is Message.py, and I don't see how
my change could have caused this.

Hoping for help from someone more familiar with the code...

thanks,
--jessica





More information about the Mailman-Users mailing list