From 4325a506351883b191ebe71be2b32d6615e94aa4 Mon Sep 17 00:00:00 2001 From: Ronen Friedman Date: Sun, 9 Mar 2025 10:50:09 -0500 Subject: [PATCH] mds: replace obsolete get_tracked_conf_keys() .. with get_tracked_keys(). As per the original code in this specific case: the vector of keys is expected to be sorted. Following https://github.com/ceph/ceph/pull/61394, all uses of the deprecated interface will be updated, and that old interface will be removed. Signed-off-by: Ronen Friedman --- src/mds/MDSRank.cc | 195 +++++++++++++++++++++------------------------ src/mds/MDSRank.h | 2 +- 2 files changed, 94 insertions(+), 103 deletions(-) diff --git a/src/mds/MDSRank.cc b/src/mds/MDSRank.cc index bc0211fac7c1a..c391b406a85d0 100644 --- a/src/mds/MDSRank.cc +++ b/src/mds/MDSRank.cc @@ -4026,112 +4026,103 @@ void MDSRank::command_cache_drop(uint64_t timeout, Formatter *f, Context *on_fin epoch_t MDSRank::get_osd_epoch() const { - return objecter->with_osdmap(std::mem_fn(&OSDMap::get_epoch)); + return objecter->with_osdmap(std::mem_fn(&OSDMap::get_epoch)); } -const char** MDSRankDispatcher::get_tracked_conf_keys() const +std::vector MDSRankDispatcher::get_tracked_keys() + const noexcept { -#define KEYS \ - "clog_to_graylog", \ - "clog_to_graylog_host", \ - "clog_to_graylog_port", \ - "clog_to_monitors", \ - "clog_to_syslog", \ - "clog_to_syslog_facility", \ - "clog_to_syslog_level", \ - "fsid", \ - "host", \ - "mds_allow_async_dirops", \ - "mds_alternate_name_max", \ - "mds_bal_export_pin", \ - "mds_bal_fragment_dirs", \ - "mds_bal_fragment_fast_factor", \ - "mds_bal_fragment_interval", \ - "mds_bal_fragment_size_max", \ - "mds_bal_interval", \ - "mds_bal_max", \ - "mds_bal_max_until", \ - "mds_bal_merge_size", \ - "mds_bal_mode", \ - "mds_bal_replicate_threshold", \ - "mds_bal_sample_interval", \ - "mds_bal_split_bits", \ - "mds_bal_split_rd", \ - "mds_bal_split_size", \ - "mds_bal_split_wr", \ - "mds_bal_unreplicate_threshold", \ - "mds_cache_memory_limit", \ - "mds_cache_mid", \ - "mds_cache_quiesce_decay_rate", \ - "mds_cache_quiesce_sleep", \ - "mds_cache_quiesce_threshold", \ - "mds_cache_reservation", \ - "mds_cache_trim_decay_rate", \ - "mds_cap_acquisition_throttle_retry_request_time", \ - "mds_cap_revoke_eviction_timeout", \ - "mds_debug_subtrees", \ - "mds_dir_max_entries", \ - "mds_dump_cache_threshold_file", \ - "mds_dump_cache_threshold_formatter", \ - "mds_enable_op_tracker", \ - "mds_export_ephemeral_distributed", \ - "mds_export_ephemeral_random", \ - "mds_export_ephemeral_random_max", \ - "mds_extraordinary_events_dump_interval", \ - "mds_forward_all_requests_to_auth", \ - "mds_health_cache_threshold", \ - "mds_heartbeat_grace", \ - "mds_heartbeat_reset_grace", \ - "mds_inject_journal_corrupt_dentry_first", \ - "mds_inject_migrator_session_race", \ - "mds_inject_rename_corrupt_dentry_first", \ - "mds_kill_dirfrag_at", \ - "mds_kill_shutdown_at", \ - "mds_log_event_large_threshold", \ - "mds_log_events_per_segment", \ - "mds_log_major_segment_event_ratio", \ - "mds_log_max_events", \ - "mds_log_max_segments", \ - "mds_log_pause", \ - "mds_log_skip_corrupt_events", \ - "mds_log_skip_unbounded_events", \ - "mds_log_trim_decay_rate", \ - "mds_log_trim_threshold", \ - "mds_max_caps_per_client", \ - "mds_max_export_size", \ - "mds_max_purge_files", \ - "mds_max_purge_ops", \ - "mds_max_purge_ops_per_pg", \ - "mds_max_snaps_per_dir", \ - "mds_op_complaint_time", \ - "mds_op_history_duration", \ - "mds_op_history_size", \ - "mds_op_log_threshold", \ - "mds_recall_max_decay_rate", \ - "mds_recall_warning_decay_rate", \ - "mds_request_load_average_decay_rate", \ - "mds_server_dispatch_client_request_delay", \ - "mds_server_dispatch_killpoint_random", \ - "mds_session_cache_liveness_decay_rate", \ - "mds_session_cap_acquisition_decay_rate", \ - "mds_session_cap_acquisition_throttle", \ - "mds_session_max_caps_throttle_ratio", \ - "mds_session_metadata_threshold", \ + static constexpr auto as_sv = std::to_array({ + "clog_to_graylog", + "clog_to_graylog_host", + "clog_to_graylog_port", + "clog_to_monitors", + "clog_to_syslog", + "clog_to_syslog_facility", + "clog_to_syslog_level", + "fsid", + "host", + "mds_allow_async_dirops", + "mds_alternate_name_max", + "mds_bal_export_pin", + "mds_bal_fragment_dirs", + "mds_bal_fragment_fast_factor", + "mds_bal_fragment_interval", + "mds_bal_fragment_size_max", + "mds_bal_interval", + "mds_bal_max", + "mds_bal_max_until", + "mds_bal_merge_size", + "mds_bal_mode", + "mds_bal_replicate_threshold", + "mds_bal_sample_interval", + "mds_bal_split_bits", + "mds_bal_split_rd", + "mds_bal_split_size", + "mds_bal_split_wr", + "mds_bal_unreplicate_threshold", + "mds_cache_memory_limit", + "mds_cache_mid", + "mds_cache_quiesce_decay_rate", + "mds_cache_quiesce_sleep", + "mds_cache_quiesce_threshold", + "mds_cache_reservation", + "mds_cache_trim_decay_rate", + "mds_cap_acquisition_throttle_retry_request_time", + "mds_cap_revoke_eviction_timeout", + "mds_debug_subtrees", + "mds_dir_max_entries", + "mds_dump_cache_threshold_file", + "mds_dump_cache_threshold_formatter", + "mds_enable_op_tracker", + "mds_export_ephemeral_distributed", + "mds_export_ephemeral_random", + "mds_export_ephemeral_random_max", + "mds_extraordinary_events_dump_interval", + "mds_forward_all_requests_to_auth", + "mds_health_cache_threshold", + "mds_heartbeat_grace", + "mds_heartbeat_reset_grace", + "mds_inject_journal_corrupt_dentry_first", + "mds_inject_migrator_session_race", + "mds_inject_rename_corrupt_dentry_first", + "mds_kill_dirfrag_at", + "mds_kill_shutdown_at", + "mds_log_event_large_threshold", + "mds_log_events_per_segment", + "mds_log_major_segment_event_ratio", + "mds_log_max_events", + "mds_log_max_segments", + "mds_log_pause", + "mds_log_skip_corrupt_events", + "mds_log_skip_unbounded_events", + "mds_log_trim_decay_rate", + "mds_log_trim_threshold", + "mds_max_caps_per_client", + "mds_max_export_size", + "mds_max_purge_files", + "mds_max_purge_ops", + "mds_max_purge_ops_per_pg", + "mds_max_snaps_per_dir", + "mds_op_complaint_time", + "mds_op_history_duration", + "mds_op_history_size", + "mds_op_log_threshold", + "mds_recall_max_decay_rate", + "mds_recall_warning_decay_rate", + "mds_request_load_average_decay_rate", + "mds_server_dispatch_client_request_delay", + "mds_server_dispatch_killpoint_random", + "mds_session_cache_liveness_decay_rate", + "mds_session_cap_acquisition_decay_rate", + "mds_session_cap_acquisition_throttle", + "mds_session_max_caps_throttle_ratio", + "mds_session_metadata_threshold", "mds_symlink_recovery" - - constexpr bool is_sorted = [] () constexpr { - constexpr auto arr = std::to_array({KEYS}); - for (unsigned long i = 0; i < arr.size()-1; ++i) { - if (arr[i] > arr[i+1]) { - return false; - } - } - return true; - }(); - static_assert(is_sorted, "keys are not sorted!"); - - static char const* keys[] = {KEYS, nullptr}; - return keys; + }); + static_assert(std::is_sorted(as_sv.begin(), as_sv.end()), + "keys are not sorted!"); + return {as_sv.begin(), as_sv.end()}; } void MDSRankDispatcher::handle_conf_change(const ConfigProxy& conf, const std::set& changed) diff --git a/src/mds/MDSRank.h b/src/mds/MDSRank.h index 9135db40c0992..20754fec4177c 100644 --- a/src/mds/MDSRank.h +++ b/src/mds/MDSRank.h @@ -736,7 +736,7 @@ public: void handle_osd_map(); void update_log_config(); - const char** get_tracked_conf_keys() const override final; + std::vector get_tracked_keys() const noexcept final; void handle_conf_change(const ConfigProxy& conf, const std::set& changed) override; void dump_sessions(const SessionFilter &filter, Formatter *f, bool cap_dump=false) const; -- 2.39.5