* [Cluster-devel] cluster/rgmanager ChangeLog src/daemons/restre ...
@ 2007-08-30 16:05 lhh
0 siblings, 0 replies; 4+ messages in thread
From: lhh @ 2007-08-30 16:05 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL51
Changes by: lhh at sourceware.org 2007-08-30 16:05:14
Modified files:
rgmanager : ChangeLog
rgmanager/src/daemons: restree.c rg_state.c
Log message:
Fix #229650, pass 3
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/ChangeLog.diff?cvsroot=cluster&only_with_tag=RHEL51&r1=1.31.2.19.2.3&r2=1.31.2.19.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/restree.c.diff?cvsroot=cluster&only_with_tag=RHEL51&r1=1.23.2.8.2.2&r2=1.23.2.8.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/rg_state.c.diff?cvsroot=cluster&only_with_tag=RHEL51&r1=1.24.2.10.2.2&r2=1.24.2.10.2.3
--- cluster/rgmanager/ChangeLog 2007/08/02 14:47:45 1.31.2.19.2.3
+++ cluster/rgmanager/ChangeLog 2007/08/30 16:05:14 1.31.2.19.2.4
@@ -1,3 +1,7 @@
+2007-08-30 Lon Hohberger <lhh@redhat.com>
+ * src/daemons/restree.c, rg_state.c: Fix tree-restart bug
+ This is another part of #229650
+
2007-08-02 Lon Hohberger <lhh@redhat.com>
* general: More fixes around #248727
* include/reslist.h, src/daemons/restree.c: Make last-value be
--- cluster/rgmanager/src/daemons/restree.c 2007/08/02 14:47:45 1.23.2.8.2.2
+++ cluster/rgmanager/src/daemons/restree.c 2007/08/30 16:05:14 1.23.2.8.2.3
@@ -954,20 +954,17 @@
return _res_op(&node->rn_child, first, NULL, ret, op);
if (op == RS_START || op == RS_STATUS) {
- rv = _do_child_levels(tree, first, ret, op);
+ rv |= _do_child_levels(tree, first, ret, op);
if (rv & SFL_FAILURE)
return rv;
/* Start default level after specified ones */
- rv = _do_child_default_level(tree, first, ret, op);
+ rv |= _do_child_default_level(tree, first, ret, op);
} /* stop */ else {
- rv = _do_child_default_level(tree, first, ret, op);
- if (rv != 0)
- return rv;
-
- rv = _do_child_levels(tree, first, ret, op);
+ rv |= _do_child_default_level(tree, first, ret, op);
+ rv |= _do_child_levels(tree, first, ret, op);
}
return rv;
@@ -1245,22 +1242,8 @@
}
- if (node->rn_child) {
- rv = _res_op_by_level(&node, me?NULL:first, ret, op);
- if (rv != 0) {
- mark_nodes(node, RES_FAILED,
- RF_NEEDSTART | RF_NEEDSTOP);
-
- /* If this node is independent of its siblings,
- that one of its dependent children failed
- does not matter: its dependent children must
- also be independent of this node's siblings. */
- if (node->rn_flags & RF_INDEPENDENT)
- return SFL_RECOVERABLE;
-
- return SFL_FAILURE;
- }
- }
+ if (node->rn_child)
+ rv |= _res_op_by_level(&node, me?NULL:first, ret, op);
/* Stop should occur after children have stopped */
if (me && (op == RS_STOP)) {
--- cluster/rgmanager/src/daemons/rg_state.c 2007/08/02 14:47:45 1.24.2.10.2.2
+++ cluster/rgmanager/src/daemons/rg_state.c 2007/08/30 16:05:14 1.24.2.10.2.3
@@ -1130,10 +1130,13 @@
static inline int
handle_started_status(char *svcName, int ret, rg_state_t *svcStatus)
{
+ int newowner;
+
if (ret & SFL_FAILURE) {
- ret = msvc_check_cluster(svcName);
- if (ret >= 0)
- return 1;
+ newowner = msvc_check_cluster(svcName);
+ if (newowner >= 0)
+ return 0; /* running but not here */
+ return ret; /* not running anymore */
}
/* Ok, we have a recoverable service. Try to perform
^ permalink raw reply [flat|nested] 4+ messages in thread* [Cluster-devel] cluster/rgmanager ChangeLog src/daemons/restre ...
@ 2007-08-30 16:09 lhh
0 siblings, 0 replies; 4+ messages in thread
From: lhh @ 2007-08-30 16:09 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: lhh at sourceware.org 2007-08-30 16:09:39
Modified files:
rgmanager : ChangeLog
rgmanager/src/daemons: restree.c rg_state.c
Log message:
Fix #229650, pass 3
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/ChangeLog.diff?cvsroot=cluster&r1=1.58&r2=1.59
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/restree.c.diff?cvsroot=cluster&r1=1.36&r2=1.37
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/rg_state.c.diff?cvsroot=cluster&r1=1.39&r2=1.40
--- cluster/rgmanager/ChangeLog 2007/08/22 14:02:28 1.58
+++ cluster/rgmanager/ChangeLog 2007/08/30 16:09:38 1.59
@@ -1,3 +1,7 @@
+2007-08-30 Lon Hohberger <lhh@redhat.com>
+ * src/daemons/restree.c, rg_state.c: Fix tree-restart bug
+ This is another part of #229650
+
2007-08-22 Fabio M. Di Nitto <fabbione@ubuntu.com>
* include/list.h: Fix build with gcc-4.2.
--- cluster/rgmanager/src/daemons/restree.c 2007/08/02 14:53:38 1.36
+++ cluster/rgmanager/src/daemons/restree.c 2007/08/30 16:09:39 1.37
@@ -959,20 +959,17 @@
return _res_op(&node->rn_child, first, NULL, ret, op);
if (op == RS_START || op == RS_STATUS) {
- rv = _do_child_levels(tree, first, ret, op);
+ rv |= _do_child_levels(tree, first, ret, op);
if (rv & SFL_FAILURE)
return rv;
/* Start default level after specified ones */
- rv = _do_child_default_level(tree, first, ret, op);
+ rv |= _do_child_default_level(tree, first, ret, op);
} /* stop */ else {
- rv = _do_child_default_level(tree, first, ret, op);
- if (rv != 0)
- return rv;
-
- rv = _do_child_levels(tree, first, ret, op);
+ rv |= _do_child_default_level(tree, first, ret, op);
+ rv |= _do_child_levels(tree, first, ret, op);
}
return rv;
@@ -1269,22 +1266,8 @@
}
- if (node->rn_child) {
- rv = _res_op_by_level(&node, me?NULL:first, ret, op);
- if (rv != 0) {
- mark_nodes(node, RES_FAILED,
- RF_NEEDSTART | RF_NEEDSTOP);
-
- /* If this node is independent of its siblings,
- that one of its dependent children failed
- does not matter: its dependent children must
- also be independent of this node's siblings. */
- if (node->rn_flags & RF_INDEPENDENT)
- return SFL_RECOVERABLE;
-
- return SFL_FAILURE;
- }
- }
+ if (node->rn_child)
+ rv |= _res_op_by_level(&node, me?NULL:first, ret, op);
/* Stop should occur after children have stopped */
if (me && (op == RS_STOP)) {
--- cluster/rgmanager/src/daemons/rg_state.c 2007/08/02 14:53:38 1.39
+++ cluster/rgmanager/src/daemons/rg_state.c 2007/08/30 16:09:39 1.40
@@ -1151,10 +1151,13 @@
static inline int
handle_started_status(char *svcName, int ret, rg_state_t *svcStatus)
{
+ int newowner;
+
if (ret & SFL_FAILURE) {
- ret = msvc_check_cluster(svcName);
- if (ret >= 0)
- return 1;
+ newowner = msvc_check_cluster(svcName);
+ if (newowner >= 0)
+ return 0; /* running but not here */
+ return ret; /* not running anymore */
}
/* Ok, we have a recoverable service. Try to perform
^ permalink raw reply [flat|nested] 4+ messages in thread* [Cluster-devel] cluster/rgmanager ChangeLog src/daemons/restre ...
@ 2007-08-30 16:03 lhh
0 siblings, 0 replies; 4+ messages in thread
From: lhh @ 2007-08-30 16:03 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: lhh at sourceware.org 2007-08-30 16:03:03
Modified files:
rgmanager : ChangeLog
rgmanager/src/daemons: restree.c rg_state.c
Log message:
Fix #229650, pass 3
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/ChangeLog.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.31.2.25&r2=1.31.2.26
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/restree.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.23.2.10&r2=1.23.2.11
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/rg_state.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.24.2.12&r2=1.24.2.13
--- cluster/rgmanager/ChangeLog 2007/08/15 18:41:10 1.31.2.25
+++ cluster/rgmanager/ChangeLog 2007/08/30 16:03:02 1.31.2.26
@@ -1,3 +1,7 @@
+2007-08-30 Lon Hohberger <lhh@redhat.com>
+ * src/daemons/restree.c, rg_state.c: Fix tree-restart bug
+ This is another part of #229650
+
2007-08-15 Lon Hohberger <lhh@redhat.com>
* src/utils/clustat.c: Remove uninitialized var & fix logic /
spotted by Ryan McCabe
--- cluster/rgmanager/src/daemons/restree.c 2007/08/02 14:46:51 1.23.2.10
+++ cluster/rgmanager/src/daemons/restree.c 2007/08/30 16:03:03 1.23.2.11
@@ -954,20 +954,17 @@
return _res_op(&node->rn_child, first, NULL, ret, op);
if (op == RS_START || op == RS_STATUS) {
- rv = _do_child_levels(tree, first, ret, op);
+ rv |= _do_child_levels(tree, first, ret, op);
if (rv & SFL_FAILURE)
return rv;
/* Start default level after specified ones */
- rv = _do_child_default_level(tree, first, ret, op);
+ rv |= _do_child_default_level(tree, first, ret, op);
} /* stop */ else {
- rv = _do_child_default_level(tree, first, ret, op);
- if (rv != 0)
- return rv;
-
- rv = _do_child_levels(tree, first, ret, op);
+ rv |= _do_child_default_level(tree, first, ret, op);
+ rv |= _do_child_levels(tree, first, ret, op);
}
return rv;
@@ -1245,22 +1242,8 @@
}
- if (node->rn_child) {
- rv = _res_op_by_level(&node, me?NULL:first, ret, op);
- if (rv != 0) {
- mark_nodes(node, RES_FAILED,
- RF_NEEDSTART | RF_NEEDSTOP);
-
- /* If this node is independent of its siblings,
- that one of its dependent children failed
- does not matter: its dependent children must
- also be independent of this node's siblings. */
- if (node->rn_flags & RF_INDEPENDENT)
- return SFL_RECOVERABLE;
-
- return SFL_FAILURE;
- }
- }
+ if (node->rn_child)
+ rv |= _res_op_by_level(&node, me?NULL:first, ret, op);
/* Stop should occur after children have stopped */
if (me && (op == RS_STOP)) {
--- cluster/rgmanager/src/daemons/rg_state.c 2007/08/02 14:46:51 1.24.2.12
+++ cluster/rgmanager/src/daemons/rg_state.c 2007/08/30 16:03:03 1.24.2.13
@@ -1130,10 +1130,13 @@
static inline int
handle_started_status(char *svcName, int ret, rg_state_t *svcStatus)
{
+ int newowner;
+
if (ret & SFL_FAILURE) {
- ret = msvc_check_cluster(svcName);
- if (ret >= 0)
- return 1;
+ newowner = msvc_check_cluster(svcName);
+ if (newowner >= 0)
+ return 0; /* running but not here */
+ return ret; /* not running anymore */
}
/* Ok, we have a recoverable service. Try to perform
^ permalink raw reply [flat|nested] 4+ messages in thread* [Cluster-devel] cluster/rgmanager ChangeLog src/daemons/restre ...
@ 2006-11-03 16:26 lhh
0 siblings, 0 replies; 4+ messages in thread
From: lhh @ 2006-11-03 16:26 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL4
Changes by: lhh at sourceware.org 2006-11-03 16:26:19
Modified files:
rgmanager : ChangeLog
rgmanager/src/daemons: restree.c rg_thread.c
rgmanager/src/resources: fs.sh
Log message:
Fix #213246 (Patch by Jeff Layton), #213312
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/ChangeLog.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.5.2.23&r2=1.5.2.24
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/restree.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.10.2.12&r2=1.10.2.13
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/rg_thread.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.7.2.6&r2=1.7.2.7
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/fs.sh.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.4.2.17&r2=1.4.2.18
--- cluster/rgmanager/ChangeLog 2006/10/05 17:52:27 1.5.2.23
+++ cluster/rgmanager/ChangeLog 2006/11/03 16:26:18 1.5.2.24
@@ -1,3 +1,9 @@
+2006-11-03 Lon Hohberger <lhh@redhat.com>
+ * src/daemons/restree.c: Merge patch from Jeff Layton to instrument
+ res_exec more closely. (#213246)
+ * src/daemons/rg_thread.c: Fix segfault caused by improper loop
+ semantics (#213312)
+
2006-10-05 Lon Hohberger <lhh@redhat.com>
* src/clulib/clulog.c: Change stdout/stderr to nonblocking (#207144
part 1)
--- cluster/rgmanager/src/daemons/restree.c 2006/09/21 18:03:30 1.10.2.12
+++ cluster/rgmanager/src/daemons/restree.c 2006/11/03 16:26:18 1.10.2.13
@@ -340,18 +340,30 @@
resource_t *res = node->rn_resource;
char fullpath[2048];
- if (!res->r_rule->rr_agent)
+ if (!res->r_rule->rr_agent) {
+ clulog(LOG_DEBUG,
+ "%s on %s \"%s\" no rr_agent\n",
+ res_ops[op], res->r_rule->rr_type,
+ res->r_attrs->ra_value);
return 0;
+ }
#ifdef DEBUG
env = build_env(node, op);
- if (!env)
+ if (!env) {
+ clulog(LOG_DEBUG,
+ "%s on %s \"%s\" build_env failed %d\n",
+ res_ops[op], res->r_rule->rr_type,
+ res->r_attrs->ra_value, errno);
return -errno;
+ }
#endif
childpid = fork();
- if (childpid < 0)
+ if (childpid < 0) {
+ clulog(LOG_ERR, "%s: fork failed (%d)!\n", __func__, errno);
return -errno;
+ }
if (!childpid) {
/* Child */
@@ -368,8 +380,13 @@
env = build_env(node, op, depth);
#endif
- if (!env)
+ if (!env) {
+ clulog(LOG_DEBUG,
+ "%s on %s \"%s\" build_env failed (ENOMEM)\n",
+ res_ops[op], res->r_rule->rr_type,
+ res->r_attrs->ra_value);
exit(-ENOMEM);
+ }
if (res->r_rule->rr_agent[0] != '/')
snprintf(fullpath, sizeof(fullpath), "%s/%s",
@@ -399,7 +416,13 @@
if (ret) {
clulog(LOG_NOTICE,
- "%s on %s \"%s\" returned %d (%s)\n",
+ "%s on %s:%s returned %d (%s)\n",
+ res_ops[op], res->r_rule->rr_type,
+ res->r_attrs->ra_value, ret,
+ ocf_strerror(ret));
+ } else {
+ clulog(LOG_DEBUG,
+ "%s on %s:%s returned %d (%s)\n",
res_ops[op], res->r_rule->rr_type,
res->r_attrs->ra_value, ret,
ocf_strerror(ret));
@@ -411,6 +434,11 @@
if (!WIFSIGNALED(ret))
assert(0);
+ clulog(LOG_ERR,
+ "%s on %s:%s caught signal %d\n",
+ res_ops[op], res->r_rule->rr_type,
+ res->r_attrs->ra_value, WTERMSIG(ret));
+
return -EFAULT;
}
--- cluster/rgmanager/src/daemons/rg_thread.c 2006/05/12 21:28:31 1.7.2.6
+++ cluster/rgmanager/src/daemons/rg_thread.c 2006/11/03 16:26:18 1.7.2.7
@@ -110,18 +110,22 @@
purge_status_checks(request_t **list)
{
request_t *curr;
+ int found;
if (!list)
return;
- list_do(list, curr) {
- if (curr->rr_request != RG_STATUS)
- continue;
-
- list_remove(list, curr);
- rq_free(curr);
- curr = *list;
- } while (!list_done(list, curr));
+ do {
+ found = 0;
+ list_do(list, curr) {
+ if (curr->rr_request == RG_STATUS) {
+ list_remove(list, curr);
+ rq_free(curr);
+ found = 1;
+ break;
+ }
+ } while (!list_done(list, curr));
+ } while (found);
}
--- cluster/rgmanager/src/resources/fs.sh 2006/10/20 20:34:25 1.4.2.17
+++ cluster/rgmanager/src/resources/fs.sh 2006/11/03 16:26:19 1.4.2.18
@@ -530,8 +530,8 @@
# place
#
if [ -n "$tmp_mp" -a "$tmp_mp" != "$mp" ]; then
- ocf_log warn "\
-Device $dev is mounted on $tmp_mp instead of $mp"
+ ocf_log warn \
+"Device $dev is mounted on $tmp_mp instead of $mp"
fi
return $YES
fi
@@ -788,6 +788,7 @@
enable_fs_quotas()
{
declare -i need_check=0
+ declare -i rv
declare quotaopts=""
declare mopt
declare opts=$1
@@ -835,8 +836,13 @@
ocf_log info "Enabling Quotas on $mp"
ocf_log debug "quotaon -$quotaopts $mp"
quotaon -$quotaopts $mp
+ rv=$?
+ if [ $rv -ne 0 ]; then
+ # Just a warning
+ ocf_log warn "Unable to turn on quotas for $mp; return = $rv"
+ fi
- return $?
+ return $rv
}
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-08-30 16:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-30 16:05 [Cluster-devel] cluster/rgmanager ChangeLog src/daemons/restre lhh
-- strict thread matches above, loose matches on Subject: below --
2007-08-30 16:09 lhh
2007-08-30 16:03 lhh
2006-11-03 16:26 lhh
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).