Mercurial > dovecot > original-hg > dovecot-1.2
changeset 8223:66ecd60b7ea2 HEAD
If a process dies because it's out of memory, mention *_process_size setting in the error message.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 05 Oct 2008 00:06:56 +0300 |
parents | 1155c1f7fed8 |
children | 7ac86b33ad64 |
files | src/master/child-process.c |
diffstat | 1 files changed, 19 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/master/child-process.c Wed Oct 01 16:07:57 2008 +0300 +++ b/src/master/child-process.c Sun Oct 05 00:06:56 2008 +0300 @@ -89,7 +89,8 @@ execv(executable, (char **)argv); } -static const char *get_exit_status_message(enum fatal_exit_status status) +static const char *get_exit_status_message(enum fatal_exit_status status, + enum process_type process_type) { switch (status) { case FATAL_LOGOPEN: @@ -99,6 +100,21 @@ case FATAL_LOGERROR: return "Internal logging error"; case FATAL_OUTOFMEM: + switch (process_type) { + case PROCESS_TYPE_AUTH: + case PROCESS_TYPE_AUTH_WORKER: + return "Out of memory - see auth_process_size setting"; + case PROCESS_TYPE_LOGIN: + return "Out of memory - see login_process_size setting"; + case PROCESS_TYPE_IMAP: + case PROCESS_TYPE_POP3: + return "Out of memory - see mail_process_size setting"; + case PROCESS_TYPE_UNKNOWN: + case PROCESS_TYPE_SSL_PARAM: + case PROCESS_TYPE_DICT: + case PROCESS_TYPE_MAX: + break; + } return "Out of memory"; case FATAL_EXEC: return "exec() failed"; @@ -148,7 +164,8 @@ process->seen_fatal) { /* the error was already logged. */ } else { - msg = get_exit_status_message(status); + msg = get_exit_status_message(status, + process_type); msg = msg == NULL ? "" : t_strconcat(" (", msg, ")", NULL); i_error("child %s (%s) returned error %d%s",