Skip to content

chore: harden comparison harness for spot-cluster runs - #33

Merged
merlimat merged 1 commit into
mainfrom
comparison-harness-crash-tolerance
Jul 9, 2026
Merged

chore: harden comparison harness for spot-cluster runs#33
merlimat merged 1 commit into
mainfrom
comparison-harness-crash-tolerance

Conversation

@merlimat

@merlimat merlimat commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Improvements to scripts/run-comparison.sh surfaced by running the comparison on an EKS spot cluster.

  • Tolerate transient CrashLoopBackOff. Spot-node preemption / OOM during Karpenter scale-up briefly crash-loops pods; the old fail-fast bailed on the first CrashLoopBackOff. Now it bails immediately only on unrecoverable image errors (ImagePullBackOff/ErrImagePull/InvalidImageName), and treats CrashLoopBackOff as terminal only once a container has restarted CRASH_RESTART_LIMIT times (default 5).
  • Dump the crashing pods before the sweep. When it does bail on a crash loop, print each crashing pod's container states + --previous logs, so the failure reason lands in the run output instead of being swept away.
  • WORKER_CPU knob to override the per-backend worker CPU request/limit, mirroring the existing WORKER_REPLICAS.

Verification

Used across the YCSB comparison + scaling sweeps: the tolerance let oxia survive transient spot churn (a run that previously aborted), and the restart limit correctly distinguished a genuine crash loop from a transient one, dumping its reason.

Improvements to run-comparison.sh from running the comparison on an EKS spot
cluster:

- Tolerate transient CrashLoopBackOff. Spot-node preemption / OOM during
  autoscale briefly crash-loops pods; the old fail-fast bailed on the first
  CrashLoopBackOff. Now it bails immediately only on unrecoverable image errors,
  and treats CrashLoopBackOff as terminal only after CRASH_RESTART_LIMIT
  (default 5) restarts.
- Dump the crashing pods (container states + --previous logs) before the sweep,
  so a genuine crash loop's reason is captured in the run output.
- Add a WORKER_CPU knob to override the per-backend worker CPU request/limit,
  mirroring the existing WORKER_REPLICAS.

Signed-off-by: Matteo Merli <mmerli@apache.org>
@merlimat
merlimat merged commit ba93720 into main Jul 9, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant