Hi folks,
This is a warning to folks running Exim w/ MySQL on FreeBSD SMP [1]
systems. Folks who don't use such configurations can safely ignore this
message.
It seems that recent versions of MySQL tend to get stuck spinning on
something when used in POP-before-SMTP solutions with Exim. I'm sure
that's not the only scenario, but it's one that's pertinent to Exim
users.
This becomes a serious problem for FreeBSD SMP systems, because FreeBSD
SMP currently appears to lose significant time under load. When I had
MySQL spinning for a day, I lost 4 hours in that day. The loss of time
is chronic enough such that ntpd can't cope.
I believe that Poul-Henning Kamp is investigating the problem on
the FreeBSD side. The problem seems to have been narrowed down to
gettimeofday(), but a fix should not be expected in a hurry. More
details in the freebsd-smp mailing list archives.
I have no idea why MySQL gets stuck. If you can't switch to an
alternative RDBMS (e.g. PostgreSQL, which I've opted for), you could try
building MySQL with linuxthreads instead of native FreeBSD threads.
This involves building the port with WITH_LINUXTHREADS defined. This
may not solve the problem, but it's something nobody seeing this
behaviour has tried yet. :-)
Ciao,
Sheldon.
[1] SMP: Symmetric Multiprocessing; kernel support for multiple
processor systems.