summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2012-02-28 11:03:24 +0000
committerZdenek Kabelac <zkabelac@redhat.com>2012-02-28 11:03:24 +0000
commitc19d86338d6a88a3e91b42a8acca2ee9ff5a1543 (patch)
treec99d1cb6443576a9a4cd43ffe7da9260a2f5a44a
parente5d399f66716d2ba2f2b360d694db869a7c38906 (diff)
downloadlvm2-c19d86338d6a88a3e91b42a8acca2ee9ff5a1543.tar.gz
lvm2-c19d86338d6a88a3e91b42a8acca2ee9ff5a1543.tar.xz
lvm2-c19d86338d6a88a3e91b42a8acca2ee9ff5a1543.zip
Better detection of missing dmeventd fifo connection
-rw-r--r--WHATS_NEW2
-rw-r--r--daemons/dmeventd/libdevmapper-event.c8
2 files changed, 4 insertions, 6 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index 24c17fa4..33ca6020 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,7 @@
Version 2.02.94 -
====================================
+ Better detection of missing dmeventd fifo connection (2.02.93).
+ Add some close() and dev_close() error path backtraces.
For polling daemon reopen stdin,stdout,stderr to /dev/null.
Limit the max size of processed clvmd message to ~8KB.
Do not send uninitilised bytes in cluster error reply messages.
diff --git a/daemons/dmeventd/libdevmapper-event.c b/daemons/dmeventd/libdevmapper-event.c
index 39324b1f..4237efb8 100644
--- a/daemons/dmeventd/libdevmapper-event.c
+++ b/daemons/dmeventd/libdevmapper-event.c
@@ -232,7 +232,6 @@ static int _daemon_read(struct dm_event_fifos *fifos,
size_t size = 2 * sizeof(uint32_t); /* status + size */
uint32_t *header = alloca(size);
char *buf = (char *)header;
- struct stat fstatbuf;
while (bytes < size) {
for (i = 0, ret = 0; (i < 20) && (ret < 1); i++) {
@@ -246,11 +245,8 @@ static int _daemon_read(struct dm_event_fifos *fifos,
log_error("Unable to read from event server");
return 0;
}
- /* Check whether fifo is still alive */
- if ((ret == 0) &&
- fstat(fifos->server + 1, &fstatbuf) &&
- (errno == EBADF)) {
- log_error("Fifo fd is bad for event server.");
+ if ((ret == 0) && i && !bytes) {
+ log_error("No input from event server.");
return 0;
}
}