s4-libcli: Remove obsolete support for file resolving.
[obnox/samba/samba-obnox.git] / ctdb / server / ctdb_tunables.c
index 2d2580d6a1907a17f0417af4cf15e99d43d8a9e9..069958653f108bdf414f9c55a7e3b8c595bbfb58 100644 (file)
 static const struct {
        const char *name;
        uint32_t default_v;
-       size_t offset;  
+       size_t offset;
+       bool obsolete;
 } tunable_map[] = {
-       { "MaxRedirectCount",     3,  offsetof(struct ctdb_tunable, max_redirect_count) },
-       { "SeqnumInterval",      1000,  offsetof(struct ctdb_tunable, seqnum_interval) },
-       { "ControlTimeout",      60, offsetof(struct ctdb_tunable, control_timeout) },
-       { "TraverseTimeout",     20, offsetof(struct ctdb_tunable, traverse_timeout) },
-       { "KeepaliveInterval",    5,  offsetof(struct ctdb_tunable, keepalive_interval) },
-       { "KeepaliveLimit",       5,  offsetof(struct ctdb_tunable, keepalive_limit) },
-       { "MaxLACount",           7,  offsetof(struct ctdb_tunable, max_lacount) },
-       { "RecoverTimeout",      20,  offsetof(struct ctdb_tunable, recover_timeout) },
-       { "RecoverInterval",      1,  offsetof(struct ctdb_tunable, recover_interval) },
-       { "ElectionTimeout",      3,  offsetof(struct ctdb_tunable, election_timeout) },
-       { "TakeoverTimeout",      5,  offsetof(struct ctdb_tunable, takeover_timeout) },
-       { "MonitorInterval",     15,  offsetof(struct ctdb_tunable, monitor_interval) },
-       { "TickleUpdateInterval",20,  offsetof(struct ctdb_tunable, tickle_update_interval) },
-       { "EventScriptTimeout",  20,  offsetof(struct ctdb_tunable, script_timeout) },
-       { "EventScriptBanCount",  5,  offsetof(struct ctdb_tunable, script_ban_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) },
-       { "DatabaseMaxDead",      5,  offsetof(struct ctdb_tunable, database_max_dead) },
-       { "RerecoveryTimeout",   10,  offsetof(struct ctdb_tunable, rerecovery_timeout) },
-       { "EnableBans",           1,  offsetof(struct ctdb_tunable, enable_bans) },
-       { "DeterministicIPs",     1,  offsetof(struct ctdb_tunable, deterministic_public_ips) },
-       { "DisableWhenUnhealthy", 0,  offsetof(struct ctdb_tunable, disable_when_unhealthy) },
-       { "ReclockPingPeriod",   60,  offsetof(struct ctdb_tunable,  reclock_ping_period) },
-       { "NoIPFailback",         0,  offsetof(struct ctdb_tunable, no_ip_failback) },
-       { "VerboseMemoryNames",   0,  offsetof(struct ctdb_tunable, verbose_memory_names) },
-       { "RecdPingTimeout",     60,  offsetof(struct ctdb_tunable, recd_ping_timeout) },
-       { "RecdFailCount",       10,  offsetof(struct ctdb_tunable, recd_ping_failcount) },
-       { "LogLatencyMs",         0,  offsetof(struct ctdb_tunable, log_latency_ms) },
-       { "RecLockLatencyMs",  1000,  offsetof(struct ctdb_tunable, reclock_latency_ms) },
-       { "RecoveryDropAllIPs",  60,  offsetof(struct ctdb_tunable, recovery_drop_all_ips) },
-       { "VerifyRecoveryLock",   1,  offsetof(struct ctdb_tunable, verify_recovery_lock) },
-       { "VacuumDefaultInterval", 10,  offsetof(struct ctdb_tunable, vacuum_default_interval) },
-       { "VacuumMaxRunTime",      5,  offsetof(struct ctdb_tunable, vacuum_max_run_time) },
+       { "MaxRedirectCount",     3,  offsetof(struct ctdb_tunable, max_redirect_count), false },
+       { "SeqnumInterval",      1000,  offsetof(struct ctdb_tunable, seqnum_interval), false },
+       { "ControlTimeout",      60, offsetof(struct ctdb_tunable, control_timeout), false },
+       { "TraverseTimeout",     20, offsetof(struct ctdb_tunable, traverse_timeout), false },
+       { "KeepaliveInterval",    5,  offsetof(struct ctdb_tunable, keepalive_interval), false },
+       { "KeepaliveLimit",       5,  offsetof(struct ctdb_tunable, keepalive_limit), false },
+       { "RecoverTimeout",     120,  offsetof(struct ctdb_tunable, recover_timeout), false },
+       { "RecoverInterval",      1,  offsetof(struct ctdb_tunable, recover_interval), false },
+       { "ElectionTimeout",      3,  offsetof(struct ctdb_tunable, election_timeout), false },
+       { "TakeoverTimeout",      9,  offsetof(struct ctdb_tunable, takeover_timeout), false },
+       { "MonitorInterval",     15,  offsetof(struct ctdb_tunable, monitor_interval), false },
+       { "TickleUpdateInterval",20,  offsetof(struct ctdb_tunable, tickle_update_interval), false },
+       { "EventScriptTimeout",  30,  offsetof(struct ctdb_tunable, script_timeout), false },
+       { "EventScriptTimeoutCount", 20,  offsetof(struct ctdb_tunable, script_timeout_count), false },
+       { "EventScriptUnhealthyOnTimeout", 0, offsetof(struct ctdb_tunable, script_unhealthy_on_timeout), true },
+       { "RecoveryGracePeriod", 120,  offsetof(struct ctdb_tunable, recovery_grace_period), false },
+       { "RecoveryBanPeriod",  300,  offsetof(struct ctdb_tunable, recovery_ban_period), false },
+       { "DatabaseHashSize", 100001, offsetof(struct ctdb_tunable, database_hash_size), false },
+       { "DatabaseMaxDead",      5,  offsetof(struct ctdb_tunable, database_max_dead), false },
+       { "RerecoveryTimeout",   10,  offsetof(struct ctdb_tunable, rerecovery_timeout), false },
+       { "EnableBans",           1,  offsetof(struct ctdb_tunable, enable_bans), false },
+       { "DeterministicIPs",     0,  offsetof(struct ctdb_tunable, deterministic_public_ips), false },
+       { "LCP2PublicIPs",        1,  offsetof(struct ctdb_tunable, lcp2_public_ip_assignment), false },
+       { "ReclockPingPeriod",   60,  offsetof(struct ctdb_tunable,  reclock_ping_period), false },
+       { "NoIPFailback",         0,  offsetof(struct ctdb_tunable, no_ip_failback), false },
+       { "DisableIPFailover",    0,  offsetof(struct ctdb_tunable, disable_ip_failover), false },
+       { "VerboseMemoryNames",   0,  offsetof(struct ctdb_tunable, verbose_memory_names), false },
+       { "RecdPingTimeout",     60,  offsetof(struct ctdb_tunable, recd_ping_timeout), false },
+       { "RecdFailCount",       10,  offsetof(struct ctdb_tunable, recd_ping_failcount), false },
+       { "LogLatencyMs",         0,  offsetof(struct ctdb_tunable, log_latency_ms), false },
+       { "RecLockLatencyMs",  1000,  offsetof(struct ctdb_tunable, reclock_latency_ms), false },
+       { "RecoveryDropAllIPs", 120,  offsetof(struct ctdb_tunable, recovery_drop_all_ips), false },
+       { "VerifyRecoveryLock",   1,  offsetof(struct ctdb_tunable, verify_recovery_lock), false },
+       { "VacuumInterval",   10,  offsetof(struct ctdb_tunable, vacuum_interval), false },
+       { "VacuumMaxRunTime",     120,  offsetof(struct ctdb_tunable, vacuum_max_run_time), false },
+       { "RepackLimit",      10000,  offsetof(struct ctdb_tunable, repack_limit), false },
+       { "VacuumLimit",       5000,  offsetof(struct ctdb_tunable, vacuum_limit), false },
+       { "VacuumFastPathCount", 60, offsetof(struct ctdb_tunable, vacuum_fast_path_count), false },
+       { "MaxQueueDropMsg",  1000000, offsetof(struct ctdb_tunable, max_queue_depth_drop_msg), false },
+       { "UseStatusEvents",     0,  offsetof(struct ctdb_tunable, use_status_events_for_monitoring), false },
+       { "AllowUnhealthyDBRead", 0,  offsetof(struct ctdb_tunable, allow_unhealthy_db_read), false },
+       { "StatHistoryInterval",  1,  offsetof(struct ctdb_tunable, stat_history_interval), false },
+       { "DeferredAttachTO",  120,  offsetof(struct ctdb_tunable, deferred_attach_timeout), false },
+       { "AllowClientDBAttach", 1, offsetof(struct ctdb_tunable, allow_client_db_attach), false },
+       { "RecoverPDBBySeqNum",  1, offsetof(struct ctdb_tunable, recover_pdb_by_seqnum), false },
+       { "DeferredRebalanceOnNodeAdd", 300, offsetof(struct ctdb_tunable, deferred_rebalance_on_node_add) },
+       { "FetchCollapse",       1, offsetof(struct ctdb_tunable, fetch_collapse) },
+       { "HopcountMakeSticky",   50,  offsetof(struct ctdb_tunable, hopcount_make_sticky) },
+       { "StickyDuration",      600,  offsetof(struct ctdb_tunable, sticky_duration) },
+       { "StickyPindown",       200,  offsetof(struct ctdb_tunable, sticky_pindown) },
+       { "NoIPTakeover",         0,  offsetof(struct ctdb_tunable, no_ip_takeover), false },
+       { "DBRecordCountWarn",    100000,  offsetof(struct ctdb_tunable, db_record_count_warn), false },
+       { "DBRecordSizeWarn",   10000000,  offsetof(struct ctdb_tunable, db_record_size_warn), false },
+       { "DBSizeWarn",        100000000,  offsetof(struct ctdb_tunable, db_size_warn), false },
+       { "PullDBPreallocation", 10*1024*1024,  offsetof(struct ctdb_tunable, pulldb_preallocation_size), false },
+       { "NoIPHostOnAllDisabled",    0,  offsetof(struct ctdb_tunable, no_ip_host_on_all_disabled), false },
+       { "Samba3AvoidDeadlocks", 0, offsetof(struct ctdb_tunable, samba3_hack), false },
+       { "TDBMutexEnabled", 0, offsetof(struct ctdb_tunable, mutex_enabled), false },
+       { "LockProcessesPerDB", 200, offsetof(struct ctdb_tunable, lock_processes_per_db), false },
 };
 
 /*
@@ -99,7 +125,7 @@ int32_t ctdb_control_get_tunable(struct ctdb_context *ctdb, TDB_DATA indata,
        talloc_free(name);
        
        if (i == ARRAY_SIZE(tunable_map)) {
-               return -1;
+               return -EINVAL;
        }
 
        val = *(uint32_t *)(tunable_map[i].offset + (uint8_t*)&ctdb->tunable);
@@ -168,6 +194,9 @@ int32_t ctdb_control_list_tunables(struct ctdb_context *ctdb, TDB_DATA *outdata)
        CTDB_NO_MEMORY(ctdb, list);
 
        for (i=1;i<ARRAY_SIZE(tunable_map);i++) {
+               if (tunable_map[i].obsolete) {
+                       continue;
+               }
                list = talloc_asprintf_append(list, ":%s", tunable_map[i].name);
                CTDB_NO_MEMORY(ctdb, list);             
        }