OfferStepperTest is intermittently red on 1.x, and three different tests in it have now failed on three separate occasions. Two issues have already been filed about one test each, and each fixed the one it named: 3616605 gave the gesture test a diagnostic, and 3616873 pinned what a browser test reads after a submit. The class kept going red because the cause is shared and neither issue was scoped to it.

What the diagnostic now says. The trace 3616605 added reports a perfect setup and no request at all: the busy window was open when the gesture was finished with, the value committed was the value typed, and zero requests left afterwards. That is not the queue losing a gesture. It is the queue correctly refusing to dispatch, because Drupal was still working through the answer, for longer than the test was prepared to wait.

Why a loaded runner breaks it. The test holds Drupal busy on purpose, for four seconds, through a timer. A timer is best effort: on a runner whose main thread is contended it fires well past its delay. The outcome is then polled for ten seconds in total, so the whole budget for a four second hold is six seconds of slack, and the queue is still politely waiting when the poll gives up. The failure is reported against the outcome, so a red run reads as a lost gesture rather than as a runner that was too slow.

What to change. No product code. The hold only has to outlast the wait before a click is posted and one catch up after it, which is under half a second, so four seconds buys nothing and costs most of the budget. The outcome budget should be derived from the hold rather than being a bare number that happens to be larger than it. And every test in the class that turns on a timing window should assert its precondition before its outcome, which is the shape 3616605 gave to one of them, so a red run always says which half broke.

AI-Generated: Yes (Claude Code diagnosed this from the CI traces and drafted this summary; I reviewed it before posting.)

Issue fork yoyaku-3616893

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

mably created an issue. See original summary.

mably’s picture

Status: Active » Needs review

  • mably committed cce88cb8 on 1.x
    fix: #3616893 Stop the offer stepper tests failing on a loaded runner...
mably’s picture

Status: Needs review » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.