Skip to content

[internal] chromium headed on macOS ends up in worker teardown timeout error #18229

@mxschmitt

Description

@mxschmitt
Worker teardown timeout of 30000ms exceeded while tearing down "createUserDataDir".

Failed worker ran 275 tests, last 10 tests were:
[chromium] › tests/library/defaultbrowsercontext-1.spec.ts:42:1 › context.addCookies() should work
[chromium] › tests/library/defaultbrowsercontext-1.spec.ts:64:1 › context.clearCookies() should work
[chromium] › tests/library/defaultbrowsercontext-1.spec.ts:83:1 › should(not) block third party cookies
[chromium] › tests/library/defaultbrowsercontext-1.spec.ts:120:1 › should support viewport option
[chromium] › tests/library/defaultbrowsercontext-1.spec.ts:1[27](https://github.com/microsoft/playwright/actions/runs/3292818490/jobs/5428636457#step:9:28):1 › should support deviceScaleFactor option
[chromium] › tests/library/defaultbrowsercontext-1.spec.ts:132:1 › should support userAgent option
[chromium] › tests/library/defaultbrowsercontext-1.spec.ts:142:1 › should support bypassCSP option
[chromium] › tests/library/defaultbrowsercontext-1.spec.ts:149:1 › should support javascriptEnabled option
[chromium] › tests/library/defaultbrowsercontext-1.spec.ts:160:1 › should support httpCredentials option
[chromium] › tests/library/defaultbrowsercontext-1.spec.ts:167:1 › should support offline option
························×···········°·····
Worker teardown timeout of [30](https://github.com/microsoft/playwright/actions/runs/3292818490/jobs/5428636457#step:9:31)000ms exceeded while tearing down "createUserDataDir".

Failed worker ran 1 test:

It hangs here:

if (!runBeforeUnload)
await this._closedPromise;

We never get Target.detachedFromTarget so it does not end up in here:

_onDetachedFromTarget(payload: Protocol.Target.detachFromTargetParameters) {
const targetId = payload.targetId!;
const crPage = this._crPages.get(targetId);
if (crPage) {
this._crPages.delete(targetId);
crPage.didClose();
return;
}
const backgroundPage = this._backgroundPages.get(targetId);
if (backgroundPage) {
this._backgroundPages.delete(targetId);
backgroundPage.didClose();
return;
}
const serviceWorker = this._serviceWorkers.get(targetId);
if (serviceWorker) {
this._serviceWorkers.delete(targetId);
serviceWorker.didClose();
return;
}
}

So far its only reproducible on GitHub Actions with the following command:

npm run test -- --headed --project=chromium --reporter list --repeat-each 50 --workers 1 ibrary/defaultbrowsercontext-1.spec.ts:167:1

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions