Hi, On AIX 5.3 (20CPU/96GB), the cost of process restart is very expensive. These patches improve performance by avoiding unnecessary exit() call.
avoid_shut_down_if_no_input.patch: Everytime our Alteon opens a socket for the health check, it kills a process. Just because it don't send any data. The problem can be easily reproduce with a telnet connection. cyrus-imapd-2.3.16-ignore_ECONNABORTED.patch: If the connection is closed by the client, the process gets an ECONNABORTED error (Connection aborted POSIX.1). This new patch catches this error. Best regards, -- Gonéri Le Bouder
--- cyrus-imapd-2.3.16.orig/imap/pop3d.c 2009-12-17 16:32:32.000000000 +0100 +++ cyrus-imapd-2.3.16/imap/pop3d.c 2010-03-12 16:51:06.000000000 +0100 @@ -799,7 +799,7 @@ static void cmdloop(void) } if (!prot_fgets(inputbuf, sizeof(inputbuf), popd_in)) { - shut_down(0); + return; } if (popd_mailbox &&
#! /bin/sh /usr/share/dpatch/dpatch-run ## 99-update-autoconf.dpatch by Ondrej Sury <ond...@debian.org> ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: Update configure and config.h.in according to changes in other patches @DPATCH@ diff --exclude .svn --exclude .git --exclude .bzr -urpN cyrus-imapd-2.3.16.orig/master/service.c cyrus-imapd-2.3.16/master/service.c --- cyrus-imapd-2.3.16.orig/master/service.c 2008-03-24 18:47:41.000000000 +0100 +++ cyrus-imapd-2.3.16/master/service.c 2010-02-18 16:02:30.000000000 +0100 @@ -450,6 +450,7 @@ int main(int argc, char **argv, char **e case ENETUNREACH: case EAGAIN: case EINTR: + case ECONNABORTED: break; case EINVAL: