> > 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
