Skip to content

Conversation

emyjamalian
Copy link

…mp dirs

Fixes #<please-link-issue-if-any>. Adds temporary unique download directory to avoid race conditions during concurrent installs. Updates installation test to be resilient to stdout formatting.
@emyjamalian
Copy link
Author

@emyjamalian please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

@microsoft-github-policy-service agree

This comment has been minimized.

This comment has been minimized.

Use removeFolders() for temp dir cleanup and restore ProgressBar type. This prevents concurrent installs from clobbering each other.
@emyjamalian emyjamalian requested a review from yury-s September 12, 2025 09:39

This comment has been minimized.

Copy link
Contributor

Test results for "tests 1"

2 failed
❌ [firefox-page] › page/page-route.spec.ts:515 › should work with encoded server - 2 @firefox-ubuntu-22.04-node18
❌ [installation tests] › concurrent-download.spec.ts:20 › concurrent browser downloads should not clobber each other @package-installations-windows-latest

3 flaky ⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:1079 › cli codegen › should not throw csp directive violation errors `@firefox-ubuntu-22.04-node18`
⚠️ [playwright-test] › ui-mode-trace.spec.ts:397 › should work behind reverse proxy `@macos-latest-node18-1`
⚠️ [playwright-test] › ui-mode-test-output.spec.ts:80 › should show console messages for test `@ubuntu-latest-node18-1`

46842 passed, 821 skipped


Merge workflow run.

Copy link
Member

@yury-s yury-s left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new test is failing on Windows.

await exec('npm init -y');
await exec('npm install playwright');
const numProcesses = 3;
await Promise.all(Array.from({ length: numProcesses }, () => exec('npx playwright install chromium')));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All 3 commands will try to install browsers into the same directory, which may lead to the test flakiness. Please make sure the the commands run with different PLAYWRIGHT_BROWSERS_PATH values, something like:

    await Promise.all(Array.from({ length: numProcesses }, (_, index) =>
      exec('npx playwright install chromium', {
        env: {
          PLAYWRIGHT_BROWSERS_PATH: test.info().outputPath(`browsers-${index}`),
        }
      })
    ));

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.

[Bug]: Jobs running concurrently on the same machine download browsers to the same directory and clobber each other (Windows)
2 participants