Skip to content

UI test suite: fixture buffer held two copies of the fixture (unexplained) #175

Description

@tw0po1nt

What happened

On run 31291396179, the UI test suite failed three times. Each attempt failed at the first assertion of the core path check:

Error: Timed out after 45000 ms waiting for a Run request lens above each of the two blocks

The failure screenshots show the cause. The editor buffer for core-path.fsx held two copies of the fixture. The second copy starts at line 30. The fixture defines two request blocks, so a doubled buffer renders four CodeLenses. tryRunRequestLensAboveEachBlock asserts a count of exactly two, so the predicate could never hold.

The check then used the full 45 s lens deadline. PerCheckBudgetMs is also 45 s, so the harness reported a second failure in afterEach at 50036 ms. Both errors have one cause.

What the evidence rules out

  • The commit. Commit e5b5f84 failed, then passed on a re-run with no change to the code. Run 31291396179 records both results.
  • The fixture file. tests/ui.Tests/fixtures/core-path.fsx contains 29 lines on main, on the branch, and on the pull request merge ref.
  • State from an earlier run. The workflow caches the VSCode and chromedriver binaries only. run.sh deletes $STORAGE/settings before each attempt.
  • The extension. The check failed before it clicked a lens, so no Run occurred. FsHttp.Studio never wrote to the buffer.

What the evidence does not explain

The failure repeated on all three attempts of the retry action, and each attempt started from a new VSCode profile. This behavior is not an intermittent fault. The same commit then passed on a different runner.

The cause is therefore in the ExTester, openResource, or xvfb layer. This issue records the evidence. It does not ask for a fix.

Why this issue exists

The condition is expensive to reconstruct later. This issue holds the run IDs and the screenshots so that a second occurrence has a place to land.

What to do on a recurrence

  1. Download the failure screenshots from the run artifacts.
  2. Confirm whether the editor buffer holds more than one copy of the fixture.
  3. Add the run ID to this issue.
  4. If the condition repeats on more than one runner, open a ticket for a fix.

Related

Issue #174 improves the failure message so that a recurrence names the observed lens count in the log.

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

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions