* [Cluster-devel] cluster/group/daemon main.c
@ 2006-06-14 21:38 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-06-14 21:38 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-06-14 21:38:14
Modified files:
group/daemon : main.c
Log message:
for group_tool query, fill in members list from app perspective,
not cpg perspective
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&r1=1.32&r2=1.33
--- cluster/group/daemon/main.c 2006/05/15 19:59:06 1.32
+++ cluster/group/daemon/main.c 2006/06/14 21:38:14 1.33
@@ -334,7 +334,7 @@
}
}
- list_for_each_entry(node, &g->memb, list) {
+ list_for_each_entry(node, &g->app->nodes, list) {
data->members[i] = node->nodeid;
i++;
}
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-06-20 20:27 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-06-20 20:27 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-06-20 20:27:40
Modified files:
group/daemon : main.c
Log message:
openlog("groupd", LOG_PID, LOG_DAEMON) for syslog entries
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&r1=1.35&r2=1.36
--- cluster/group/daemon/main.c 2006/06/20 20:26:08 1.35
+++ cluster/group/daemon/main.c 2006/06/20 20:27:40 1.36
@@ -765,6 +765,7 @@
close(0);
close(1);
close(2);
+ openlog("groupd", LOG_PID, LOG_DAEMON);
lockfile();
}
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-06-22 19:06 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-06-22 19:06 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-06-22 19:06:07
Modified files:
group/daemon : main.c
Log message:
now that we copy out app member list for viewing, set the
member count to that total instead of cpg member list total
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&r1=1.37&r2=1.38
--- cluster/group/daemon/main.c 2006/06/21 20:43:54 1.37
+++ cluster/group/daemon/main.c 2006/06/22 19:06:07 1.38
@@ -401,7 +401,6 @@
strncpy(data->name, g->name, MAX_GROUP_NAME_LEN);
data->level = g->level;
data->id = g->global_id;
- data->member_count = g->memb_count;
if (g->app && g->app->current_event) {
event_t *ev = g->app->current_event;
@@ -421,6 +420,7 @@
}
}
+ data->member_count = g->app->node_count;
list_for_each_entry(node, &g->app->nodes, list) {
data->members[i] = node->nodeid;
i++;
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-07-13 18:21 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-07-13 18:21 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-07-13 18:21:36
Modified files:
group/daemon : main.c
Log message:
fix dump len so we don't complain
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&r1=1.38&r2=1.39
--- cluster/group/daemon/main.c 2006/06/22 19:06:07 1.38
+++ cluster/group/daemon/main.c 2006/07/13 18:21:35 1.39
@@ -488,15 +488,15 @@
static int do_dump(int ci, int argc, char **argv)
{
- int rv, len = DUMP_SIZE;
+ int rv, len;
if (dump_wrap) {
len = DUMP_SIZE - dump_point;
rv = write(client[ci].fd, dump_buf + dump_point, len);
if (rv != len)
log_print("write error %d errno %d", rv, errno);
- len = dump_point;
}
+ len = dump_point;
rv = write(client[ci].fd, dump_buf, len);
if (rv != len)
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-09-14 20:49 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-09-14 20:49 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-09-14 20:49:38
Modified files:
group/daemon : main.c
Log message:
handle short/interrupted writes/reads
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&r1=1.42&r2=1.43
--- cluster/group/daemon/main.c 2006/09/12 21:57:05 1.42
+++ cluster/group/daemon/main.c 2006/09/14 20:49:38 1.43
@@ -38,6 +38,42 @@
void *deadfn;
};
+static int do_write(int fd, void *buf, size_t count)
+{
+ int rv, off = 0;
+
+ retry:
+ rv = write(fd, buf + off, count);
+ if (rv == -1 && errno == EINTR)
+ goto retry;
+ if (rv < 0) {
+ log_print("write fd %d errno %d", fd, errno);
+ return rv;
+ }
+
+ if (rv != count) {
+ count -= rv;
+ off += rv;
+ goto retry;
+ }
+ return 0;
+}
+
+static int do_read(int fd, void *buf, size_t count)
+{
+ int rv, off = 0;
+
+ while (off < count) {
+ rv = read(fd, buf + off, count - off);
+ if (rv == 0)
+ return -1;
+ if (rv == -1 && errno == EINTR)
+ continue;
+ off += rv;
+ }
+ return 0;
+}
+
/* Look for any instances of gfs or dlm in the kernel, if we find any, it
means they're uncontrolled by us (via gfs_controld/dlm_controld/groupd).
We need to be rebooted to clear out this uncontrolled kernel state. Most
@@ -130,9 +166,9 @@
log_group(a->g, "action for app: %s", buf);
- rv = write(client[a->client].fd, buf, GROUPD_MSGLEN);
- if (rv != GROUPD_MSGLEN)
- log_print("write error %d errno %d", rv, errno);
+ rv = do_write(client[a->client].fd, buf, GROUPD_MSGLEN);
+ if (rv < 0)
+ log_error(a->g, "app_action write error");
}
void app_deliver(app_t *a, struct save_msg *save)
@@ -154,9 +190,9 @@
save->msg_long + sizeof(msg_t));
*/
- rv = write(client[a->client].fd, buf, GROUPD_MSGLEN);
- if (rv != GROUPD_MSGLEN)
- log_print("write error %d errno %d", rv, errno);
+ rv = do_write(client[a->client].fd, buf, GROUPD_MSGLEN);
+ if (rv < 0)
+ log_error(a->g, "app_deliver write error");
}
void app_terminate(app_t *a)
@@ -325,7 +361,7 @@
if (!strncmp(act, "dump", 16))
return DO_DUMP;
- return -1;
+ return -1;
}
static void client_alloc(void)
@@ -459,9 +495,9 @@
i++;
}
- rv = write(client[ci].fd, data, len);
- if (rv != len)
- log_print("write error %d errno %d", rv, errno);
+ rv = do_write(client[ci].fd, data, len);
+ if (rv < 0)
+ log_print("do_get_groups write error");
free(data);
return 0;
@@ -487,9 +523,9 @@
copy_group_data(g, &data);
out:
- rv = write(client[ci].fd, &data, sizeof(data));
- if (rv != sizeof(data))
- log_print("write error %d errno %d", rv, errno);
+ rv = do_write(client[ci].fd, &data, sizeof(data));
+ if (rv < 0)
+ log_print("do_get_group write error");
return 0;
}
@@ -548,14 +584,11 @@
memset(buf, 0, sizeof(buf));
memset(argv, 0, sizeof(char *) * MAXARGS);
- rv = read(client[ci].fd, buf, GROUPD_MSGLEN);
- if (!rv) {
- client_dead(ci);
- return;
- }
- if (rv != GROUPD_MSGLEN) {
+ rv = do_read(client[ci].fd, buf, GROUPD_MSGLEN);
+ if (rv < 0) {
log_print("client %d fd %d read error %d %d", ci,
client[ci].fd, rv, errno);
+ client_dead(ci);
return;
}
@@ -577,7 +610,7 @@
case DO_LEAVE:
get_args(buf, &argc, argv, ' ', 2);
- do_leave(argv[1], client[ci].level);
+ do_leave(argv[1], client[ci].level);
break;
case DO_STOP_DONE:
@@ -789,9 +822,9 @@
printf("\n");
printf("Options:\n");
printf("\n");
- printf(" -D Enable debugging code and don't fork\n");
- printf(" -h Print this help, then exit\n");
- printf(" -V Print program version information, then exit\n");
+ printf(" -D Enable debugging code and don't fork\n");
+ printf(" -h Print this help, then exit\n");
+ printf(" -V Print program version information, then exit\n");
}
static void decode_arguments(int argc, char **argv)
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-10-20 15:42 rpeterso
0 siblings, 0 replies; 19+ messages in thread
From: rpeterso @ 2006-10-20 15:42 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: rpeterso at sourceware.org 2006-10-20 15:42:44
Modified files:
group/daemon : main.c
Log message:
Fix for Bugzilla Bug 211405: If groupd segfaults, dump the most
recent log information.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&r1=1.48&r2=1.49
--- cluster/group/daemon/main.c 2006/10/06 16:55:19 1.48
+++ cluster/group/daemon/main.c 2006/10/20 15:42:44 1.49
@@ -10,10 +10,14 @@
*******************************************************************************
******************************************************************************/
+#include <signal.h>
+#include <time.h>
+
#include "gd_internal.h"
#define OPTION_STRING "DhVv"
#define LOCKFILE_NAME "/var/run/groupd.pid"
+#define LOG_FILE "/var/log/groupd.log"
extern struct list_head recovery_sets;
@@ -541,19 +545,19 @@
return 0;
}
-static int do_dump(int ci, int argc, char **argv)
+static int do_dump(int fd)
{
int rv, len;
if (dump_wrap) {
len = DUMP_SIZE - dump_point;
- rv = write(client[ci].fd, dump_buf + dump_point, len);
+ rv = write(fd, dump_buf + dump_point, len);
if (rv != len)
log_print("write error %d errno %d", rv, errno);
}
len = dump_point;
- rv = write(client[ci].fd, dump_buf, len);
+ rv = write(fd, dump_buf, len);
if (rv != len)
log_print("write error %d errno %d", rv, errno);
return 0;
@@ -650,7 +654,7 @@
break;
case DO_DUMP:
- do_dump(ci, argc, argv);
+ do_dump(client[ci].fd);
break;
default:
@@ -903,6 +907,30 @@
}
}
+void bail_with_log(int sig)
+{
+ int fd;
+ time_t now;
+
+ unlink(LOG_FILE);
+ fd = creat(LOG_FILE, S_IRUSR | S_IWUSR);
+ if (fd > 0) {
+ char now_ascii[32];
+
+ do_dump(fd);
+ memset(now_ascii, 0, sizeof(now_ascii));
+ time(&now);
+ sprintf(now_ascii, "%ld", now);
+ write(fd, now_ascii, strlen(now_ascii));
+ write(fd, " groupd segfault log follows:\n", 30);
+ close(fd);
+ }
+ else
+ perror(LOG_FILE);
+ if (sig == SIGSEGV)
+ exit(0);
+}
+
int main(int argc, char *argv[])
{
prog_name = argv[0];
@@ -915,6 +943,8 @@
decode_arguments(argc, argv);
+ signal(SIGSEGV, bail_with_log);
+ signal(SIGUSR1, bail_with_log);
if (!groupd_debug_opt)
daemonize();
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-10-24 17:08 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-10-24 17:08 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-10-24 17:08:06
Modified files:
group/daemon : main.c
Log message:
recent commit fixing bz 210344 removed the memset so we're
getting garbage back sometimes
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&r1=1.50&r2=1.51
--- cluster/group/daemon/main.c 2006/10/21 17:15:12 1.50
+++ cluster/group/daemon/main.c 2006/10/24 17:08:06 1.51
@@ -493,7 +493,9 @@
int rv, count = 0, max = atoi(argv[1]);
data = malloc(sizeof(group_data_t));
+ memset(data, 0, sizeof(group_data_t));
count = 0;
+
list_for_each_entry(g, &gd_groups, list) {
copy_group_data(g, data);
rv = do_write(client[ci].fd, data, sizeof(group_data_t));
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-11-15 14:35 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-11-15 14:35 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-11-15 14:35:05
Modified files:
group/daemon : main.c
Log message:
fix sched_priority from sdake
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&r1=1.52&r2=1.53
--- cluster/group/daemon/main.c 2006/11/09 15:47:29 1.52
+++ cluster/group/daemon/main.c 2006/11/15 14:35:05 1.53
@@ -136,6 +136,8 @@
char *argv[4];
int status, rv = 0;
+ /* FIXME: ignore gfs/gfs2 nolock fs's */
+
rv += kernel_instance_count("/sys/kernel/dlm");
rv += kernel_instance_count("/sys/fs/gfs");
rv += kernel_instance_count("/sys/fs/gfs2");
@@ -907,7 +909,7 @@
rv = sched_get_priority_max(SCHED_RR);
if (rv != -1) {
- sched_param.sched_priority = 2;
+ sched_param.sched_priority = rv;
rv = sched_setscheduler(0, SCHED_RR, &sched_param);
if (rv == -1)
log_print("could not set SCHED_RR priority %d err %d",
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-11-17 16:26 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-11-17 16:26 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-11-17 16:26:34
Modified files:
group/daemon : main.c
Log message:
if read() returns a non-EINTR error then shut down the client
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&r1=1.53&r2=1.54
--- cluster/group/daemon/main.c 2006/11/15 14:35:05 1.53
+++ cluster/group/daemon/main.c 2006/11/17 16:26:34 1.54
@@ -73,6 +73,8 @@
return -1;
if (rv == -1 && errno == EINTR)
continue;
+ if (rv == -1)
+ return -1;
off += rv;
}
return 0;
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-11-17 16:28 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-11-17 16:28 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: teigland at sourceware.org 2006-11-17 16:28:20
Modified files:
group/daemon : main.c
Log message:
if read() returns a non-EINTR error then consider the client dead
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.51.2.2&r2=1.51.2.3
--- cluster/group/daemon/main.c 2006/11/15 14:44:01 1.51.2.2
+++ cluster/group/daemon/main.c 2006/11/17 16:28:20 1.51.2.3
@@ -73,6 +73,8 @@
return -1;
if (rv == -1 && errno == EINTR)
continue;
+ if (rv == -1)
+ return -1;
off += rv;
}
return 0;
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-11-20 22:44 rpeterso
0 siblings, 0 replies; 19+ messages in thread
From: rpeterso @ 2006-11-20 22:44 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL50
Changes by: rpeterso at sourceware.org 2006-11-20 22:44:32
Modified files:
group/daemon : main.c
Log message:
if read() returns a non-EINTR error then consider the client dead
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&only_with_tag=RHEL50&r1=1.51.4.2&r2=1.51.4.3
--- cluster/group/daemon/main.c 2006/11/20 22:31:51 1.51.4.2
+++ cluster/group/daemon/main.c 2006/11/20 22:44:31 1.51.4.3
@@ -73,6 +73,8 @@
return -1;
if (rv == -1 && errno == EINTR)
continue;
+ if (rv == -1)
+ return -1;
off += rv;
}
return 0;
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-12-01 15:24 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-12-01 15:24 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-12-01 15:24:49
Modified files:
group/daemon : main.c
Log message:
group_tool dump doesn't handle partial reads/writes,
now we always dump entire fixed size debug buffer
bz 214540
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&r1=1.54&r2=1.55
--- cluster/group/daemon/main.c 2006/11/17 16:26:34 1.54
+++ cluster/group/daemon/main.c 2006/12/01 15:24:48 1.55
@@ -551,25 +551,24 @@
static int do_dump(int fd)
{
- int rv, len;
+ int rv, len = DUMP_SIZE;
if (dump_wrap) {
len = DUMP_SIZE - dump_point;
- rv = write(fd, dump_buf + dump_point, len);
- if (rv != len)
- log_print("write error %d errno %d", rv, errno);
- }
- len = dump_point;
-
- rv = write(fd, dump_buf, len);
- if (rv != len)
- log_print("write error %d errno %d", rv, errno);
+ rv = do_write(fd, dump_buf + dump_point, len);
+ if (rv < 0)
+ log_print("dump write error %d errno %d", rv, errno);
+ len = dump_point;
+ }
+
+ rv = do_write(fd, dump_buf, len);
+ if (rv < 0)
+ log_print("dump write error %d errno %d", rv, errno);
return 0;
}
static int do_log(int fd, const char *comment)
{
-
log_print("%s", comment);
return 0;
}
@@ -673,7 +672,7 @@
break;
default:
- log_print("unknown action %d client %d bytes %d", act, ci, rv);
+ log_print("unknown action %d client %d", act, ci);
log_print("invalid message: \"%s\"", buf);
}
}
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-12-01 15:25 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-12-01 15:25 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: teigland at sourceware.org 2006-12-01 15:25:19
Modified files:
group/daemon : main.c
Log message:
group_tool dump doesn't handle partial reads/writes,
now we always dump entire fixed size debug buffer
bz 214540
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.51.2.3&r2=1.51.2.4
--- cluster/group/daemon/main.c 2006/11/17 16:28:20 1.51.2.3
+++ cluster/group/daemon/main.c 2006/12/01 15:25:18 1.51.2.4
@@ -551,25 +551,24 @@
static int do_dump(int fd)
{
- int rv, len;
+ int rv, len = DUMP_SIZE;
if (dump_wrap) {
len = DUMP_SIZE - dump_point;
- rv = write(fd, dump_buf + dump_point, len);
- if (rv != len)
- log_print("write error %d errno %d", rv, errno);
- }
- len = dump_point;
-
- rv = write(fd, dump_buf, len);
- if (rv != len)
- log_print("write error %d errno %d", rv, errno);
+ rv = do_write(fd, dump_buf + dump_point, len);
+ if (rv < 0)
+ log_print("dump write error %d errno %d", rv, errno);
+ len = dump_point;
+ }
+
+ rv = do_write(fd, dump_buf, len);
+ if (rv < 0)
+ log_print("dump write error %d errno %d", rv, errno);
return 0;
}
static int do_log(int fd, const char *comment)
{
-
log_print("%s", comment);
return 0;
}
@@ -673,7 +672,7 @@
break;
default:
- log_print("unknown action %d client %d bytes %d", act, ci, rv);
+ log_print("unknown action %d client %d", act, ci);
log_print("invalid message: \"%s\"", buf);
}
}
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-12-01 15:25 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-12-01 15:25 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL50
Changes by: teigland at sourceware.org 2006-12-01 15:25:30
Modified files:
group/daemon : main.c
Log message:
group_tool dump doesn't handle partial reads/writes,
now we always dump entire fixed size debug buffer
bz 214540
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&only_with_tag=RHEL50&r1=1.51.4.3&r2=1.51.4.4
--- cluster/group/daemon/main.c 2006/11/20 22:44:31 1.51.4.3
+++ cluster/group/daemon/main.c 2006/12/01 15:25:30 1.51.4.4
@@ -551,25 +551,24 @@
static int do_dump(int fd)
{
- int rv, len;
+ int rv, len = DUMP_SIZE;
if (dump_wrap) {
len = DUMP_SIZE - dump_point;
- rv = write(fd, dump_buf + dump_point, len);
- if (rv != len)
- log_print("write error %d errno %d", rv, errno);
- }
- len = dump_point;
-
- rv = write(fd, dump_buf, len);
- if (rv != len)
- log_print("write error %d errno %d", rv, errno);
+ rv = do_write(fd, dump_buf + dump_point, len);
+ if (rv < 0)
+ log_print("dump write error %d errno %d", rv, errno);
+ len = dump_point;
+ }
+
+ rv = do_write(fd, dump_buf, len);
+ if (rv < 0)
+ log_print("dump write error %d errno %d", rv, errno);
return 0;
}
static int do_log(int fd, const char *comment)
{
-
log_print("%s", comment);
return 0;
}
@@ -673,7 +672,7 @@
break;
default:
- log_print("unknown action %d client %d bytes %d", act, ci, rv);
+ log_print("unknown action %d client %d", act, ci);
log_print("invalid message: \"%s\"", buf);
}
}
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-12-13 19:04 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-12-13 19:04 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-12-13 19:04:53
Modified files:
group/daemon : main.c
Log message:
groupd's function that returns info for group status queries was
mistakenly setting the "member" status to 0 when a node was leaving.
This led fence_tool to believe that the local node was no longer
a member (i.e. had finished leaving) when in fact the leave wasn't
complete yet.
bz 219385
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&r1=1.55&r2=1.56
--- cluster/group/daemon/main.c 2006/12/01 15:24:48 1.55
+++ cluster/group/daemon/main.c 2006/12/13 19:04:53 1.56
@@ -489,7 +489,8 @@
/* we're in the member list but are still joining */
if (data->member) {
ev = g->app->current_event;
- if (ev && is_our_join(ev))
+ if (ev && is_our_join(ev) &&
+ (ev->state <= EST_JOIN_ALL_STARTED))
data->member = 0;
}
}
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-12-13 19:05 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-12-13 19:05 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: teigland at sourceware.org 2006-12-13 19:05:46
Modified files:
group/daemon : main.c
Log message:
groupd's function that returns info for group status queries was
mistakenly setting the "member" status to 0 when a node was leaving.
This led fence_tool to believe that the local node was no longer
a member (i.e. had finished leaving) when in fact the leave wasn't
complete yet.
bz 219385
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.51.2.4&r2=1.51.2.5
--- cluster/group/daemon/main.c 2006/12/01 15:25:18 1.51.2.4
+++ cluster/group/daemon/main.c 2006/12/13 19:05:46 1.51.2.5
@@ -489,7 +489,8 @@
/* we're in the member list but are still joining */
if (data->member) {
ev = g->app->current_event;
- if (ev && is_our_join(ev))
+ if (ev && is_our_join(ev) &&
+ (ev->state <= EST_JOIN_ALL_STARTED))
data->member = 0;
}
}
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2006-12-13 19:05 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2006-12-13 19:05 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL50
Changes by: teigland at sourceware.org 2006-12-13 19:05:52
Modified files:
group/daemon : main.c
Log message:
groupd's function that returns info for group status queries was
mistakenly setting the "member" status to 0 when a node was leaving.
This led fence_tool to believe that the local node was no longer
a member (i.e. had finished leaving) when in fact the leave wasn't
complete yet.
bz 219385
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&only_with_tag=RHEL50&r1=1.51.4.4&r2=1.51.4.5
--- cluster/group/daemon/main.c 2006/12/01 15:25:30 1.51.4.4
+++ cluster/group/daemon/main.c 2006/12/13 19:05:52 1.51.4.5
@@ -489,7 +489,8 @@
/* we're in the member list but are still joining */
if (data->member) {
ev = g->app->current_event;
- if (ev && is_our_join(ev))
+ if (ev && is_our_join(ev) &&
+ (ev->state <= EST_JOIN_ALL_STARTED))
data->member = 0;
}
}
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2007-01-11 17:59 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2007-01-11 17:59 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2007-01-11 17:59:00
Modified files:
group/daemon : main.c
Log message:
Move memset(0) into the for loop so we're clearing the data buffer
each time through. We were seeing some bogus data from group_tool -v.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&r1=1.56&r2=1.57
--- cluster/group/daemon/main.c 2006/12/13 19:04:53 1.56
+++ cluster/group/daemon/main.c 2007/01/11 17:59:00 1.57
@@ -502,10 +502,10 @@
int rv, count = 0, max = atoi(argv[1]);
data = malloc(sizeof(group_data_t));
- memset(data, 0, sizeof(group_data_t));
count = 0;
list_for_each_entry(g, &gd_groups, list) {
+ memset(data, 0, sizeof(group_data_t));
copy_group_data(g, data);
rv = do_write(client[ci].fd, data, sizeof(group_data_t));
if (rv < 0) {
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Cluster-devel] cluster/group/daemon main.c
@ 2007-01-11 17:59 teigland
0 siblings, 0 replies; 19+ messages in thread
From: teigland @ 2007-01-11 17:59 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: teigland at sourceware.org 2007-01-11 17:59:25
Modified files:
group/daemon : main.c
Log message:
Move memset(0) into the for loop so we're clearing the data buffer
each time through. We were seeing some bogus data from group_tool -v.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.51.2.5&r2=1.51.2.6
--- cluster/group/daemon/main.c 2006/12/13 19:05:46 1.51.2.5
+++ cluster/group/daemon/main.c 2007/01/11 17:59:25 1.51.2.6
@@ -502,10 +502,10 @@
int rv, count = 0, max = atoi(argv[1]);
data = malloc(sizeof(group_data_t));
- memset(data, 0, sizeof(group_data_t));
count = 0;
list_for_each_entry(g, &gd_groups, list) {
+ memset(data, 0, sizeof(group_data_t));
copy_group_data(g, data);
rv = do_write(client[ci].fd, data, sizeof(group_data_t));
if (rv < 0) {
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2007-01-11 17:59 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-14 21:38 [Cluster-devel] cluster/group/daemon main.c teigland
-- strict thread matches above, loose matches on Subject: below --
2006-06-20 20:27 teigland
2006-06-22 19:06 teigland
2006-07-13 18:21 teigland
2006-09-14 20:49 teigland
2006-10-20 15:42 rpeterso
2006-10-24 17:08 teigland
2006-11-15 14:35 teigland
2006-11-17 16:26 teigland
2006-11-17 16:28 teigland
2006-11-20 22:44 rpeterso
2006-12-01 15:24 teigland
2006-12-01 15:25 teigland
2006-12-01 15:25 teigland
2006-12-13 19:04 teigland
2006-12-13 19:05 teigland
2006-12-13 19:05 teigland
2007-01-11 17:59 teigland
2007-01-11 17:59 teigland
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).