1
Description: Ignore missing dmeventd
2
Author: Bastian Blank <waldi@debian.org>
4
--- a/daemons/dmeventd/libdevmapper-event.c
5
+++ b/daemons/dmeventd/libdevmapper-event.c
7
/* server is not running */
9
if (!strncmp(DMEVENTD_PATH, "/", 1) && stat(DMEVENTD_PATH, &statbuf)) {
10
- log_sys_error("stat", DMEVENTD_PATH);
11
+ if (errno != ENOENT)
12
+ log_error("Unable to find " DMEVENTD_PATH ": %s", strerror(errno));
14
+ log_sys_debug("stat", DMEVENTD_PATH);
20
if ((err = _do_event(DM_EVENT_CMD_REGISTER_FOR_EVENT, dmevh->dmeventd_path, &msg,
21
dmevh->dso, uuid, dmevh->mask, dmevh->timeout)) < 0) {
22
- log_error("%s: event registration failed: %s",
23
- dm_task_get_name(dmt),
24
- msg.data ? msg.data : strerror(-err));
26
+ if (err != -ESRCH) {
27
+ log_error("%s: event registration failed: %s",
28
+ dm_task_get_name(dmt),
29
+ msg.data ? msg.data : strerror(-err));
33
+ /* XXX: Ignore missing daemon */
34
+ log_debug("%s: event registration failed, ignored: %s",
35
+ dm_task_get_name(dmt),
36
+ msg.data ? msg.data : strerror(-err));
42
--- a/lib/activate/activate.c
43
+++ b/lib/activate/activate.c
44
@@ -1197,10 +1197,12 @@
49
+ log_info("No monitoring daemon available for %s", uuid);
51
+ log_info("%s %s for events", set ? "Monitored" : "Unmonitored", uuid);
53
- log_info("%s %s for events", set ? "Monitored" : "Unmonitored", uuid);
63
int i, pending = 0, monitored;
66
struct dm_list *tmp, *snh, *snht;
67
struct lv_segment *seg;
68
struct lv_segment *log_seg;
69
@@ -1319,25 +1321,30 @@
72
/* FIXME specify events */
73
- if (!monitor_fn(seg, 0)) {
74
+ err = monitor_fn(seg, 0);
76
log_error("%s/%s: %s segment monitoring function failed.",
77
lv->vg->name, lv->name, seg->segtype->name);
81
- /* Check [un]monitor results */
82
- /* Try a couple times if pending, but not forever... */
83
- for (i = 0; i < 10; i++) {
85
- monitored = seg->segtype->ops->target_monitored(seg, &pending);
87
- (!monitored && monitor) ||
88
- (monitored && !monitor))
89
- log_very_verbose("%s/%s %smonitoring still pending: waiting...",
90
- lv->vg->name, lv->name, monitor ? "" : "un");
94
+ /* XXX: Ignore monitoring events if no daemon is available. */
96
+ monitored = monitor = 0;
98
+ /* Check [un]monitor results */
99
+ /* Try a couple times if pending, but not forever... */
100
+ for (i = 0; i < 10; i++) {
102
+ monitored = seg->segtype->ops->target_monitored(seg, &pending);
104
+ (!monitored && monitor) ||
105
+ (monitored && !monitor))
106
+ log_very_verbose("%s/%s %smonitoring still pending: waiting...",
107
+ lv->vg->name, lv->name, monitor ? "" : "un");