[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-ha
Subject: [Linux-HA] [patch] Two crmadmin -d problems.
From: Simone Gotti <simone.gotti () email ! it>
Date: 2006-05-28 18:06:12
Message-ID: 1148839573.2855.26.camel () localhost
[Download RAW message or body]
Hi all,
Here I am again with some other issues I found during my testings with
the latest linux ha from CVS.
Let me know if you prefer that I fill some bug reports instead of using
the mailing list.
I was trying to modify the debug level of crmd when I noticed 2 issues.
1) crmadmin -d <node> or crmadmin -i <node> doesn't return, looks like
the channel is never closed. My knowledge of the code is not enought to
understand where to check for the problem.
2) If I launch some consecutive crmadmin -d <node>, crmd starts using
all the CPU, as it's going in a loop. From some debugging looks like
debug level goes below the 0 and it overflows as it's defined as an
unsigned int.
I made this simple patch to avoid the problem, probably the same checks
are needed also for the debug maximum level (I didn't made them as I
cannot find what is the maximum log level). The changes to
lib/crm/common/utils.c are needed to handle SIGUSR1/SIGUSR2 signal
calls, while the changes to crm/crmd/messages.c are needed to handle the
calls by crmadmin. Maybe there are better ways to fix this issue.
Thanks!
Bye!
--
Email.it, the professional e-mail, gratis per te: http://www.email.it/f
Sponsor:
Hai dei virus sul tuo PC ma non sai come eliminarli? Allora impara subito come \
rimuovere ogni tipo di virus Clicca qui: \
http://adv.email.it/cgi-bin/foclick.cgi?mid=5057&d=28-5
["heartbeat-debug-overflow01.patch" (heartbeat-debug-overflow01.patch)]
diff -urp heartbeat-2.0.6.orig/crm/crmd/messages.c heartbeat-2.0.6/crm/crmd/messages.c
--- heartbeat-2.0.6.orig/crm/crmd/messages.c 2006-05-11 11:36:17.000000000 +0200
+++ heartbeat-2.0.6/crm/crmd/messages.c 2006-05-28 19:48:04.000000000 +0200
@@ -855,9 +855,13 @@ handle_request(ha_msg_input_t *stored_ms
} else if(strcasecmp(op, CRM_OP_DEBUG_DOWN) == 0) {
int level = get_crm_log_level();
- set_crm_log_level(level-1);
- crm_info("Debug set to %d (was %d)",
- get_crm_log_level(), level);
+ if (level > 0) {
+ set_crm_log_level(level-1);
+ crm_info("Debug set to %d (was %d)",
+ get_crm_log_level(), level);
+ } else {
+ crm_info("Debug already at it's minimal value (0)");
+ }
} else if(strcasecmp(op, CRM_OP_JOIN_OFFER) == 0) {
next_input = I_JOIN_OFFER;
diff -urp heartbeat-2.0.6.orig/lib/crm/common/utils.c heartbeat-2.0.6/lib/crm/common/utils.c
--- heartbeat-2.0.6.orig/lib/crm/common/utils.c 2006-05-27 13:04:08.000000000 +0200
+++ heartbeat-2.0.6/lib/crm/common/utils.c 2006-05-28 18:04:49.000000000 +0200
@@ -445,7 +445,8 @@ alter_debug(int nsig)
break;
case DEBUG_DEC:
- crm_log_level--;
+ if (crm_log_level > 0)
+ crm_log_level--;
break;
default:
_______________________________________________
Linux-HA mailing list
Linux-HA@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic