myxce/src/scheduler/testsuite
Rongsong Shen 0d3f925c4d
fix(scheduler): retire reconciled jobs from picker candidates (bug-1759/1779)
sim_reconcile_unaccounted_jobs() (the mechanism that replays historical
DISPATCH decisions in --sim mode) reconstructed a job's allocation but
never called the picker's on_dispatch() hook, unlike the live allocator
path which always does. The job therefore stayed a live candidate in the
picker's own pendJobs bookkeeping, and sim_picker_thread_fn() (which
unconditionally PENDs whatever it is still offered) kept re-offering and
re-PENDing it every subsequent round -- live-observed as an already-
dispatched job receiving a bogus PEND decision (bug-1759: 22/50 jobs in
one batch; bug-1779: 5/10 array-job elements).

This directly contradicts scheduler-sim-decision-parity's own design.md,
which already documented "the picker never re-decides an already-resolved
job" as the correct assumption -- the implementation had drifted from it.
Fixed by calling on_dispatch() immediately after reconstructing the job's
allocation, mirroring sched_allocator()'s own live-dispatch ordering.

test_sim_verify_no_false_mismatch_across_round_separated_dispatch's own
fixture had baked in the stale-PEND symptom as "expected" data; updated to
match the corrected behavior (dispatch-only round 1, empty filler rounds).
Both design docs updated in place with correction notes.
2026-09-07 07:32:18 +00:00
..
meson.build test(resreq-maxtasks-wiring): verify driver parity, update-immunity, cache 2026-09-06 07:24:04 +00:00
test.c feat(scheduler-core): extract xce_sched_core_t from monolithic scheduler struct (task 4.1) 2026-08-03 10:55:58 +00:00
test_admin_request.c fix(scheduler): wire mem reservation reconciliation into live rusage event path 2026-09-01 07:08:37 +00:00
test_alloc_cache.c feat(scheduler-allocation): implement the unsatisfiable-resreq cache 2026-09-04 17:23:59 +00:00
test_alloc_plan_iter.c feat(scheduler-allocation): add lazy plan/host iterator contracts 2026-09-04 13:50:31 +00:00
test_builtin_fcfs_cursor_uaf.c fix(scheduler): invalidate stale builtin_fcfs picker cursors across calls (bug-1686) 2026-08-25 08:49:43 +00:00
test_clock.c fix(scheduler): clock/resval/jobid-format fixes plus REPL live-operator gaps (task 12.5) 2026-08-19 09:48:46 +00:00
test_core_events.c feat(resreq-maxtasks-wiring): wire fresh job-ingest to real task count 2026-09-06 04:01:23 +00:00
test_core_full_cycle.c fix(scheduler): wire mem reservation reconciliation into live rusage event path 2026-09-01 07:08:37 +00:00
test_core_isolation.c fix(scheduler): extend core-isolation nm-audit to core_events.c/core_session.c/core_clock.c (Req 5 AC 1/2) 2026-08-19 11:00:41 +00:00
test_core_jbuf_capacity_pin.c feat(scheduler-core): pin jbuf capacity + record kvmgr determinism audit (task 4.2) 2026-08-03 14:09:42 +00:00
test_core_session.c feat(worker-rejoin-resync): task 5 - exclude reconciling host from dispatch 2026-09-01 18:38:07 +00:00
test_core_session_cache_clear.c feat(scheduler-allocation): clear unsatisfiable-resreq cache per session 2026-09-05 00:57:46 +00:00
test_driver_decision_cb.c fix(scheduler): wire mem reservation reconciliation into live rusage event path 2026-09-01 07:08:37 +00:00
test_driver_session_ordering.c fix(scheduler): wire mem reservation reconciliation into live rusage event path 2026-09-01 07:08:37 +00:00
test_driver_translate.c fix(scheduler): wire mem reservation reconciliation into live rusage event path 2026-09-01 07:08:37 +00:00
test_handlers.c fix(bug-1737): scheduler can never learn a job finished successfully 2026-08-31 04:20:27 +00:00
test_host_iter.c feat(scheduler-allocation): implement the shared host-candidate iterator 2026-09-04 16:46:03 +00:00
test_job_array_expand.c feat(scheduler-core): implement scheduler-side admin request handler (task 9.4) 2026-08-05 14:11:43 +00:00
test_job_array_wire_e2e.c feat(scheduler-core): implement scheduler-side admin request handler (task 9.4) 2026-08-05 14:11:43 +00:00
test_job_update.c feat(scheduler-allocation): add forward-compatible allocation-mode field 2026-09-04 15:17:30 +00:00
test_limit_plugin.c fix(scheduler): remove double-free in limit plugin config update (bug-1685) 2026-08-25 08:18:34 +00:00
test_maxtasks_wiring_ingest.c test(resreq-maxtasks-wiring): verify driver parity, update-immunity, cache 2026-09-06 07:24:04 +00:00
test_maxtasks_wiring_sim_driver_parity.c test(resreq-maxtasks-wiring): verify driver parity, update-immunity, cache 2026-09-06 07:24:04 +00:00
test_no_bare_printf.c fix(scheduler): sim_print_decision() bypassed tlog, producing inconsistent PEND/DISPATCH/PREEMPT output 2026-08-20 03:02:48 +00:00
test_parjob_combinatorial.c test(scheduler-allocation): prove parjob's shared resource commits once 2026-09-04 21:53:12 +00:00
test_parjob_e2e_multislot.c test(resreq-maxtasks-wiring): retire multislot test's bug-1770 workaround 2026-09-06 07:49:38 +00:00
test_picker_config_fields.c feat(scheduler): reconcile mem reservation against real usage 2026-08-31 07:02:32 +00:00
test_picker_core_loop_boundary.c test(scheduler-core): guard core scheduling loop against ordering-logic regressions (task 2.5) 2026-08-03 09:11:55 +00:00
test_picker_fcfs.c feat(scheduler-core): wire builtin_fcfs as registered default picker (task 2.4) 2026-08-03 08:51:45 +00:00
test_picker_fcfs_session.c feat(scheduler-core): wire builtin_fcfs as registered default picker (task 2.4) 2026-08-03 08:51:45 +00:00
test_picker_iface.c feat(scheduler-core): define job picker plugin contract (task 1.1) 2026-08-03 04:49:55 +00:00
test_picker_pendreason_factory_audit.c feat(scheduler-core): implement session-start signal + decision callback (task 4.4) 2026-08-04 03:08:18 +00:00
test_picker_wiring.c feat(scheduler): reconcile mem reservation against real usage 2026-08-31 07:02:32 +00:00
test_plugin_picker_registration.c feat(scheduler-core): extract xce_sched_core_t from monolithic scheduler struct (task 4.1) 2026-08-03 10:55:58 +00:00
test_record_lifecycle.c fix(scheduler): wire mem reservation reconciliation into live rusage event path 2026-09-01 07:08:37 +00:00
test_recording_path_validation.c feat(scheduler-core): implement record start/stop lifecycle (task 9.2) 2026-08-05 09:07:51 +00:00
test_repl_breakpoints_inspection.c test(resreq-maxtasks-wiring): fix deferred queue-priority assertion 2026-09-06 10:07:49 +00:00
test_repl_equivalence.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_repl_event_echo.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_repl_execution_control.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_repl_help.c test(scheduler-sim-repl-verbosity): task 9.1 - RED tests for help/break discoverability 2026-09-02 20:01:06 +00:00
test_repl_output_compression.c feat(scheduler-sim-repl-verbosity): task 1.1 - RED-phase tests for job identifier range compression 2026-09-02 07:31:31 +00:00
test_repl_prompt_context.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_repl_resource_formatting.c feat(scheduler-sim-repl-verbosity): task 7.1 - RED-phase resource formatting tests 2026-09-02 16:45:59 +00:00
test_repl_resource_table.c fix(scheduler): exclude terminal jobs from assigned-jobs listing (bug-1778) 2026-09-07 07:32:08 +00:00
test_repl_round_rollup.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_repl_snapshot_params.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_repl_step_verbosity.c test(scheduler-sim-step-verbosity): task 1.1 - RED tests for preamble dedup 2026-09-03 03:54:01 +00:00
test_resource_accounting.c feat(scheduler-allocation): add per-host resource-debit reversal 2026-09-04 16:06:59 +00:00
test_resval_ownership.c fix(scheduler): wire mem reservation reconciliation into live rusage event path 2026-09-01 07:08:37 +00:00
test_scheduler_backpressure.c feat(component-failover-adoption): validate scheduler backpressure, fix candidate-name diagnostics 2026-08-11 14:00:02 +00:00
test_scheduler_cache_dispatch.c feat(scheduler-allocation): wire unsatisfiable-resreq cache into dispatch 2026-09-04 23:27:56 +00:00
test_scheduler_cache_dispatch_compound.c feat(scheduler-allocation): wire unsatisfiable-resreq cache into dispatch 2026-09-04 23:27:56 +00:00
test_scheduler_connect.c feat(component-failover-adoption): validate scheduler backpressure, fix candidate-name diagnostics 2026-08-11 14:00:02 +00:00
test_scheduler_decision_publish_retry.c fix(scheduler): close post-failover rejoin detection gap (bug-1760) 2026-09-04 04:37:11 +00:00
test_scheduler_decision_redelivery.c test(component-failover-adoption): add scheduler decision-redelivery queue coverage 2026-08-11 23:50:20 +00:00
test_scheduler_dispatch_commit.c test(scheduler-dispatch-commit): bug-1624 multi-round regression coverage (task 5.1) 2026-08-23 18:40:53 +00:00
test_seqjob_allocator.c feat(scheduler-allocation): rewrap seqjob allocation onto shared iterators 2026-09-04 18:48:49 +00:00
test_seqjob_rewrap_equivalence.c test(scheduler-allocation): prove seqjob rewrap preserves host selection 2026-09-04 19:35:38 +00:00
test_sim_alt_events.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_sim_cache_clear_isolation.c feat(scheduler-allocation): clear unsatisfiable-resreq cache per session 2026-09-05 00:57:46 +00:00
test_sim_contention_parity.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_sim_e2e_original_motivation.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_sim_equivalence.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_sim_event_loop.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_sim_isolation.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_sim_print_decision_gate.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_sim_reconcile_unaccounted.c fix(scheduler): retire reconciled jobs from picker candidates (bug-1759/1779) 2026-09-07 07:32:18 +00:00
test_sim_record_output.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_sim_resource_contention.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_sim_round_boundary_reconciliation.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_sim_session_ordering.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_sim_snapshot_reconcile_gap.c feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers 2026-09-02 17:45:06 +00:00
test_sim_startup.c fix(scheduler): re-derive worker/shared resource used-totals on snapshot load 2026-08-29 11:53:32 +00:00
test_sim_verify.c fix(scheduler): retire reconciled jobs from picker candidates (bug-1759/1779) 2026-09-07 07:32:18 +00:00
test_snapshot_load_allocator_regression.c test(scheduler-snapshot-job-allocation): regression test for allocator crash 2026-08-27 16:31:45 +00:00
test_snapshot_save_load.c feat(resreq-maxtasks-wiring): wire snapshot-restore ingest to real task count 2026-09-06 04:28:48 +00:00