Skip to content

fix(browser): clear stale Chromium Singleton locks before relaunch#24

Open
Bartok9 wants to merge 1 commit into
AtomicBot-ai:mainfrom
Bartok9:sera/browser-stale-chrome-locks
Open

fix(browser): clear stale Chromium Singleton locks before relaunch#24
Bartok9 wants to merge 1 commit into
AtomicBot-ai:mainfrom
Bartok9:sera/browser-stale-chrome-locks

Conversation

@Bartok9

@Bartok9 Bartok9 commented Jul 23, 2026

Copy link
Copy Markdown

Summary

Hard kills / SIGINT before PlaywrightBackend.shutdown() finishes leave Chromium SingletonLock (and friends) under the persistent user-data-dir. The next browser.* launch then fails until manual cleanup.

Fix

  • New clearStaleChromeLocks(userDataDir) with PID-aware policy:
    • dead owner PID → remove locks
    • live Chromium-family holder → keep
    • orphan companion locks without SingletonLock → remove
  • Called in launchOwnChrome() before decorateChromeProfile / spawn
  • Unit tests for parse + clear paths

Test plan

  • vitest run src/tools/browser/clear-stale-chrome-locks.test.ts
  • Manual: start browser task, Ctrl+C mid-run, relaunch browser tool without deleting profile

Fixes #22

Agent-Owner: sera

Unclean SIGINT/timeouts left SingletonLock and friends under the
persistent user-data-dir, so the next browser launch failed until
manual cleanup. Clear locks only when the owner PID is dead or not
Chromium-family; keep locks held by a live browser.

Fixes AtomicBot-ai#22

Agent-Owner: sera
Signed-off-by: Bartok9 <danielrpike9@gmail.com>
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.

Playwright browser context lock persists on process SIGINT / tool failure, causing subsequent browser runs to fail

1 participant