[Mailman-Developers] qrunner infinite loop?
Barry Warsaw
barry at python.org
Tue Aug 26 03:38:20 EDT 2003
On Sun, 2003-08-24 at 20:49, Greg Ward wrote:
> I've just installed the mailman 2.1.2-7 package on a Debian sarge
> (testing) system, and qrunner goes into an apparent infinite loop as
> soon as it starts. Here's a snapshot from "top" shortly after running
> "/etc/init.d/mailman start":
>
>
> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ Command
> 4498 list 19 0 4656 4656 1844 R 99.7 0.5 0:48.36 python
> 4484 gward 9 0 940 940 748 R 0.3 0.1 0:00.17 top
>
> Memory use is stable, hence my assumption that this is a garden-variety
> infinite loop.
>
> And "ps -fu list" reports this:
>
> UID PID PPID C STIME TTY TIME CMD
> list 4492 1 0 02:42 ? 00:00:00 [mailmanctl]
> list 4493 4492 0 02:42 ? 00:00:00 qrunner /var/lib/mailman/bin/qrunner --runner=ArchRunner:0:1 -s
> list 4494 4492 0 02:42 ? 00:00:00 qrunner /var/lib/mailman/bin/qrunner --runner=BounceRunner:0:1 -s
> list 4495 4492 0 02:42 ? 00:00:00 qrunner /var/lib/mailman/bin/qrunner --runner=CommandRunner:0:1 -s
> list 4496 4492 0 02:42 ? 00:00:00 qrunner /var/lib/mailman/bin/qrunner --runner=IncomingRunner:0:1 -s
> list 4497 4492 0 02:42 ? 00:00:00 qrunner /var/lib/mailman/bin/qrunner --runner=NewsRunner:0:1 -s
> list 4498 4492 97 02:42 ? 00:01:01 qrunner /var/lib/mailman/bin/qrunner --runner=OutgoingRunner:0:1 -s
> list 4499 4492 0 02:42 ? 00:00:00 qrunner /var/lib/mailman/bin/qrunner --runner=VirginRunner:0:1 -s
>
> ... so it's just one qrunner (OutgoingRunner) that's responsible for all
> the CPU sucking.
>
> Hmmm: there *are* files in the queue, but I'm not sure what they're
> doing there or how they got there (this is a new, fairly inactive system
> with no lists and no incoming traffic, apart from me testing things):
>
> # cd /var/lib/mailman/
> # find qfiles/ -type f
> qfiles/out/1061532001.524745+03e15ef2a9a7d27904406a659cdb4922a204431b.pck
> qfiles/out/1061497885.874818+cf5f7e2e03cbca8bb84a23a60f055679c16e81fa.pck
> qfiles/out/1061704802.107101+4617d8731ecb303dd756e475b5362bd5a64b1fcf.pck
> qfiles/out/1061497885.871999+3453d7caa05a1aad6b230da61b39d4937405fcc8.pck
> qfiles/out/1061497885.871999+3453d7caa05a1aad6b230da61b39d4937405fcc8.db
> qfiles/out/1061497885.874818+cf5f7e2e03cbca8bb84a23a60f055679c16e81fa.db
> qfiles/out/1061704802.107101+4617d8731ecb303dd756e475b5362bd5a64b1fcf.db
> qfiles/out/1061532001.524745+03e15ef2a9a7d27904406a659cdb4922a204431b.db
>
> Any clues? I'll try to investigate more tomorrow evening.
While I have seen qrunners suck up all available cpu occasionally, it's
usually for manageable periods of time. I haven't actually seen true
infloops, although I won't discount it. ArchRunner and BounceRunner are
the worst offenders, the former because Pipermail is very inefficient,
and the latter because of the stupid way bounces are registered. I
actually have a fix for the BounceRunner issue in cvs, which I intend on
installing on python.org to test out <wink>.
OutgoingRunner should be fairly sane since all it's doing is reading the
files from disk and spewing them over port 25 to your local smptd. It's
also doing logging so you could tail logs/{smtp,smtp-failure,post} to
watch it make progress. You should also see the qfiles/out directory
grow and shrink as files are consumed and unlinked, or new ones are
prepared for sending out.
-Barry
More information about the Mailman-Developers
mailing list