Hello
A few month ago I installed dbmail-2.0.7 on OpenBSD 3.7 with
porstgresql-7.4.3p2.
It was running fine until yesterday the box was extremely slow. After some
investigation I saw lots of dbmail-imapd zombies and about 20 imapd
processes using up 100% CPU.
Killing them didn't work so I killed all with -9 and restarted imapd.
Today the box was in the same state. So i upgraded to 2.0.9 and restarted
imapd.
But I saw a few error messages on the console:
dbmail-imap4d[12554]: serverchild.c,CreateChild: child_register failed
Looking at the code in CreateChild I'd say the handling of fork failures
is wrong, maybe the following patch solves the problem:
Index: serverchild.c
===================================================================
--- serverchild.c (revision 2053)
+++ serverchild.c (working copy)
@@ -175,6 +175,11 @@
{
id_t pid = fork();
+ if (pid == -1) {
+ trace(TRACE_FATAL, "%s,%s: fork failed",
+ __FILE__, __func__);
+ return pid;
+ }
if (! pid) {
if (child_register() == -1) {
trace(TRACE_FATAL, "%s,%s: child_register failed",
The versin I run now does not contain that patch because I want to see if
it happens again with 2.0.9.
Sorry for the noise if it's already fixed.
Thanks
Martin