summaryrefslogtreecommitdiff
path: root/daemons/lvmpolld
diff options
context:
space:
mode:
authorOndrej Kozina <okozina@redhat.com>2015-09-02 16:50:14 +0200
committerOndrej Kozina <okozina@redhat.com>2015-09-02 17:24:26 +0200
commit7bbc128c3dd6e75524a4447c29ed7be2ace8e3b3 (patch)
treed2bb11358894732eb1410762f37346e5cb28d066 /daemons/lvmpolld
parentcb57f4f89b908ad3d7149ce18204b71448c9d259 (diff)
downloadlvm2-7bbc128c3dd6e75524a4447c29ed7be2ace8e3b3.tar.gz
lvmpolld: make lvpoll error messages visible
Previously all stderr messages issued by spawned lvpoll command were reported as INFO only. This made all such messages invisible in syslog or lvmpolld log while running default configuration. All lvpoll stderr messages are loged with WARN priority now and lvpoll command exiting with retcode != 0 is logged with ERROR priority in syslog and lvmpolld log
Diffstat (limited to 'daemons/lvmpolld')
-rw-r--r--daemons/lvmpolld/lvmpolld-core.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/daemons/lvmpolld/lvmpolld-core.c b/daemons/lvmpolld/lvmpolld-core.c
index 7d2a98b23..68072d9f0 100644
--- a/daemons/lvmpolld/lvmpolld-core.c
+++ b/daemons/lvmpolld/lvmpolld-core.c
@@ -83,6 +83,12 @@ static int _init(struct daemon_state *s)
struct lvmpolld_state *ls = s->private;
ls->log = s->log;
+ /*
+ * log warnings to stderr by default. Otherwise we would miss any lvpoll
+ * error messages in default configuration
+ */
+ daemon_log_enable(ls->log, DAEMON_LOG_OUTLET_STDERR, DAEMON_LOG_WARN, 1);
+
if (!daemon_log_parse(ls->log, DAEMON_LOG_OUTLET_STDERR, ls->log_config, 1))
return 0;
@@ -284,7 +290,7 @@ static int poll_for_output(struct lvmpolld_lv *pdlv, struct lvmpolld_thread_data
"caught input data in STDERR");
assert(read_single_line(data, 1)); /* may block indef. anyway */
- INFO(pdlv->ls, "%s: PID %d: %s: '%s'", LVM2_LOG_PREFIX,
+ WARN(pdlv->ls, "%s: PID %d: %s: '%s'", LVM2_LOG_PREFIX,
pdlv->cmd_pid, "STDERR", data->line);
} else if (fds[1].revents) {
if (fds[1].revents & POLLHUP)
@@ -327,15 +333,19 @@ static int poll_for_output(struct lvmpolld_lv *pdlv, struct lvmpolld_thread_data
if (fds[1].fd >= 0)
while (read_single_line(data, 1)) {
assert(r > 0);
- INFO(pdlv->ls, "%s: PID %d: %s: %s", LVM2_LOG_PREFIX, pdlv->cmd_pid, "STDERR", data->line);
+ WARN(pdlv->ls, "%s: PID %d: %s: %s", LVM2_LOG_PREFIX, pdlv->cmd_pid, "STDERR", data->line);
}
if (WIFEXITED(ch_stat)) {
- INFO(pdlv->ls, "%s: %s (PID %d) %s (%d)", PD_LOG_PREFIX,
- "lvm2 cmd", pdlv->cmd_pid, "exited with", WEXITSTATUS(ch_stat));
cmd_state.retcode = WEXITSTATUS(ch_stat);
+ if (cmd_state.retcode)
+ ERROR(pdlv->ls, "%s: %s (PID %d) %s (retcode: %d)", PD_LOG_PREFIX,
+ "lvm2 cmd", pdlv->cmd_pid, "failed", cmd_state.retcode);
+ else
+ INFO(pdlv->ls, "%s: %s (PID %d) %s", PD_LOG_PREFIX,
+ "lvm2 cmd", pdlv->cmd_pid, "finished successfully");
} else if (WIFSIGNALED(ch_stat)) {
- WARN(pdlv->ls, "%s: %s (PID %d) %s (%d)", PD_LOG_PREFIX,
+ ERROR(pdlv->ls, "%s: %s (PID %d) %s (%d)", PD_LOG_PREFIX,
"lvm2 cmd", pdlv->cmd_pid, "got terminated by signal",
WTERMSIG(ch_stat));
cmd_state.signal = WTERMSIG(ch_stat);