* [Cluster-devel] cluster/group/daemon cpg.c
@ 2006-06-22 22:24 teigland
0 siblings, 0 replies; 5+ messages in thread
From: teigland @ 2006-06-22 22:24 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-06-22 22:24:49
Modified files:
group/daemon : cpg.c
Log message:
retry cpg_join and cpg_leave if error is TRY_AGAIN
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/cpg.c.diff?cvsroot=cluster&r1=1.27&r2=1.28
--- cluster/group/daemon/cpg.c 2006/06/22 18:39:26 1.27
+++ cluster/group/daemon/cpg.c 2006/06/22 22:24:48 1.28
@@ -454,7 +454,13 @@
log_group(g, "is cpg client %d name %s handle %llx", ci, name.value, h);
+ retry:
error = cpg_join(h, &name);
+ if (error == CPG_ERR_TRY_AGAIN) {
+ log_debug("cpg_join error retry");
+ sleep(1);
+ goto retry;
+ }
if (error != CPG_OK) {
log_group(g, "cpg_join error %d", error);
cpg_finalize(h);
@@ -474,11 +480,16 @@
sprintf(name.value, "%d_%s", g->level, g->name);
name.length = strlen(name.value) + 1;
+ retry:
error = cpg_leave(g->cpg_handle, &name);
+ if (error == CPG_ERR_TRY_AGAIN) {
+ log_debug("cpg_leave error retry");
+ sleep(1);
+ goto retry;
+ }
if (error != CPG_OK) {
log_group(g, "cpg_leave error %d", error);
-
- /* FIXME: what do do here? */
+ return error;
}
log_group(g, "cpg_leave ok");
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Cluster-devel] cluster/group/daemon cpg.c
@ 2006-07-07 15:13 teigland
0 siblings, 0 replies; 5+ messages in thread
From: teigland @ 2006-07-07 15:13 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-07-07 15:13:14
Modified files:
group/daemon : cpg.c
Log message:
complain and ignore a cpg confchg reason we don't understand
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/cpg.c.diff?cvsroot=cluster&r1=1.29&r2=1.30
--- cluster/group/daemon/cpg.c 2006/06/30 15:29:17 1.29
+++ cluster/group/daemon/cpg.c 2006/07/07 15:13:13 1.30
@@ -289,10 +289,19 @@
log_group(g, "confchg removed node %d reason %d",
saved_left[i].nodeid, saved_left[i].reason);
- if (saved_left[i].reason == CPG_REASON_LEAVE)
+ switch (saved_left[i].reason) {
+ case CPG_REASON_LEAVE:
process_node_leave(g, saved_left[i].nodeid);
- else
+ break;
+ case CPG_REASON_NODEDOWN:
+ case CPG_REASON_PROCDOWN:
process_node_down(g, saved_left[i].nodeid);
+ break;
+ default:
+ log_error(g, "unknown leave reason %d node %d",
+ saved_left[i].reason,
+ saved_joined[i].nodeid);
+ }
}
}
@@ -343,26 +352,14 @@
saved_name.length = group_name->length;
memcpy(&saved_name.value, &group_name->value, group_name->length);
- /* fprintf(stderr, "CONFCHG LEFT: "); */
- for (i = 0; i < left_list_entries; i++) {
+ for (i = 0; i < left_list_entries; i++)
saved_left[i] = left_list[i];
- /* fprintf(stderr, "%d ", left_list[i].nodeid); */
- }
- /* fprintf(stderr, "\n"); */
- /* fprintf(stderr, "CONFCHG JOIN: "); */
- for (i = 0; i < joined_list_entries; i++) {
+ for (i = 0; i < joined_list_entries; i++)
saved_joined[i] = joined_list[i];
- /* fprintf(stderr, "%d ", joined_list[i].nodeid); */
- }
- /* fprintf(stderr, "\n"); */
- /* fprintf(stderr, "CONFCHG MEMB: "); */
- for (i = 0; i < member_list_entries; i++) {
+ for (i = 0; i < member_list_entries; i++)
saved_member[i] = member_list[i];
- /* fprintf(stderr, "%d ", member_list[i].nodeid); */
- }
- /* fprintf(stderr, "\n"); */
got_confchg = 1;
}
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Cluster-devel] cluster/group/daemon cpg.c
@ 2006-09-08 23:14 teigland
0 siblings, 0 replies; 5+ messages in thread
From: teigland @ 2006-09-08 23:14 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-09-08 23:14:56
Modified files:
group/daemon : cpg.c
Log message:
use same retry delay on cpg sends as gfs_controld, usleep(1000)
between each retry
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/cpg.c.diff?cvsroot=cluster&r1=1.30&r2=1.31
--- cluster/group/daemon/cpg.c 2006/07/07 15:13:13 1.30
+++ cluster/group/daemon/cpg.c 2006/09/08 23:14:56 1.31
@@ -528,11 +528,15 @@
log_group(g, "cpg_mcast_joined error %d handle %llx", error, h);
if (error == CPG_ERR_TRY_AGAIN) {
retries++;
- if (retries > 3)
- sleep(1);
+ usleep(1000);
+ if (!(retries % 100))
+ log_error(g, "cpg_mcast_joined retry %d", retries);
goto retry;
}
+ if (retries)
+ log_group(g, "cpg_mcast_joined retried %d", retries);
+
return 0;
}
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Cluster-devel] cluster/group/daemon cpg.c
@ 2006-09-28 19:26 teigland
0 siblings, 0 replies; 5+ messages in thread
From: teigland @ 2006-09-28 19:26 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-09-28 19:26:45
Modified files:
group/daemon : cpg.c
Log message:
put a message in syslog if we get a cpg error that we can't deal with
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/cpg.c.diff?cvsroot=cluster&r1=1.33&r2=1.34
--- cluster/group/daemon/cpg.c 2006/09/26 21:32:38 1.33
+++ cluster/group/daemon/cpg.c 2006/09/28 19:26:45 1.34
@@ -547,15 +547,14 @@
retry:
error = cpg_mcast_joined(h, CPG_TYPE_AGREED, &iov, 1);
- if (error != CPG_OK)
- log_group(g, "cpg_mcast_joined error %d handle %llx", error, h);
if (error == CPG_ERR_TRY_AGAIN) {
retries++;
usleep(1000);
if (!(retries % 100))
log_error(g, "cpg_mcast_joined retry %d", retries);
goto retry;
- }
+ } else if (error != CPG_OK)
+ log_error(g, "cpg_mcast_joined error %d handle %llx", error, h);
if (retries)
log_group(g, "cpg_mcast_joined retried %d", retries);
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Cluster-devel] cluster/group/daemon cpg.c
@ 2006-10-13 15:57 teigland
0 siblings, 0 replies; 5+ messages in thread
From: teigland @ 2006-10-13 15:57 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-10-13 15:57:23
Modified files:
group/daemon : cpg.c
Log message:
If cpg_join or cpg_leave are stuck in a retry loop, put an error
message in syslog after ten seconds.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/cpg.c.diff?cvsroot=cluster&r1=1.35&r2=1.36
--- cluster/group/daemon/cpg.c 2006/10/06 16:55:19 1.35
+++ cluster/group/daemon/cpg.c 2006/10/13 15:57:23 1.36
@@ -475,7 +475,7 @@
cpg_error_t error;
cpg_handle_t h;
struct cpg_name name;
- int fd, ci;
+ int fd, ci, i = 0;
error = cpg_initialize(&h, &callbacks);
if (error != CPG_OK) {
@@ -502,6 +502,8 @@
if (error == CPG_ERR_TRY_AGAIN) {
log_debug("cpg_join error retry");
sleep(1);
+ if (!(++i % 10))
+ log_error(g, "cpg_join error retrying");
goto retry;
}
if (error != CPG_OK) {
@@ -518,6 +520,7 @@
{
cpg_error_t error;
struct cpg_name name;
+ int i = 0;
memset(&name, 0, sizeof(name));
sprintf(name.value, "%d_%s", g->level, g->name);
@@ -528,6 +531,8 @@
if (error == CPG_ERR_TRY_AGAIN) {
log_debug("cpg_leave error retry");
sleep(1);
+ if (!(++i % 10))
+ log_error(g, "cpg_leave error retrying");
goto retry;
}
if (error != CPG_OK) {
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-10-13 15:57 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-22 22:24 [Cluster-devel] cluster/group/daemon cpg.c teigland
-- strict thread matches above, loose matches on Subject: below --
2006-07-07 15:13 teigland
2006-09-08 23:14 teigland
2006-09-28 19:26 teigland
2006-10-13 15:57 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).