Skip to content

Define how to recover an interrupted Longhorn benchmark #5665

Description

@devantler

🤖 Generated by the Agentic Engineer

Problem

A storage benchmark that stops early keeps its journal and scratch resources for recovery, but no recovery procedure exists. A later run refuses to start while the journal exists. Scratch storage left behind by a V1 run also makes the V2 comparison hold. Today the only way out is working by hand on the cluster.

Acceptance criteria

  • An interrupted run can be recovered by a reviewed, confirmed operation that removes only what that run created.
  • The operation proves the earlier run has finished before acting.
  • The documentation describes it, and a baseline can be measured again afterwards.

Part of #5582

Activity

  1. moved this to 📥 Backlog in 🌊 Project Boardon Nov 1, 2026
  2. added theissue type on Nov 1, 2026
  3. self-assigned this
    on Nov 2, 2026
  4. devantler commented on Nov 2, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Recovery remains held. Public Longhorn source tracing found that an instance-create request can remain in flight after its caller times out, stay absent from the native runtime registry, and subsequently start after a delete reported not found. A stopped custom resource and a list observation therefore do not establish a retirement barrier.

    The admission safeguards can stop new requests and invalidate older Kubernetes status updates, but cannot cancel a create RPC the instance manager already accepted. An upstream native cancellation or per-instance retirement acknowledgement is needed; terminating the shared storage-manager processes is not a sufficient non-disruptive portfolio alternative for this migration. I am preparing a deterministic regression against the public component before proposing a minimal upstream fix. No cleanup or benchmark acceptance is claimed.

  5. added 2 commits that reference this issue on Nov 2, 2026
  6. devantler commented on Nov 2, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    The V1 cancellation fix is locally validated in longhorn/longhorn-instance-manager#1838, but an inherited upstream backport workflow fails validation before any job starts. The failure is present at the upstream base and unaffected by this contribution. No change inside this portfolio can repair that third-party reusable-workflow contract; a minimal public upstream report is necessary to unblock the contribution. Authentication wiring belongs to its maintainers and remains unresolved, so the contribution stays draft rather than claiming CI readiness.

  7. devantler commented on Nov 2, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    A separate native Linux regression at the public instance-manager base 362c0ed7bfe077ab07daa79130c5b827c5f5eeb5 reproduced a delayed-start failure: Stop, StopWithSignal and Kill before Run each still allowed a harmless test subprocess to launch. Holding the native command immediately before Run also allowed Process.Stop to finish its not-running branch before the subprocess launched. The active control launched normally; an already-stopped Process also accepted Start.

    This is outside the pre-registration cancellation patch. A Platform-only state or registry check cannot prevent a delayed native launch, so no in-portfolio alternative supplies that missing guarantee. I am preparing a narrowly scoped public-source V1 start/stop fix and synthetic regression for the owning upstream, without production identities, data or internal review receipts. Hidden replacements and V2 retirement remain separate unresolved gates.

  8. devantler commented on Nov 2, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    The native reusable-workflow validator reproduced the CI blocker in longhorn/longhorn#14454. I prepared the owning central workflow's entrypoint and explicit optional credential contract, preserving its original pull-request event/branch limits and constraining issue linking to the existing destination. Native caller validation, the undeclared-secret negative control, full workflow lint and offline security validation pass.

    A portfolio change cannot make that external workflow callable or replace its reviewed caller pin. I am validating the public-source contract in the existing public contributor fork with a credential-free caller before offering the central fix upstream. This changes no platform runtime, forwards no private data or credentials, and does not establish benchmark recovery or V2 readiness.

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Fields

Priority

None yet

Start date

None yet

Target date

None yet

Effort

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions