dovecot-2.2: log: Don't shutdown until all log writers have gone.
dovecot at dovecot.org
dovecot at dovecot.org
Sun May 20 03:26:24 EEST 2012
details: http://hg.dovecot.org/dovecot-2.2/rev/174a22a052fe
changeset: 14273:174a22a052fe
user: Timo Sirainen <tss at iki.fi>
date: Sun Mar 04 12:24:29 2012 +0200
description:
log: Don't shutdown until all log writers have gone.
This fixed losing log messages during shutdown.
diffstat:
src/log/log-connection.c | 2 ++
src/log/main.c | 8 ++++++--
2 files changed, 8 insertions(+), 2 deletions(-)
diffs (31 lines):
diff -r f7a3714dc390 -r 174a22a052fe src/log/log-connection.c
--- a/src/log/log-connection.c Sun Mar 04 12:09:35 2012 +0200
+++ b/src/log/log-connection.c Sun Mar 04 12:24:29 2012 +0200
@@ -341,6 +341,8 @@
i_error("close(log connection fd) failed: %m");
i_free(log->default_prefix);
i_free(log);
+
+ master_service_client_connection_destroyed(master_service);
}
void log_connections_init(void)
diff -r f7a3714dc390 -r 174a22a052fe src/log/main.c
--- a/src/log/main.c Sun Mar 04 12:09:35 2012 +0200
+++ b/src/log/main.c Sun Mar 04 12:24:29 2012 +0200
@@ -37,9 +37,13 @@
static void client_connected(struct master_service_connection *conn)
{
- if (conn->fifo)
+ if (conn->fifo) {
log_connection_create(errorbuf, conn->fd, conn->listen_fd);
- else if (strcmp(conn->name, "log-errors") == 0)
+ /* kludge: normally FIFOs aren't counted as connections,
+ but here we want log process to stay open until all writers
+ have closed */
+ conn->fifo = FALSE;
+ } else if (strcmp(conn->name, "log-errors") == 0)
doveadm_connection_create(errorbuf, conn->fd);
else {
i_error("Unknown listener name: %s", conn->name);
More information about the dovecot-cvs
mailing list