You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Updated to v1.13.x and noticed SDKs deadlocked in shutdown in some of our applications.
Some of our applications call TracerProvider.Tracer() in a gRPC interceptor to trace the RPC.
Our interceptors have been applied to the OTel trace SDK (by mistake, I'd say, but FWIW this worked before 1.13.x)
The interceptors are now deadlocking shutdown because Shutdown() holds the lock, preventing Tracer() from being called.
Environment
OS: macOS
Architecture: ARM
Go Version: 1.19
opentelemetry-go version: 1.13.0
Steps To Reproduce
Call Tracer() from an interceptor from an ExportSpans() call during Shutdown() and it will deadlock.
Shutdown() (takes lock) -> calls final ExportSpans() -> calls interceptor -> calls Tracer() (tries to get lock) == deadlocked
Description
Updated to v1.13.x and noticed SDKs deadlocked in shutdown in some of our applications.
Some of our applications call
TracerProvider.Tracer()
in a gRPC interceptor to trace the RPC.Our interceptors have been applied to the OTel trace SDK (by mistake, I'd say, but FWIW this worked before 1.13.x)
The interceptors are now deadlocking shutdown because Shutdown() holds the lock, preventing Tracer() from being called.
Environment
Steps To Reproduce
Call Tracer() from an interceptor from an ExportSpans() call during Shutdown() and it will deadlock.
Shutdown() (takes lock) -> calls final ExportSpans() -> calls interceptor -> calls Tracer() (tries to get lock) == deadlocked
This appears to be introduced by #3551.
Expected behavior
The Shutdown should proceed. It looks safe to release the lock, meaning to replace the
with something equivalent to
The text was updated successfully, but these errors were encountered: