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
PyroscopeAgent: stop method should stop/close Exporter as well
Currently there is no way to stop daemon thread created in QueuedExporter.java. This is useful in case when one wants to have an app profiled dynamically without requiring restart. Imagine there is a long running app, I enable profiling for some amount of time, collect enough data and disable profiling. After some time I want to enable profiling again. Without stopping thread in QueuedExporter.java there will be many threads created and all waiting inside the loop in OverfillQueue.java
"Thread-174" - Thread t@742
java.lang.Thread.State: WAITING
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
- parking to wait for <778c4f25> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
at app//io.pyroscope.javaagent.OverfillQueue.take(OverfillQueue.java:63)
at app//io.pyroscope.javaagent.impl.QueuedExporter.exportLoop(QueuedExporter.java:29)
at app//io.pyroscope.javaagent.impl.QueuedExporter$$Lambda$1176/0x00007fa690e15470.run(Unknown Source)
at [email protected]/java.lang.Thread.run(Thread.java:833)
Locked ownable synchronizers:
- None
The text was updated successfully, but these errors were encountered:
PyroscopeAgent: stop method should stop/close Exporter as well
Currently there is no way to stop daemon thread created in QueuedExporter.java. This is useful in case when one wants to have an app profiled dynamically without requiring restart. Imagine there is a long running app, I enable profiling for some amount of time, collect enough data and disable profiling. After some time I want to enable profiling again. Without stopping thread in
QueuedExporter.java
there will be many threads created and all waiting inside the loop in OverfillQueue.javaThe text was updated successfully, but these errors were encountered: