fix(pool): keep schedulable keys when stale inactive scores exist

- delete pool member scores when a provider key is deactivated
- fall through to the catalog key scan when the pool score page is empty
- log skipped local candidates with a skip_reason for diagnosis
- add regressions for inactive keys with stale available scores
This commit is contained in:
hkxiaoyao
2026-09-14 20:42:47 +08:00
parent 60b89cc840
commit 7daf355e65
4 changed files with 178 additions and 1 deletions
@@ -23,6 +23,16 @@ pub(super) fn resolve_scheduler_candidate_selectability(
if let Some(skip_reason) =
current_candidate_runtime_skip_reason(&candidate, runtime_snapshot, now_unix_secs)
{
tracing::debug!(
event_name = "scheduler_candidate_skipped",
log_type = "event",
provider_id = %candidate.provider_id,
endpoint_id = %candidate.endpoint_id,
key_id = %candidate.key_id,
api_format = %candidate.endpoint_api_format,
skip_reason,
"scheduler candidate skipped during runtime selectability resolution"
);
if emitted_skipped_keys.insert(key) {
skipped.push(SchedulerSkippedCandidate {
candidate,