Issue 1:
System info

Playwright Version: [v1.35.1]

Operating System: [Linux, Mac]

Browser: [Chromium]

Other info: Random occurance

Source code

I provided exact source code that allows reproducing the issue locally.

or

Config file

// playwright.config.ts
import { defineConfig, devices } from '@playwright/test';

import { testPlanFilter } from '../node_modules/allure-playwright/dist/testplan';

/**
* Read environment variables from file.
* https://github.com/motdotla/dotenv
*/
// require('dotenv').config();

/**
* @see https://playwright.dev/docs/test-configuration
*/
export default defineConfig({
/* Fail the build on CI if you accidentally left test.only in the source code. */
forbidOnly: !!process.env.CI,

/* Run tests in files in parallel */
fullyParallel: true,
grep: testPlanFilter(),

/* Configure projects for major browsers */
projects: [
{
name: 'Localhost',
use: {
baseURL: 'http://127.0.0.1:2001/',
},
},
{
name: 'Localhost Mobile',
use: {
...devices['Pixel 5'],
baseURL: 'http://127.0.0.1:2001/',
},
},
{
name: 'Production',
use: {
baseURL: 'https://',
},
},
],
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: [
['html', { open: 'never' }],
['list'],
[
'allure-playwright',
{
detail: false,
environmentInfo: {
E2E_NODE_VERSION: process.version,
E2E_OS: process.platform,
},
},
],
],

/* Retry on CI only */
retries: process.env.CI ? 1 : 0,

testDir: './tests',

timeout: 70000,

/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
acceptDownloads: true,
actionTimeout: 10000,
navigationTimeout: 10000,

screenshot: 'only-on-failure',
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: 'on-first-retry',
video: 'retain-on-failure',
viewport: { height: 800, width: 1440 },
},

/* Parallel tests on CI. */
workers: process.env.CI ? 6 : 3,
});

Test file (self-contained)

Reproducible with random tests. The only required conditions are: parallel execution and at least 1 retry

Steps

Run the test in parallel

Some of the tests should be retried

Expected

Execution should stop by itself

Actual

The teardown process hangs and gets killed by timeout for some tests, but workers never stop.

Also I can see the next artifacts:

In CI I'm getting an error about a non-existent screenshot file:

Locally, it just hangs without any issues. But even though the passed test, in this case, is treated as Broken and screenshot+video attached.

Issue 2:
System info

Playwright Version: [v1.32.2]

Operating System: [Ubuntu 20.04]

Browser: [All, Chromium, Firefox, WebKit]

Other info:

Github Codespace image: mcr.microsoft.com/devcontainers/universal:latest

Source code

I provided exact source code that allows reproducing the issue locally.

Config file

// playwright.config.ts
import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
projects: [
{
name: 'edge',
use: { ...devices['Desktop Edge']},
},
{
name: 'chromium',
use: { ...devices['Desktop Chrome']},
},
{
name: 'webkit',
use: { ...devices['Desktop Safari'] },
},
{
name: 'firefox',
use: { ...devices['Desktop Firefox'] },
}
]
});

Test file (self-contained)

import { test, expect } from '@playwright/test';

test('has title', async ({ page }) => {
await page.goto('https://playwright.dev/');

// Expect a title "to contain" a substring.
await expect(page).toHaveTitle(/Playwright/);
});

Steps

Run npm init playwright@latest

Run xvfb-run npx playwright test --debug

Expected

Each browser should open and allow for debugging

Actual

The first test never finishes. See below for log:

I have been scouring the internet for a while now trying to find a solution to this. A couple points from what I have found and tried:

I know that I am using the "mcr.microsoft.com/devcontainers/universal:latest" image and not playwright's official docker image, but my understanding is that this should still work with what I have.

I have tried the --disable-gpu launch flag and that did not work

I have tried manually installing the browser binaries using PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers and PLAYWRIGHT_BROWSERS_PATH=0. Neither option worked.

Finally, thank you very much for your time as I know there are a lot of issues that come into this repo!😄