From: "Robin H. Johnson" <robbat2@gentoo.org>
Date: Wed, 17 Apr 2019 06:54:27 +0000
Subject: [PATCH] dmeventd configurable idle exit time

dmeventd nominally exits after 1 hour of idle time. There are use cases for
this, esp. with socket activation, but also cases where users don't expect
dmeventd to exit.

Provide a tuning knob via environment variable, DMEVENTD_IDLE_EXIT_TIMEOUT,
that can be -1 to not exit, or a configurable time for different idle exit.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Fixes: https://bugs.gentoo.org/682556

diff -Nuar LVM2.2.02.184.orig/daemons/dmeventd/dmeventd.c LVM2.2.02.184/daemons/dmeventd/dmeventd.c
--- LVM2.2.02.184.orig/daemons/dmeventd/dmeventd.c	2019-03-22 03:14:59.000000000 -0700
+++ LVM2.2.02.184/daemons/dmeventd/dmeventd.c	2019-04-17 00:18:23.535029906 -0700
@@ -2158,6 +2158,18 @@
 		.server_path = DM_EVENT_FIFO_SERVER
 	};
 	time_t now, idle_exit_timeout = DMEVENTD_IDLE_EXIT_TIMEOUT;
+
+	/* Provide a basic way to config the idle timeout */
+	char* idle_exit_timeout_env = getenv("DMEVENTD_IDLE_EXIT_TIMEOUT") ? : NULL;
+	if(NULL != idle_exit_timeout_env) {
+		char* endptr;
+		idle_exit_timeout = strtol(idle_exit_timeout_env, &endptr, 10);
+		if (errno == ERANGE || *endptr != '\0') {
+			fprintf(stderr, "DMEVENTD_IDLE_EXIT_TIMEOUT: bad time input\n");
+			exit(EXIT_FAILURE);
+		}
+	}
+
 	opterr = 0;
 	optind = 0;
 
@@ -2253,7 +2265,7 @@
 		_process_initial_registrations();
 
 	for (;;) {
-		if (_idle_since) {
+		if (_idle_since || _exit_now) {
 			if (_exit_now) {
 				if (_exit_now == DM_SCHEDULED_EXIT)
 					break; /* Only prints shutdown message */
@@ -2262,7 +2274,7 @@
 					 (long) (time(NULL) - _idle_since));
 				break;
 			}
-			if (idle_exit_timeout) {
+			if (idle_exit_timeout && idle_exit_timeout > 0) {
 				now = time(NULL);
 				if (now < _idle_since)
 					_idle_since = now; /* clock change? */
diff -Nuar LVM2.2.02.184.orig/man/dmeventd.8_main LVM2.2.02.184/man/dmeventd.8_main
--- LVM2.2.02.184.orig/man/dmeventd.8_main	2019-03-22 03:15:00.000000000 -0700
+++ LVM2.2.02.184/man/dmeventd.8_main	2019-04-17 00:17:46.076023638 -0700
@@ -143,6 +143,10 @@
 Variable is set by thin plugin to prohibit recursive interation
 with dmeventd by any executed lvm2 command from
 a thin_command environment.
+.TP
+.B DMEVENTD_IDLE_EXIT_TIMEOUT
+Configure the dmeventd idle exit timeout behavior, value in seconds. Default
+is 3600 (1 hour). -1 means do not exit.
 .
 .SH SEE ALSO
 .
