Issue 1:
Context:

System:

2020 Macbook 13"

OS: macOS Monterey 12.0.1

Memory: 12.2 GB / 16 GB LPDDR4X

CPU: 2 GHz Intel Core i5 Quad-core

Binaries:

Node: 14.17.5

npm: 6.14.14

npmPackages:

playwright: ^1.20.0 => 1.20.0

Describe the bug

Running "npx playwright codegen google.com" and doing no further actions will stay up for around 1 minute each time and then crash the debugger and the test browser window, I've done about 5 consecutive tests with a timer to check this. I've asked colleagues (they have a basically same specced mac) to do the same with the same results. I've noticed this issue while doing some initial setup on our locally ran application, but to debug the issue further I tested this on google.com and the behavior is the same.

Also noticed after checking other issue previously reported that using debug mode on the tests also crashes after 1 minute.

All of this on chromium.

Issue 2:
Context:

Playwright Version: 1.20.0

Operating System: Macos 11.6.5

Python version: Python 3.10.2

Browser: Chromium

Code Snippet

The easiest way to replicate this issue is to just add a breakpoint in the following snippet after launching the browser, e.g. line 5, and then initialize the debugger and wait for it to reach the breakpoint. Then just wait and Chromium will suddenly close all on its own within a minute or two.

with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
page = browser.new_page()
page.goto("http://playwright.dev/")
print(page.title())
browser.close()

Describe the bug

This issue began to occur after upgrading playwright to version 1.20.0 on my local machine. We have ~30 playwright tests that get parameterized to run in both Firefox and Chromium and I validated that everything was working by running the full test suite inside an Ubuntu Focal Docker container. So far, so good. The issue started to occur when I was helping a colleague debug an issue in headed mode and my chromium browser kept quitting in the middle of the debug session. The Playwright process continued running.

Then I tried running our full test suite locally in MacOS and after about 15-17 tests, all of the remaining chromium tests would instantly fail with an error indicating the page was already closed. This is extremely consistent and persisted through reboots and rebuilding my venv (I had been testing a pytest-parallel plugin and wanted to make sure it wasn't interfering) and only stops occurring when I downgrade playwright to 1.18.2 which is the last stable version we were using. I've included the traceback from the first chromium test that fails during each session. Seems to be some kind of memory error.

TLDR

Playwright 1.20.0 Chromium appears to crash after running for a minute or two on MacOS

Firefox does not exhibit this issue (I haven't tested webkit)

This issue does not occur in Linux (haven't tested windows)

This is a regression since 1.18.2 which was the last version I tested (we skipped over 1.19.x)

Traceback

self = <playwright._impl._connection.Channel object at 0x1089be530>
method = 'click', params = {'selector': 'a[href="/app/edit-recruiter-profile"]'}
return_as_dict = False
async def inner_send(
self, method: str, params: Optional[Dict], return_as_dict: bool
) -> Any:
if params is None:
params = {}
callback = self._connection._send_message_to_server(self._guid, method, params)
if self._connection._error:
error = self._connection._error
self._connection._error = None
raise error
done, _ = await asyncio.wait(
{
self._connection._transport.on_error_future,
callback.future,
},
return_when=asyncio.FIRST_COMPLETED,
)
if not callback.future.done():
callback.future.cancel()
> result = next(iter(done)).result()
E playwright._impl._api_types.Error: Browser closed.
E ==================== Browser output: ====================
E <launching> /Users/silasj/Library/Caches/ms-playwright/chromium-978106/chrome-mac/Chromium.app/Contents/MacOS/Chromium --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,AcceptCHFrame,AutoExpandDetailsElement --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-sync --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --enable-use-zoom-for-dsf=false --no-sandbox --user-data-dir=/var/folders/kv/d09mrzfj49l9yp6hqzg58v840000gn/T/playwright_chromiumdev_profile-ibOEpD --remote-debugging-pipe --no-startup-window
E <launched> pid=2236
E [pid=2236][err] Received signal 6
E [pid=2236][err] [0x000118efda79]
E [pid=2236][err] [0x000118e59d13]
E [pid=2236][err] [0x000118efd9d1]
E [pid=2236][err] [0x7fff208d1d7d]
E [pid=2236][err] [0x7ffee14fb5d8]
E [pid=2236][err] [0x7fff207e1406]
E [pid=2236][err] [0x7fff206c1165]
E [pid=2236][err] [0x7fff206c42aa]
E [pid=2236][err] [0x000118a4b0fc]
E [pid=2236][err] [0x00011628f6af]
E [pid=2236][err] [0x000115395f67]
E [pid=2236][err] [0x0001166f4d1e]
E [pid=2236][err] [0x000118ee42e9]
E [pid=2236][err] [0x000118eb8a60]
E [pid=2236][err] [0x000118ecd979]
E [pid=2236][err] [0x000118ecd69c]
E [pid=2236][err] [0x000118ecde72]
E [pid=2236][err] [0x000118f0f323]
E [pid=2236][err] [0x000118f09cf2]
E [pid=2236][err] [0x000118f0ed5f]
E [pid=2236][err] [0x7fff2098437c]
E [pid=2236][err] [0x7fff209842e4]
E [pid=2236][err] [0x7fff20984064]
E [pid=2236][err] [0x7fff20982a8c]
E [pid=2236][err] [0x7fff2098204c]
E [pid=2236][err] [0x7fff28bcaa83]
E [pid=2236][err] [0x7fff28bca7e5]
E [pid=2236][err] [0x7fff28bca583]
E [pid=2236][err] [0x7fff2318ad72]
E [pid=2236][err] [0x7fff23189545]
E [pid=2236][err] [0x000118a12ab0]
E [pid=2236][err] [0x000118f09cf2]
E [pid=2236][err] [0x000118a129e9]
E [pid=2236][err] [0x7fff2317b869]
E [pid=2236][err] [0x000118f0fa2c]
E [pid=2236][err] [0x000118f0e892]
E [pid=2236][err] [0x000118ece0dd]
E [pid=2236][err] [0x000118e9843d]
E [pid=2236][err] [0x00011661ff7b]
E [pid=2236][err] [0x000116621612]
E [pid=2236][err] [0x00011661d8dc]
E [pid=2236][err] [0x00011899d4e8]
E [pid=2236][err] [0x00011899e53a]
E [pid=2236][err] [0x00011899e0cb]
E [pid=2236][err] [0x00011899c84c]
E [pid=2236][err] [0x00011899d0d0]
E [pid=2236][err] [0x0001152271be]
E [pid=2236][err] [0x00010e7018d1]
E [pid=2236][err] [0x7fff208a7f3d]
E [pid=2236][err] [0x000000000020]
E [pid=2236][err] [end of stack trace]
E [pid=2236][err] [0322/180717.089119:WARNING:process_memory_mac.cc(93)] mach_vm_read(0x7ffee14fe000, 0x2000): (os/kern) invalid address (1)
E [pid=2236][err] [0322/180717.250919:WARNING:crash_report_exception_handler.cc(235)] UniversalExceptionRaise: (os/kern) failure (5)
E =========================== logs ===========================
E waiting for selector "a[href="/app/edit"]"
E selector resolved to visible <a data-v-d7081870="" data-v-1b7f802e="" href="/app…>Complete task</a>
E attempting click action
E waiting for element to be visible, enabled and stable
E element is not stable - waiting...
E ============================================================
../venv/lib/python3.10/site-packages/playwright/_impl/_connection.py:63: Error