Skip to content

bug(e2e): file_transfer::upload_download_round_trip stalls on the k3s-ha conformance row #5520

Open

Description

@elezar

User Story

I contribute tests and CI changes to OpenShell and rely on the conformance-integration checks on my pull requests. I directly encountered file_transfer::upload_download_round_trip failing on the ubuntu-k3s, k3s-ha row in a PR that did not change that test, and I need to know whether the row is reliable so that a red result can be trusted as a real signal.

Problem Statement

On the conformance-integration / E2E suites (conformance/conformance, ubuntu-k3s, k3s-ha) row, file_transfer::upload_download_round_trip intermittently stalls. It has failed in two different ways:

  1. In Pre-release run 42222713989, job 127919027697, the test hit nextest's 120 s limit (recorded in test(e2e): surface where a conformance test stalls and keep logs that cover it #5333).
  2. In run 43231863950, job 131237846938 (PR test(conformance): port sandbox lifecycle and API e2e tests to testkit #5431, head b013446be), the test reached cleanup and delete sandbox test-62v5f1mu-fr timed out after 120 s. The test took 254 s in total. The same row passed on the PR's previous head, and the new commit does not touch file_transfer.

In the second case the sandbox pod started normally and was told to stop about 6 s into the delete. By the time diagnostics ran, no sandbox or pod was left, so the delete completed, but after the 120 s limit.

Both failures are on the three-replica gateway row, and both are in the file_transfer suite. I have not established that they share a root cause. The other conformance rows (Docker, Podman, single-replica k3s) passed in the same runs.

Impact / Why This Matters

A red k3s-ha row on an unrelated change forces a rerun of a lane that takes tens of minutes, and reviewers cannot tell a real regression from this flake. Until the cause is known, the row's result is less trustworthy than the others.

The evidence is also thin. #5333 covers the missing diagnostics: the gateway log tails on this row are too short to cover the stall, the run's gateway.log artifact was one line, and the controller log had no entry for the sandbox. Root-causing this likely needs #5333 first.

Acceptance Criteria

  • The cause of the stall is identified, whether in the gateway, the Kubernetes driver, the agent-sandbox controller, or the test.
  • file_transfer::upload_download_round_trip passes reliably on the k3s-ha row, or the row's timeout is changed on the basis of that cause.
  • If it is not fixed, the failure carries enough evidence to diagnose it (see test(e2e): surface where a conformance test stalls and keep logs that cover it #5333).

Reproduction

Not reproduced locally. It appears intermittently on the k3s-ha row of conformance-integration. Both occurrences above link the job and artifact.

Related

Activity

  1. matthewgrossman commented on Nov 12, 2026

    @matthewgrossman
    Member

    Two more occurrences on the same row, both from PR #5431. Each time, a sandbox that usually finishes in 10–20 s hangs in Kubernetes. The failing test is different each time, and all three predate #5431.

    Run Failed test (position in suite) Symptom
    42920206036, job 130200088405 (Nov 10) cli::cli_stop_start_delete (2nd, about 1 minute in) sandbox delete returned Internal error: delete sandbox failed: ServiceError: request timed out
    43231863950, job 131289925873 (re-run) file_transfer::upload_respects_gitignore (12th) cleanup delete timed out after 120 s (253 s total)
    same job persistent_workspace::persistent_workspace_survives_stop_start after the start, the new pod never became ready (614 s)

    The re-run is the only one that captured a lower-level cause. The pod's openshell-sandbox-bootstrap container failed to start:

    runc create failed: unable to start container process: unable to apply cgroup configuration:
    unable to start unit "cri-containerd-openshell-sandbox-bootstrap.scope" ...:
    Message recipient disconnected from message bus without replying
    

    The same error hit an unrelated os-supervisor-* pod at the same time. So systemd/D-Bus on the tmachine VM stopped answering runc's scope requests. That matches the delete and stop hangs.

    Ruled out in all three runs:

    • no sandboxes left at the end;
    • k3s NRestarts=0;
    • about 2.6 GB of the VM's 3.9 GB memory still available, disk 36% used;
    • agent-sandbox controller restarts happened only during environment setup, before any test ran.

    The k3s journal in the diagnostics covers only the last seconds of the run, so it doesn't show what happened to systemd/D-Bus. #5334 (time-bounded journals) would capture it, ideally with the system journal (journalctl --since <run start>, not just the k3s unit).

    Possibly relevant: #5431 runs 36 tests on this row instead of 22, so it spends longer on the VM. But the Nov 10 failure came about 1 minute in, so suite length alone doesn't explain it.

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