From: Timo Sirainen Date: Wed, 18 Nov 2015 19:06:17 +0000 (+0200) Subject: indexer-worker: Use provided session-id only as a prefix for a unique session ID. X-Git-Tag: 2.2.20.rc1~54 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3e3cc37a780546844d1a3b17e2375534f36aa5f6;p=thirdparty%2Fdovecot%2Fcore.git indexer-worker: Use provided session-id only as a prefix for a unique session ID. Fixes stats process's "Duplicate session ID" errors when LMTP delivers to multiple recipients. --- diff --git a/src/indexer/master-connection.c b/src/indexer/master-connection.c index cab5f4add2..08de9e4495 100644 --- a/src/indexer/master-connection.c +++ b/src/indexer/master-connection.c @@ -212,11 +212,12 @@ master_connection_input_line(struct master_connection *conn, const char *line) input.module = "mail"; input.service = "indexer-worker"; input.username = args[0]; - /* if session-id is given, add -idx suffix to it so that stats process - doesn't complain about duplicates. also it's nicer to keep the stats - separate for the indexer and the caller. */ - input.session_id = args[2][0] == '\0' ? NULL : - t_strconcat(args[2], "-idx", NULL); + /* if session-id is given, use it as a prefix to a unique session ID. + we can't use the session-id directly or stats process will complain + about duplicates. (especially LMTP would use the same session-id for + multiple users' indexing at the same time.) */ + if (args[2][0] != '\0') + input.session_id_prefix = args[2]; if (mail_storage_service_lookup_next(conn->storage_service, &input, &service_user, &user, &error) <= 0) {