Author: jfrederic.clere(a)jboss.com
Date: 2008-07-03 09:31:43 -0400 (Thu, 03 Jul 2008)
New Revision: 1738
Modified:
trunk/mod_cluster/native/mod_manager/mod_manager.c
Log:
Make sure we don't (re)insert a node until it has been really removed.
Modified: trunk/mod_cluster/native/mod_manager/mod_manager.c
===================================================================
--- trunk/mod_cluster/native/mod_manager/mod_manager.c 2008-07-03 10:26:27 UTC (rev 1737)
+++ trunk/mod_cluster/native/mod_manager/mod_manager.c 2008-07-03 13:31:43 UTC (rev 1738)
@@ -73,6 +73,7 @@
#define TYPEMEM 2
#define MNODEUI "MEM: Can't update or insert node"
+#define MNODERM "MEM: Old node still exist"
#define MBALAUI "MEM: Can't update or insert balancer"
#define MNODERD "MEM: Can't read node"
#define MHOSTRD "MEM: Can't read host alias"
@@ -447,6 +448,7 @@
{
/* Process the node/balancer description */
nodeinfo_t nodeinfo;
+ nodeinfo_t *node;
balancerinfo_t balancerinfo;
int mpm_threads;
@@ -635,6 +637,14 @@
return MBALAUI;
}
+ /* check for removed node */
+ node = read_node(nodestatsmem, &nodeinfo);
+ if (node != NULL && node->mess.remove) {
+ /* Here we can't update it because the old one is still in */
+ *errtype = TYPEMEM;
+ return MNODERM;
+ }
+
/* Insert or update node description */
if (insert_update_node(nodestatsmem, &nodeinfo, &id) != APR_SUCCESS) {
*errtype = TYPEMEM;
Show replies by date