On 10/11/10 8:40 PM, Wietse Venema wrote:
Small correction in-line.
Wietse
Wietse Venema:
Wietse Venema:
How do I fix the system's ZERO-DELAY timer?
I can write a small test program. If it reproduces the problem,
then there are two things that need to be done.
1) The program needs to be sent to VMware as part of a bug report.
2) We can try to program around this bug until the vendor fixes
it. Perhaps some system configuration will suffice. For example,
many virtualization systems emulate a number of "hardware" timers
such as ACPI, TSC etc. and some emulations may be less buggy.
But first, you need to get some recent Postfix source code on the
machine so that we can do some quick tests. There is no need to
overwrite the installed Postfix.
Attached is a small test program, to be run in the virtual machine.
Please save as postfix-x.x-yyyymmdd/src/util/zero_delay.c where
postfix-x.x-yyyymmdd is the top-level directory from a recent
Postfix release (2.4 or later).
Then,
cd postfix-x.x-yyyymmdd
make
(get some coffee)
cd src/util
make zero_delay | sed 's/$/ libutil/a' | sh
Grr. That should be:
make -n zero_delay | sed 's/$/ libutil.a/' | sh
I pasted the wrong command line.
The result is a test program zero_delay, to be run as:
./zero_delay
It should run for 10-20 seconds or so then terminate with
normal completion after 1000000 iterations
If instead it terminates with
timer event lost after N iterations
then you have found the timer bug that causes Postfix to deliver
only one message probe per 300 seconds, and we can start looking
for workarounds (such as changing the src/util/events.c module and
replacing zero delay requests by 1 millisecond delay requests).
Wietse
[ Attachment, skipping... ]
Cool, I will try that tomorrow when I get to work and feedback the results.
I've been meaning to upgrade to Postfix 2.7 too so might as well do that
when I'm at it.
I should only compile this testprogram and not install it right?
Thanks,
-Patric