uint32_t monitor_interval;
uint32_t tickle_update_interval;
uint32_t script_timeout;
- uint32_t script_ban_count; /* ban after this many consec timeouts*/
+ uint32_t script_timeout_count; /* allow dodgy scripts to hang this many times in a row before we mark the node unhealthy */
uint32_t recovery_grace_period;
uint32_t recovery_ban_period;
uint32_t database_hash_size;
if (status == -ETIME) {
ctdb->event_script_timeouts++;
- if (ctdb->event_script_timeouts > ctdb->tunable.script_ban_count) {
- DEBUG(DEBUG_ERR, ("Maximum timeout count %u reached for eventscript. Making node unhealthy\n", ctdb->tunable.script_ban_count));
+ if (ctdb->event_script_timeouts >= ctdb->tunable.script_timeout_count) {
+ DEBUG(DEBUG_ERR, ("Maximum timeout count %u reached for eventscript. Making node unhealthy\n", ctdb->tunable.script_timeout_count));
} else {
/* We pretend this is OK. */
goto after_change_status;
{ "MonitorInterval", 15, offsetof(struct ctdb_tunable, monitor_interval) },
{ "TickleUpdateInterval",20, offsetof(struct ctdb_tunable, tickle_update_interval) },
{ "EventScriptTimeout", 30, offsetof(struct ctdb_tunable, script_timeout) },
- { "EventScriptBanCount", 10, offsetof(struct ctdb_tunable, script_ban_count) },
+ { "EventScriptTimeoutCount", 1, offsetof(struct ctdb_tunable, script_timeout_count) },
{ "RecoveryGracePeriod", 120, offsetof(struct ctdb_tunable, recovery_grace_period) },
{ "RecoveryBanPeriod", 300, offsetof(struct ctdb_tunable, recovery_ban_period) },
{ "DatabaseHashSize", 10000, offsetof(struct ctdb_tunable, database_hash_size) },