This is the mail archive of the
cluster-cvs@sourceware.org
mailing list for the cluster.
Cluster Project branch, master, updated. gfs-kernel_0_1_22-184-gf448484
- From: lhh at sourceware dot org
- To: cluster-cvs at sources dot redhat dot com, cluster-devel at redhat dot com
- Date: 18 Apr 2008 18:19:26 -0000
- Subject: Cluster Project branch, master, updated. gfs-kernel_0_1_22-184-gf448484
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Cluster Project".
http://sources.redhat.com/git/gitweb.cgi?p=cluster.git;a=commitdiff;h=f44848458ce9ec9c32d3854c575368812318da63
The branch, master has been updated
via f44848458ce9ec9c32d3854c575368812318da63 (commit)
from 2627512a870e654665b0d973a2171fbafbcbbf0d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f44848458ce9ec9c32d3854c575368812318da63
Author: Lon Hohberger <lhh@redhat.com>
Date: Fri Apr 18 14:19:07 2008 -0400
[fence] Close file descriptors that are in invalid/error states
If poll was returning with a file descriptor noted as active,
but with the POLLERR/POLLNVAL flags set (but not POLLIN or
POLLHUP), fenced and groupd would enter a tight spin loop.
This fixes that condition.
-----------------------------------------------------------------------
Summary of changes:
fence/fenced/main.c | 2 +-
group/daemon/main.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/fence/fenced/main.c b/fence/fenced/main.c
index 8f7960c..e9ebfb8 100644
--- a/fence/fenced/main.c
+++ b/fence/fenced/main.c
@@ -494,7 +494,7 @@ static int loop(void)
for (i = 1; i <= maxi; i++) {
if (client[i].fd < 0)
continue;
- if (pollfd[i].revents & POLLHUP) {
+ if (pollfd[i].revents & (POLLERR | POLLHUP | POLLNVAL)) {
if (pollfd[i].fd == member_fd) {
log_error("cluster is down, exiting");
exit(1);
diff --git a/group/daemon/main.c b/group/daemon/main.c
index 3274b79..af7d5bd 100644
--- a/group/daemon/main.c
+++ b/group/daemon/main.c
@@ -764,7 +764,7 @@ static int loop(void)
for (i = 0; i <= client_maxi; i++) {
if (client[i].fd < 0)
continue;
- if (pollfd[i].revents & POLLHUP) {
+ if (pollfd[i].revents & (POLLERR | POLLHUP | POLLNVAL)) {
deadfn = client[i].deadfn;
deadfn(i);
} else if (pollfd[i].revents & POLLIN) {
hooks/post-receive
--
Cluster Project