VGalaxies commented on PR #12728: URL: https://github.com/apache/iotdb/pull/12728#issuecomment-2165151148
> <img alt="image" width="1920" src="https://private-user-images.githubusercontent.com/16079446/339246868-8ec90361-4d4f-458f-af61-d3978497630b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTgyNzE3NTEsIm5iZiI6MTcxODI3MTQ1MSwicGF0aCI6Ii8xNjA3OTQ0Ni8zMzkyNDY4NjgtOGVjOTAzNjEtNGQ0Zi00NThmLWFmNjEtZDM5Nzg0OTc2MzBiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjEzVDA5MzczMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIwMTRmOTg5YzE5MDI5MWFlODRiOWIzNmU5NzAxYjMxNTExN2Y1OTE4MWFlMjMyNzY5NjM2NGYwYmM0NDViN2EmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.oNACdB64L6s2k_jLEqgD-FeA8WdBxeq0Im7by8FEBsg"> check whether we can reuse this. The functionalities of these two are similar, but jstack outputs more information, including thread priority, thread ID, CPU time, thread existence time, locked wwnable synchronizers, as well as the positions and information on waiting and acquiring the lock. Some information can better assist in diagnosing problems. `dumpJVMSnapshot` output: ```text "pool-33-IoTDB-Pipe-Processor-Executor-Pool-1" #122 WAITING Waiting on: java.util.concurrent.atomic.AtomicBoolean@7914dee2 [email protected]/java.lang.Object.wait(Native Method) [email protected]/java.lang.Object.wait(Object.java:328) app//org.apache.iotdb.db.pipe.event.common.tsfile.PipeTsFileInsertionEvent.waitForTsFileClose(PipeTsFileInsertionEvent.java:141) app//org.apache.iotdb.db.pipe.task.connection.PipeEventCollector.parseAndCollectEvent(PipeEventCollector.java:114) app//org.apache.iotdb.db.pipe.task.connection.PipeEventCollector.collect(PipeEventCollector.java:74) app//org.apache.iotdb.commons.pipe.plugin.builtin.processor.donothing.DoNothingProcessor.process(DoNothingProcessor.java:55) app//org.apache.iotdb.db.pipe.task.subtask.processor.PipeProcessorSubtask.executeOnce(PipeProcessorSubtask.java:137) app//org.apache.iotdb.commons.pipe.task.subtask.PipeSubtask.call(PipeSubtask.java:80) app//org.apache.iotdb.db.pipe.task.subtask.processor.PipeProcessorSubtaskWorker.runSubtasks(PipeProcessorSubtaskWorker.java:77) app//org.apache.iotdb.db.pipe.task.subtask.processor.PipeProcessorSubtaskWorker.runMayThrow(PipeProcessorSubtaskWorker.java:51) app//org.apache.iotdb.commons.concurrent.WrappedRunnable.run(WrappedRunnable.java:30) [email protected]/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) app//com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131) app//com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:75) app//com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82) [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [email protected]/java.lang.Thread.run(Thread.java:834) ``` `executeJstack` output: ```text "pool-33-IoTDB-Pipe-Processor-Executor-Pool-1" #122 prio=5 os_prio=0 cpu=0.00ms elapsed=96.03s tid=0x000001e0c316d000 nid=0x8ed4 in Object.wait() [0x0000005ebbcfe000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait([email protected]/Native Method) - waiting on <0x00000000fedf9498> (a java.util.concurrent.atomic.AtomicBoolean) at java.lang.Object.wait([email protected]/Object.java:328) at org.apache.iotdb.db.pipe.event.common.tsfile.PipeTsFileInsertionEvent.waitForTsFileClose(PipeTsFileInsertionEvent.java:141) - waiting to re-lock in wait() <0x00000000fedf9498> (a java.util.concurrent.atomic.AtomicBoolean) at org.apache.iotdb.db.pipe.task.connection.PipeEventCollector.parseAndCollectEvent(PipeEventCollector.java:114) at org.apache.iotdb.db.pipe.task.connection.PipeEventCollector.collect(PipeEventCollector.java:74) at org.apache.iotdb.commons.pipe.plugin.builtin.processor.donothing.DoNothingProcessor.process(DoNothingProcessor.java:55) at org.apache.iotdb.db.pipe.task.subtask.processor.PipeProcessorSubtask.executeOnce(PipeProcessorSubtask.java:137) at org.apache.iotdb.commons.pipe.task.subtask.PipeSubtask.call(PipeSubtask.java:80) at org.apache.iotdb.db.pipe.task.subtask.processor.PipeProcessorSubtaskWorker.runSubtasks(PipeProcessorSubtaskWorker.java:77) at org.apache.iotdb.db.pipe.task.subtask.processor.PipeProcessorSubtaskWorker.runMayThrow(PipeProcessorSubtaskWorker.java:51) at org.apache.iotdb.commons.concurrent.WrappedRunnable.run(WrappedRunnable.java:30) at java.util.concurrent.Executors$RunnableAdapter.call([email protected]/Executors.java:515) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:75) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82) at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128) at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628) at java.lang.Thread.run([email protected]/Thread.java:834) Locked ownable synchronizers: - <0x00000000feddfe98> (a java.util.concurrent.ThreadPoolExecutor$Worker) ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
