diff -r 7499efa9c2a3 crmd/control.c --- a/crmd/control.c Wed Jan 07 15:02:59 2009 +0100 +++ b/crmd/control.c Tue Aug 03 12:43:40 2010 +0900 @@ -50,6 +50,8 @@ GHashTable *ipc_clients = NULL; GTRIGSource *fsa_source = NULL; +int g_cib_callback_timeout = 0; + /* A_HA_CONNECT */ #if SUPPORT_AIS extern void crmd_ha_msg_filter(xmlNode * msg); @@ -693,6 +695,7 @@ { XML_CONFIG_ATTR_RECHECK, "cluster_recheck_interval", "time", "Zero disables polling. Positive values are an interval in seconds (unless other SI units are specified. eg. 5min)", "0", &check_timer, "Polling interval for time based changes to options, resource parameters and constraints.", "The Cluster is primarily event driven, however the configuration can have elements that change based on time. To ensure these changes take effect, we can optionally poll the cluster's status for changes." }, { XML_CONFIG_ATTR_ELECTION_FAIL, "election_timeout", "time", NULL, "2min", &check_timer, "*** Advanced Use Only ***.", "If need to adjust this value, it probably indicates the presence of a bug." }, { XML_CONFIG_ATTR_FORCE_QUIT, "shutdown_escalation", "time", NULL, "20min", &check_timer, "*** Advanced Use Only ***.", "If need to adjust this value, it probably indicates the presence of a bug." }, + { XML_CONFIG_CIB_CALLBAK_TIMEOUT, "dc_cib_timeout", "time", NULL, "120s", &check_time, "How long to wait for a response from cib local timeout.", "The \"correct\" value will depend on the speed/load and volume of your cpu and resources." }, { "crmd-integration-timeout", NULL, "time", NULL, "3min", &check_timer, "*** Advanced Use Only ***.", "If need to adjust this value, it probably indicates the presence of a bug." }, { "crmd-finalization-timeout", NULL, "time", NULL, "30min", &check_timer, "*** Advanced Use Only ***.", "If you need to adjust this value, it probably indicates the presence of a bug." }, }; @@ -764,6 +767,9 @@ recheck_timer->period_ms = crm_get_msec(value); crm_info("Checking for expired actions every %dms", recheck_timer->period_ms); + value = crmd_pref(config_hash, XML_CONFIG_CIB_CALLBAK_TIMEOUT); + g_cib_callback_timeout = crm_get_msec(value); + value = crmd_pref(config_hash, "crmd-integration-timeout"); integration_timer->period_ms = crm_get_msec(value); diff -r 7499efa9c2a3 include/crm/cib.h --- a/include/crm/cib.h Wed Jan 07 15:02:59 2009 +0100 +++ b/include/crm/cib.h Tue Aug 03 12:43:40 2010 +0900 @@ -306,7 +306,9 @@ extern int num_cib_op_callbacks(void); extern void remove_cib_op_callback(int call_id, gboolean all_callbacks); -#define add_cib_op_callback(cib, id, flag, data, fn) cib->cmds->register_callback(cib, id, 120, flag, data, #fn, fn) +extern int g_cib_callback_timeout; + +#define add_cib_op_callback(cib, id, flag, data, fn) cib->cmds->register_callback(cib, id, g_cib_callback_timeout=0? 120 : g_cib_callback_timeout, flag, data, #fn, fn) #include #include diff -r 7499efa9c2a3 include/crm/msg_xml.h --- a/include/crm/msg_xml.h Wed Jan 07 15:02:59 2009 +0100 +++ b/include/crm/msg_xml.h Tue Aug 03 12:43:40 2010 +0900 @@ -244,6 +244,7 @@ #define XML_CONFIG_ATTR_ELECTION_FAIL "election-timeout" #define XML_CONFIG_ATTR_FORCE_QUIT "shutdown-escalation" #define XML_CONFIG_ATTR_RECHECK "cluster-recheck-interval" +#define XML_CONFIG_CIB_CALLBAK_TIMEOUT "cib-callback-timeout" #define XML_CIB_TAG_GENERATION_TUPPLE "generation_tuple" diff -r 7499efa9c2a3 tools/attrd.c --- a/tools/attrd.c Wed Jan 07 15:02:59 2009 +0100 +++ b/tools/attrd.c Tue Aug 03 12:43:40 2010 +0900 @@ -56,6 +56,8 @@ GHashTable *attr_hash = NULL; cib_t *cib_conn = NULL; +int g_cib_callback_timeout = 0; + typedef struct attr_hash_entry_s { char *uuid;