Skip to content

Re-measure and re-enable the expensive nested tests (L3/L4, podman-load-over-fuse) post-#630 #660

Description

@ejc3

What

Five nested tests remain #[ignore]d after #630 re-enabled the main suite (the "#630-B" bucket):

Test Current ignore reason Old timing claim
test_nested_l3_network_fuse L3 FUSE-over-FUSE ×2: slow container startup > 10 min
test_nested_l3_network_nfs L3 via NFS: slow untested at L3
test_nested_l3 3-hop FUSE chain "FUSE mount init alone takes 10+ min"
test_nested_l4 4 levels worse than L3
test_podman_load_over_fuse podman load in nested VM "389s in CI (75x slower than L1)"

Why the old timing data is suspect

Every one of these timing claims predates the #630 root-cause fixes and was measured under the pathology. The #630 investigation proved the dominant cost in this family was not FUSE/gzip/NV2-inherent overhead but:

  1. Timer-storm starvation of snapshot-restored/resumed NV2 guests (25–300× slowdown) — fixed in the firecracker fork via KVM_ARM_SET_COUNTER_OFFSET.
  2. Firecracker event-loop starvation after pause→save→resume — bypassed by converging the snapshot-miss path on the restore flow.

Concrete recalibration from the fixed system: podman load of the same ~100 MB archive inside an L1 measured 7.8–8.0s healthy vs >8 minutes under the storm — the very same "389s in CI" class this bucket's ignore reasons cite. test_nested_l2_fuse now passes in ~3 min where it used to time out at 600s.

Plan

  1. Re-measure first, on the post-[meta] Stabilize and re-enable ALL flaky / disabled e2e tests #630 stack (fork with counter-offset fix, converged miss path, stale-NFS-export self-heal, per-level iperf3 ports). One manual run each: make test-root FILTER=<name> IGNORED=1 STREAM=1. Expect L3 to be dramatically cheaper than the 10-min-FUSE-init claim; L4 unknown.
  2. For any test that now fits a sane budget (≤ ~10 min): un-ignore it, place it in the nested-tests nextest group, set the budget from measured data + margin.
  3. For any test still genuinely architecture-bound (multi-hop FUSE latency compounds per level): keep ignored with an accurate, post-[meta] Stabilize and re-enable ALL flaky / disabled e2e tests #630 reason and a measured number — the current reasons cite storm-era data and are misleading.
  4. Run the re-enabled ones N times serialized for flake statistics before merging (same bar as [meta] Stabilize and re-enable ALL flaky / disabled e2e tests #630: zero flakes, no retry-passes).
  5. Optional wall-time follow-up: validate nested-tests at max-threads = 2-3 (one full-suite datapoint at 3-concurrent exists from the [meta] Stabilize and re-enable ALL flaky / disabled e2e tests #630 round-2 validation run); keep serialized if any contention shows.

Dependencies / notes

Refs: #630, #659

Activity

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions