diff -r 6d83d22427d3 crmd/crmd_utils.h --- a/crmd/crmd_utils.h Thu Mar 22 12:29:06 2012 +0900 +++ b/crmd/crmd_utils.h Thu Mar 22 12:29:36 2012 +0900 @@ -51,6 +51,7 @@ extern gboolean crm_timer_stop (fsa_timer_t *timer); extern gboolean crm_timer_start(fsa_timer_t *timer); extern gboolean crm_timer_popped(gpointer data); +extern gboolean is_timer_started(fsa_timer_t *timer); extern xmlNode *create_node_state( const char *uname, const char *ha_state, const char *ccm_state, diff -r 6d83d22427d3 crmd/te_utils.c --- a/crmd/te_utils.c Thu Mar 22 12:29:06 2012 +0900 +++ b/crmd/te_utils.c Thu Mar 22 12:29:36 2012 +0900 @@ -327,6 +327,7 @@ if(transition_graph->complete) { if(transition_timer->period_ms > 0) { + crm_timer_stop(transition_timer); crm_timer_start(transition_timer); } else { register_fsa_input(C_FSA_INTERNAL, I_PE_CALC, NULL); diff -r 6d83d22427d3 crmd/tengine.c --- a/crmd/tengine.c Thu Mar 22 12:29:06 2012 +0900 +++ b/crmd/tengine.c Thu Mar 22 12:29:36 2012 +0900 @@ -226,6 +226,10 @@ graph_data = filename2xml(graph_file); } + if (is_timer_started(transition_timer)) { + crm_debug("The transitioner wait for a transition timer"); + } + CRM_CHECK(graph_data != NULL, crm_err("Input raised by %s is invalid", msg_data->origin); crm_log_xml_err(input->msg, "Bad command"); diff -r 6d83d22427d3 crmd/utils.c --- a/crmd/utils.c Thu Mar 22 12:29:06 2012 +0900 +++ b/crmd/utils.c Thu Mar 22 12:29:36 2012 +0900 @@ -169,6 +169,19 @@ mainloop_set_trigger(fsa_source); return TRUE; +} + +gboolean +is_timer_started(fsa_timer_t *timer) +{ + if (timer->period_ms > 0) { + if(transition_timer->source_id == 0) { + return FALSE; + } else { + return TRUE; + } + } + return FALSE; } gboolean