Migrates match_job_global_limit_()/limit_job_election()/ match_job_host_limit_() (plugins/limit.c) to read plugin->core (added task 1.2) instead of deriving xce_scheduler_t* from plugin->sched, which stays NULL for a plugin registered via plugin_register_core() (simulation mode). Removes the dead ctx.sched write flagged during task 2.1's review -- verified this ctx never has .sched read anywhere downstream. Fixes bug-1828 (found while writing this task's own TDD test for a previously untested code path): match_job_host_limit_() had the same key_find()-negative-rc-treated-as-fatal defect bug-1786 already fixed in its global-limit sibling, but never applied here -- meaning host-scoped resource limits were never actually enforced, in any mode, until this fix (not merely a display gap; the limit's vres was never added to obj->hlimits, so sched_fill_limit_requests() always saw an empty list for it). TDD: new tests drive the real hook-registered entry points against a plugin_register_core()-registered plugin, asserting real usage instances via limit_get_usage_instances() for both global and host-scoped limits. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RLSNJhNoULvVcUhXEFafQC |
||
|---|---|---|
| .. | ||
| autoscaler | ||
| configs | ||
| controller | ||
| docs | ||
| frontend | ||
| harness | ||
| include | ||
| lib | ||
| nixSupport | ||
| scheduler | ||
| schema | ||
| tools | ||
| worker | ||
| xceadmin | ||
| flake.lock | ||
| flake.nix | ||
| meson.build | ||
| meson.options | ||