crm_warn("Action %d is taking more than 2x its timeout (%d)", timer->action->id, timer->action->timeout); crm_log_xml_debug(timer->action->xml, "Slow action"); 
print_action("Action missed its timeout", timer->action, LOG_WARNING); 
timer_callback(gpointer data){	te_timer_t *timer = NULL;		if(data == NULL) {		crm_err("Timer popped with no data");		return FALSE;	}		timer = (te_timer_t*)data;	if(timer->source_id > 0) {		g_source_remove(timer->source_id);	}	timer->source_id = -1;	crm_err("Timer popped in state=%d", te_fsa_state);	if(te_fsa_state != s_in_transition) {		crm_debug("Ignoring timeout while not in transition");		return TRUE;			} else if(timer->reason == timeout_timeout) {				/* global timeout - abort the transition */		crm_warn("Transition timeout reached..."			 " marking transition complete.");				crm_warn("Some actions may not have been executed.");					send_complete(XML_ATTR_TIMEOUT, NULL, te_timeout, i_cancel);				return TRUE;			} else if(timer->action == NULL) {		crm_err("Action not present!");		return FALSE;			} else if(timer->reason == timeout_action_warn) {		crm_warn("Action %d is taking more than 2x its timeout (%d)",			timer->action->id, timer->action->timeout);		crm_log_xml_debug(timer->action->xml, "Slow action");		return TRUE;			} else {		/* fail the action		 * - which may or may not abort the transition		 */		/* TODO: send a cancel notice to the LRM */		/* TODO: use the ack from above to update the CIB */		return cib_action_update(timer->action, LRM_OP_TIMEOUT);	}}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/ef4af5842905d74b59c3c6ae389de5e38853e300/utils.c/clean/crm/tengine/utils.c