Skip to content

[draft] Unmount: separate the request deadline from the join observation deadline #4

Closed

Description

@mengmengmengqiang

Draft — review before filing upstream. Design cleanup; no behavior change on its own.

Current state

DRAIN_WAIT (5 s) bounds both the request wait and the observation of the receive-loop join. Ephemeral-AI-Lab#497 adds JOIN_WAIT = 1 s for the join once requests are quiescent; the request wait still uses the full DRAIN_WAIT.

Proposal

Make the two waits explicit in code and docs (two names/constants, or a small struct), so a future fix cannot "just raise DRAIN_WAIT" again. Defaults unchanged: 5 s requests, 1 s join after quiescence.

Data behind the defaults

  • normal unmount: n=20, 17–44 ms with the grace; 20–82 ms without.
  • 500 ms was rejected because one healthy unmount took 374 ms under load; 1 s keeps ~2.7× margin.
  • early-mount stall: 5.0–5.6 s with the 5 s wait; 1.02–1.47 s with 1 s.

Acceptance

  • names/doc explain which wait covers what; no behavioral change; existing tests unchanged.
  • the abort still fires on the request deadline (DRAIN_WAIT); the join grace only bounds observation — a split must not change that.

Activity

  1. mengmengmengqiang commented on Oct 28, 2026

    @mengmengmengqiang
    CollaboratorAuthor

    Closing in favour of a note on Ephemeral-AI-Lab#497: after Ephemeral-AI-Lab#497 the two waits are already separate constants (DRAIN_WAIT for requests, JOIN_WAIT for the join). What remains is naming/documentation, not a design change, so a separate issue adds noise.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions