* [Cluster-devel] cluster/group/daemon cman.c
@ 2007-08-22 13:58 teigland
0 siblings, 0 replies; 7+ messages in thread
From: teigland @ 2007-08-22 13:58 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2007-08-22 13:58:19
Modified files:
group/daemon : cman.c
Log message:
use an admin handle from cman to call set_dirty
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/cman.c.diff?cvsroot=cluster&r1=1.31&r2=1.32
--- cluster/group/daemon/cman.c 2007/08/21 19:33:55 1.31
+++ cluster/group/daemon/cman.c 2007/08/22 13:58:19 1.32
@@ -5,6 +5,7 @@
#include "gd_internal.h"
static cman_handle_t ch;
+static cman_handle_t ch_admin;
static int old_quorate;
static cman_node_t old_nodes[MAX_NODES];
static int old_node_count;
@@ -15,30 +16,17 @@
int kill_cman(int nodeid)
{
- cman_handle_t ach;
- int rv;
-
- ach = cman_admin_init(NULL);
- if (!ach) {
- log_print("cman_admin_init error %d %d", (int) ch, errno);
- return -ENOTCONN;
- }
- rv = cman_kill_node(ach, nodeid);
- cman_finish(ach);
- return rv;
+ return cman_kill_node(ch_admin, nodeid);
}
int set_cman_dirty(void)
{
int rv;
-#if 0
- rv = cman_set_dirty(ch);
+ rv = cman_set_dirty(ch_admin);
if (rv)
log_print("cman_set_dirty error %d", rv);
return rv;
-#endif
- return 0;
}
static int is_member(cman_node_t *node_list, int count, int nodeid)
@@ -154,20 +142,24 @@
return -ENOTCONN;
}
+ ch_admin = cman_admin_init(NULL);
+ if (!ch_admin) {
+ log_print("cman_admin_init error %d %d", (int) ch_admin, errno);
+ rv = -ENOTCONN;
+ goto fail1;
+ }
+
rv = cman_start_notification(ch, cman_callback);
if (rv < 0) {
log_print("cman_start_notification error %d %d", rv, errno);
- cman_finish(ch);
- return rv;
+ goto fail2;
}
memset(&node, 0, sizeof(node));
rv = cman_get_node(ch, CMAN_NODEID_US, &node);
if (rv < 0) {
log_print("cman_get_node us error %d %d", rv, errno);
- cman_stop_notification(ch);
- cman_finish(ch);
- goto out;
+ goto fail3;
}
cman_node_count = 0;
@@ -175,7 +167,7 @@
rv = cman_get_nodes(ch, MAX_NODES, &cman_node_count, cman_nodes);
if (rv < 0) {
log_print("cman_get_nodes error %d %d", rv, errno);
- goto out;
+ goto fail3;
}
cman_quorate = cman_is_quorate(ch);
@@ -189,9 +181,14 @@
fd = cman_get_fd(ch);
client_add(fd, process_cman, close_cman);
+ return 0;
- rv = 0;
- out:
+ fail3:
+ cman_stop_notification(ch);
+ fail2:
+ cman_finish(ch_admin);
+ fail1:
+ cman_finish(ch);
return rv;
}
^ permalink raw reply [flat|nested] 7+ messages in thread* [Cluster-devel] cluster/group/daemon cman.c
@ 2007-08-21 19:33 teigland
0 siblings, 0 replies; 7+ messages in thread
From: teigland @ 2007-08-21 19:33 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2007-08-21 19:33:55
Modified files:
group/daemon : cman.c
Log message:
comment out the new cman_set_dirty() call; it's not working
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/cman.c.diff?cvsroot=cluster&r1=1.30&r2=1.31
--- cluster/group/daemon/cman.c 2007/08/20 14:50:30 1.30
+++ cluster/group/daemon/cman.c 2007/08/21 19:33:55 1.31
@@ -32,10 +32,13 @@
{
int rv;
+#if 0
rv = cman_set_dirty(ch);
if (rv)
log_print("cman_set_dirty error %d", rv);
return rv;
+#endif
+ return 0;
}
static int is_member(cman_node_t *node_list, int count, int nodeid)
^ permalink raw reply [flat|nested] 7+ messages in thread* [Cluster-devel] cluster/group/daemon cman.c
@ 2006-12-14 19:55 teigland
0 siblings, 0 replies; 7+ messages in thread
From: teigland @ 2006-12-14 19:55 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL50
Changes by: teigland at sourceware.org 2006-12-14 19:55:04
Modified files:
group/daemon : cman.c
Log message:
Switch from CMAN_DISPATCH_ONE loop to CMAN_DISPATCH_ALL to resolve
delayed cman shutdown callbacks.
bz 219385
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/cman.c.diff?cvsroot=cluster&only_with_tag=RHEL50&r1=1.27.4.1&r2=1.27.4.2
--- cluster/group/daemon/cman.c 2006/12/01 20:27:36 1.27.4.1
+++ cluster/group/daemon/cman.c 2006/12/14 19:55:04 1.27.4.2
@@ -10,8 +10,6 @@
static int old_node_count;
static cman_node_t cman_nodes[MAX_NODES];
static int cman_node_count;
-static int cman_cb;
-static int cman_reason;
static char name_buf[CMAN_MAX_NODENAME_LEN+1];
@@ -106,26 +104,18 @@
}
}
-static void process_cman_callback(void)
+static void cman_callback(cman_handle_t h, void *private, int reason, int arg)
{
- switch (cman_reason) {
+ switch (reason) {
+ case CMAN_REASON_TRY_SHUTDOWN:
+ cman_replyto_shutdown(ch, 1);
+ break;
case CMAN_REASON_STATECHANGE:
statechange();
break;
- default:
- break;
}
}
-static void cman_callback(cman_handle_t h, void *private, int reason, int arg)
-{
- cman_cb = 1;
- cman_reason = reason;
-
- if (reason == CMAN_REASON_TRY_SHUTDOWN)
- cman_replyto_shutdown(ch, 1);
-}
-
static void close_cman(int ci)
{
log_debug("cluster is down, exiting");
@@ -135,19 +125,7 @@
static void process_cman(int ci)
{
int rv;
-
- while (1) {
- rv = cman_dispatch(ch, CMAN_DISPATCH_ONE);
- if (rv < 0)
- break;
-
- if (cman_cb) {
- cman_cb = 0;
- process_cman_callback();
- } else
- break;
- }
-
+ rv = cman_dispatch(ch, CMAN_DISPATCH_ALL);
if (rv == -1 && errno == EHOSTDOWN)
close_cman(ci);
}
^ permalink raw reply [flat|nested] 7+ messages in thread* [Cluster-devel] cluster/group/daemon cman.c
@ 2006-12-14 19:54 teigland
0 siblings, 0 replies; 7+ messages in thread
From: teigland @ 2006-12-14 19:54 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: teigland at sourceware.org 2006-12-14 19:54:43
Modified files:
group/daemon : cman.c
Log message:
Switch from CMAN_DISPATCH_ONE loop to CMAN_DISPATCH_ALL to resolve
delayed cman shutdown callbacks.
bz 219385
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/cman.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.27.2.1&r2=1.27.2.2
--- cluster/group/daemon/cman.c 2006/12/01 20:27:28 1.27.2.1
+++ cluster/group/daemon/cman.c 2006/12/14 19:54:43 1.27.2.2
@@ -10,8 +10,6 @@
static int old_node_count;
static cman_node_t cman_nodes[MAX_NODES];
static int cman_node_count;
-static int cman_cb;
-static int cman_reason;
static char name_buf[CMAN_MAX_NODENAME_LEN+1];
@@ -106,26 +104,18 @@
}
}
-static void process_cman_callback(void)
+static void cman_callback(cman_handle_t h, void *private, int reason, int arg)
{
- switch (cman_reason) {
+ switch (reason) {
+ case CMAN_REASON_TRY_SHUTDOWN:
+ cman_replyto_shutdown(ch, 1);
+ break;
case CMAN_REASON_STATECHANGE:
statechange();
break;
- default:
- break;
}
}
-static void cman_callback(cman_handle_t h, void *private, int reason, int arg)
-{
- cman_cb = 1;
- cman_reason = reason;
-
- if (reason == CMAN_REASON_TRY_SHUTDOWN)
- cman_replyto_shutdown(ch, 1);
-}
-
static void close_cman(int ci)
{
log_debug("cluster is down, exiting");
@@ -135,19 +125,7 @@
static void process_cman(int ci)
{
int rv;
-
- while (1) {
- rv = cman_dispatch(ch, CMAN_DISPATCH_ONE);
- if (rv < 0)
- break;
-
- if (cman_cb) {
- cman_cb = 0;
- process_cman_callback();
- } else
- break;
- }
-
+ rv = cman_dispatch(ch, CMAN_DISPATCH_ALL);
if (rv == -1 && errno == EHOSTDOWN)
close_cman(ci);
}
^ permalink raw reply [flat|nested] 7+ messages in thread* [Cluster-devel] cluster/group/daemon cman.c
@ 2006-12-14 19:54 teigland
0 siblings, 0 replies; 7+ messages in thread
From: teigland @ 2006-12-14 19:54 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-12-14 19:54:16
Modified files:
group/daemon : cman.c
Log message:
Switch from CMAN_DISPATCH_ONE loop to CMAN_DISPATCH_ALL to resolve
delayed cman shutdown callbacks.
bz 219385
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/cman.c.diff?cvsroot=cluster&r1=1.28&r2=1.29
--- cluster/group/daemon/cman.c 2006/12/01 20:26:01 1.28
+++ cluster/group/daemon/cman.c 2006/12/14 19:54:16 1.29
@@ -10,8 +10,6 @@
static int old_node_count;
static cman_node_t cman_nodes[MAX_NODES];
static int cman_node_count;
-static int cman_cb;
-static int cman_reason;
static char name_buf[CMAN_MAX_NODENAME_LEN+1];
@@ -106,26 +104,18 @@
}
}
-static void process_cman_callback(void)
+static void cman_callback(cman_handle_t h, void *private, int reason, int arg)
{
- switch (cman_reason) {
+ switch (reason) {
+ case CMAN_REASON_TRY_SHUTDOWN:
+ cman_replyto_shutdown(ch, 1);
+ break;
case CMAN_REASON_STATECHANGE:
statechange();
break;
- default:
- break;
}
}
-static void cman_callback(cman_handle_t h, void *private, int reason, int arg)
-{
- cman_cb = 1;
- cman_reason = reason;
-
- if (reason == CMAN_REASON_TRY_SHUTDOWN)
- cman_replyto_shutdown(ch, 1);
-}
-
static void close_cman(int ci)
{
log_debug("cluster is down, exiting");
@@ -135,19 +125,7 @@
static void process_cman(int ci)
{
int rv;
-
- while (1) {
- rv = cman_dispatch(ch, CMAN_DISPATCH_ONE);
- if (rv < 0)
- break;
-
- if (cman_cb) {
- cman_cb = 0;
- process_cman_callback();
- } else
- break;
- }
-
+ rv = cman_dispatch(ch, CMAN_DISPATCH_ALL);
if (rv == -1 && errno == EHOSTDOWN)
close_cman(ci);
}
^ permalink raw reply [flat|nested] 7+ messages in thread* [Cluster-devel] cluster/group/daemon cman.c
@ 2006-06-30 21:00 teigland
0 siblings, 0 replies; 7+ messages in thread
From: teigland @ 2006-06-30 21:00 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-06-30 21:00:33
Modified files:
group/daemon : cman.c
Log message:
put back old check that previous commit avoided
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/cman.c.diff?cvsroot=cluster&r1=1.26&r2=1.27
--- cluster/group/daemon/cman.c 2006/06/30 15:34:50 1.26
+++ cluster/group/daemon/cman.c 2006/06/30 21:00:33 1.27
@@ -92,8 +92,10 @@
for (i = 0; i < old_node_count; i++) {
if (old_nodes[i].cn_member &&
!is_cman_member(old_nodes[i].cn_nodeid)) {
+
log_debug("cman: node %d removed",
old_nodes[i].cn_nodeid);
+
rs = get_recovery_set(old_nodes[i].cn_nodeid);
rs->cman_update = 1;
@@ -102,7 +104,10 @@
rs->nodeid);
list_del(&rs->list);
free(rs);
- } else if (rs->cpg_update && list_empty(&rs->entries)) {
+ continue;
+ }
+
+ if (rs->cpg_update && list_empty(&rs->entries)) {
log_debug("free unused recovery set %d cman",
rs->nodeid);
list_del(&rs->list);
^ permalink raw reply [flat|nested] 7+ messages in thread* [Cluster-devel] cluster/group/daemon cman.c
@ 2006-06-30 15:34 teigland
0 siblings, 0 replies; 7+ messages in thread
From: teigland @ 2006-06-30 15:34 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland at sourceware.org 2006-06-30 15:34:50
Modified files:
group/daemon : cman.c
Log message:
to be consistent, <libcman.h> instead of "libcman.h"
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/cman.c.diff?cvsroot=cluster&r1=1.25&r2=1.26
--- cluster/group/daemon/cman.c 2006/06/30 15:29:17 1.25
+++ cluster/group/daemon/cman.c 2006/06/30 15:34:50 1.26
@@ -1,8 +1,8 @@
/* Interface with openais's cman API */
+#include <libcman.h>
#include "gd_internal.h"
-#include "libcman.h"
static cman_handle_t ch;
static int old_quorate;
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-08-22 13:58 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-22 13:58 [Cluster-devel] cluster/group/daemon cman.c teigland
-- strict thread matches above, loose matches on Subject: below --
2007-08-21 19:33 teigland
2006-12-14 19:55 teigland
2006-12-14 19:54 teigland
2006-12-14 19:54 teigland
2006-06-30 21:00 teigland
2006-06-30 15:34 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).