Aglet

Investigate starvation with a controlled arrival stream

A starvation investigation needs enough favored arrivals to test the selector’s long-run behavior while preserving one low-priority job as a witness. Use a controlled stream and fixed worker pool. Trace every available slot and compare the selector’s choice with the age of eligible work.

Build a useful investigation brief

  1. Build a fixed workload mix

    Prepare one eligible low-priority job and a stream of short favored jobs with known ready times. Record expected service opportunities and keep the worker count fixed. Add a quiet control run where no favored arrival competes for the next slot.

  2. Trace service opportunities

    Capture worker-free times, eligible queue contents, selection result, claim, and completion for each interval. Mark when the old job was present but bypassed. If every interval is occupied, record capacity evidence instead of attributing the wait to fairness logic.

  3. Test one fairness boundary

    Exercise a bounded aging rule, reserved service share, or class partition in a controlled environment and compare maximum wait with the original mix. Keep favored completion behavior visible. A change that serves the old job by blocking all urgent work is not a complete result.

What to carry forward

Deliver the arrival mix, worker capacity, missed service opportunities, selector traces, and bounded fairness comparison. State whether starvation is reproduced and under which load. Name the smallest policy boundary to review, with any capacity or eligibility limitation kept explicit.

Technical background: Rails guides.

Keep the decision with the work.

Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.

Create an account See the product workflow