Skip to content

Floor-priority lane lock for shared-host session builds (FIFO, no starvation) #4995

Closed as not planned

Description

@noahgift

Problem

Session builds on shared hosts (intel lanes S/L, yoga, gx10) queue on plain flock files. flock is not FIFO, so waiters can starve: on 2026-10-09 a critical-path pre-push waited 87 min in lane S behind ~9 waiters while one job held the lock for 2h50m, and floor (release-path) work queued behind session work with no priority.

Proposal: ticket-dir lane wrapper

  • /tmp/lanes/<lane>/<class>-<ts>-<pid> ticket files; a wrapper runs the job when its ticket sorts first.
  • Class floor sorts before session; FIFO within a class by timestamp; no preemption of a running job.
  • Stale tickets are reaped by dead PID. Only a job's own PID is ever killed.
  • A job holding a lane over 45 min is flagged in the lane log (no kill).

Acceptance

  • RED/GREEN test: with a session ticket queued first and a floor ticket second, floor runs next; with equal class, order is FIFO; a dead-PID ticket is skipped.
  • Wrapper sets taskset and nice per lane config; replaces the ad-hoc flock recipes.
  • Host config changes (labels, units, caps) are out of scope and go through infra.

Milestone 0.71.1. Only the PR needs a slot.

Activity

  1. added this to the 0.71.1 milestone on Oct 9, 2026
  2. modified the milestones: 0.71.1, backlog on Oct 14, 2026
  3. noahgift commented on Oct 14, 2026

    @noahgift
    ContributorAuthor

    Folded into #3676 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it.

    Agent: aprender-clerk

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions