> > On Mon, Mar 17, 2003 at 08:16:12AM -0500, Sam Varshavchik wrote:
> >
> >> This release adds a new tunable parameter that controls processing of
mail
> >> queue backlogs; adds Solaris IPv6 support, and fixes a number of bugs.
> >
> > Sam,
> >
> > I have an observation about the new queuefill parameter. When I
initially
> > tried it, it worked as I expected it to. Yesterday I was doing some more
> > tests, and it seemed not be working, so this afternoon, I conducted the
> > following controlled test (queuelo=200, queuehi=400, queuefill=5m):
> >
> > time action
> > --------------
> > t injected 20 msgs for host A (host A unreachable, queuedeliverying=20)
> > t+10 injected 380 msgs for host B (host B also unreachable,
queuedelivering=400)
> > t+20 injected 20 msgs for host C (all delivered in a few seconds,
queuedelivering=380)
> >
> > So I expected the queuefill timer to expire at t+310 and trigger a
> > refill of the queue, to refill the 20 messages for host A that had been
> > evicted to make space for messages for host C. This is because at t+10,
> > the high watermark was reached.
> >
> > However, at t+310, nothing happened. queuedelivering was still at 380,
> > and courier was making attempts to deliver messages to host B, and
> > getting deferrals. At t+610, the queue still hadn't re-filled. The queue
> > was eventually refilled to queuehi (400) at t+1h, when courierd
restarted.
> >
> > Have I missed something? Or is there a bug in the code?
>
> What happened, probably is that first twenty messages got deferred quickly
> before the second batch got fully injected.  They got kicked out of the
> queue before the next 380 messages came in, so the in-memory queue never
> reached the high watermark.
>
> When mail gets deferred, it is removed from the in-memory queue.  The
timer
> only starts ticking when the queue high watermark is reached.

This is what I don't understand then. Why would the first 20 messages be
removed from
the in-memory queue? And why did courier's log show queuedelivering=20?
Shouldn't
it then show queuedelivering=0? Isn't courierd supposed to keep the deferred
messages
in the in-memory queue, and only evict them if it reaches the high watermark
and needs
to make space?

If what you describe is what actually happened, then the original problems
still exists:
messages to host A initially get deferred, and then evicted from the queue,
and will not
re-enter the queue, because there is a constant stream of messages for host
B which
dominates the queue, but never hits the high watermark, and thus never
triggers the
queuefill timer.

--
Anand



-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open! 
Get cracking and register here for some mind boggling fun and 
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
_______________________________________________
courier-users mailing list
[EMAIL PROTECTED]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Reply via email to