Skip to content

Release persistent V8 handles before teardown - #852

Merged
wieslawsoltes merged 1 commit into
mainfrom
fix/v8-persistent-teardown-851
Sep 20, 2026
Merged

wieslawsoltes merged 1 commit into
mainfrom
fix/v8-persistent-teardown-851

Conversation

@wieslawsoltes

Copy link
Copy Markdown
Collaborator

Problem

The exact Linux package gate crashes across otherwise independent V8 executables while v8_dom_runtime::implementation is destroyed. The captured GDB stack enters GlobalHandles::NodeSpace::Release after the owned isolate has already been disposed.

Change

Release every previously omitted persistent-handle owner before Isolate::Dispose():

  • generated meter, output, and progress element templates;
  • active drag transfer wrappers;
  • active outbound drag transfer wrapper;
  • discrete wheel animation context.

This completes the destructor's existing explicit lifetime boundary. It adds no steady-state work or storage.

Validation

  • Audited every direct v8::Global member and nested runtime-state owner against the destructor.
  • git diff --check passes.
  • The cumulative exact package gate on the top of the stack will validate owned/shared isolate teardown on Linux and Windows.

Fixes #851

@wieslawsoltes
wieslawsoltes changed the base branch from fix/msvc-native-css-tests-846 to main September 20, 2026 14:09
@wieslawsoltes
wieslawsoltes merged commit b377796 into main Sep 20, 2026
2 checks passed
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.

Release every persistent V8 handle before isolate teardown

1 participant