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