[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Spotted queue processing error in ZMailer router..
The thing was handling queue sort of right, except the child feeder
gave up when feeding busy child -- end result was that timeorder of
A B C D E F G H I J K
got processed like:
A B - - - - - - I - -
- - - F - - - -
etc. ("-" meaning "skipped when no free child for job")
Rather badly, that is. At VGER's large queue that was one of the
contributing factors for the slow processing we have seen.
I have been wondering recently why my workstation ZMailer system did
partial queue processing at times; meaning all messages in router
input directory were not processed in one go, but some were left behind.
I didn't realize the real reason before today when I spotted VGER's
routers processing some *new* message, while old ones were not yet
handled. So I created a fixup for a subroutine which was called
by assuming it will block until processing is done, but which itself
assumed it won't block...
I really should rewrite the subprocess queue interaction thing in
the router/daemonsub.c module to behave much more in style of
what the scheduler does with its queues. That could give also
processing priority mechanism.