SIGN IN SIGN UP

fix(otel): Avoid deadlock in SentryContextStorage.root() with virtual threads (#5234)

* fix(otel): Avoid deadlock in SentryContextStorage.root() with virtual threads

SentryContextStorage.root() called SentryContextWrapper.wrap() which
triggers scope.clone() and acquires locks. Under virtual threads,
ReentrantLock.unlock() can re-enter root() via OpenTelemetry executor
instrumentation on ForkJoinPool.execute(), causing a deadlock.

Return the default OTel root context without wrapping. Scopes are
resolved later via attach() or Sentry.getCurrentScopes().

Fixes GH-5226
Co-Authored-By: Claude <noreply@anthropic.com>

* changelog

---------

Co-authored-by: Claude <noreply@anthropic.com>
A
Alexander Dinauer committed
f2c2e7d827d945de83595d7fc62579e8b0dc085e
Parent: a7fc366
Committed by GitHub <noreply@github.com> on 3/26/2026, 10:16:02 AM