Stop retrying aborted Karate scenarios#12015
Conversation
Test Environment - sbt-scalatestJob Status: 🟢 success
Baseline: median of |
Test Environment - netflix-zuulJob Status: 🟢 success
Baseline: median of |
This comment has been minimized.
This comment has been minimized.
Test Environment - nebula-release-pluginJob Status: 🟢 success
Baseline: median of |
Test Environment - pass4sJob Status: 🟢 success
Baseline: median of |
Test Environment - heliboardJob Status: 🟢 success
Baseline: median of |
Test Environment - reactive-streams-jvmJob Status: 🟢 success
Baseline: median of |
Test Environment - sonar-kotlinJob Status: 🟢 success
Baseline: median of |
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
Test Environment - jolokiaJob Status: 🟢 success
Baseline: median of |
Test Environment - okhttpJob Status: 🟢 success
Baseline: median of |
Test Environment - spring_bootJob Status: 🟢 success
|
Test Environment - sonar-javaJob Status: 🟢 success
Baseline: median of |
…to daniel.mohedano/karate-stop-aborted-retries
…to daniel.mohedano/karate-stop-aborted-retries
There was a problem hiding this comment.
More details
The PR introduces sound defensive tracking to prevent infinite retry loops when scenarios abort before starting. By recording whether SCENARIO_ENTER fires, the code now correctly skips retry processing for aborted scenarios where the execution policy wouldn't advance. The fix is minimal, targeted, and preserves existing behavior for normal scenarios while fixing the infinite loop on abort.
📊 Validated against 4 scenarios · Open Bits AI session
🤖 Datadog Autotest · Commit 2f85786 · What is Autotest? · Any feedback? Reach out in #autotest
What Does This Do
Traces whether a Karate 2 scenario emitted
SCENARIO_ENTER. Scenarios that return before entering are not finished or retried.Motivation
With
abortSuiteOnFailureenabled,ScenarioRuntime.call()can return before the scenario starts. The retry advice previously attempted to finish a test that did not exist.Since the execution policy was not advanced, it remained applicable and the retry loop could repeatedly execute the aborted scenario without terminating.
Additional Notes
Includes regression coverage for an aborted suite during retry handling.
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]