[ https://issues.apache.org/jira/browse/FLINK-29629?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17620781#comment-17620781 ]
Zhu Zhu commented on FLINK-29629: --------------------------------- [~pvary] Flink is turning to [new Sources|https://github.com/apache/flink/blob/master/flink-core/src/main/java/org/apache/flink/api/connector/source/Source.java]. Legacy sources (SourceFunction) will be deprecated in near future. I agree with Chesnay to not invest more resources for legacy sources. We may have improvement to show flame graphs of working threads that are spawned by task threads. It is not just for the legacy source, but all operators which will spawn other threads to do critical things. But that should be an independent improvement and we need someone to create a FLIP(to prove the motivation, clarify the user behavior, and design the implementation steps) first. > FlameGraph is empty for Legacy Source Threads > --------------------------------------------- > > Key: FLINK-29629 > URL: https://issues.apache.org/jira/browse/FLINK-29629 > Project: Flink > Issue Type: Bug > Components: Runtime / Web Frontend > Reporter: Peter Vary > Priority: Major > > Thread dump gets the stack trace for the {{Custom Source}} thread, but this > thread is always in {{TIMED_WAITING}}: > {code} > "Source: Custom Source -> A random source (1/2)#0" ... > java.lang.Thread.State: TIMED_WAITING (parking) > at jdk.internal.misc.Unsafe.park(java.base@11.0.16/Native Method) > - parking to wait for <0x00000000ea775750> (a > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) > at java.util.concurrent.locks.LockSupport.parkNanos() > at > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await() > at > org.apache.flink.streaming.runtime.tasks.mailbox.TaskMailboxImpl.take() > at > org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.processMailsWhenDefaultActionUnavailable(MailboxProcessor.java:335) > at > org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.processMail(MailboxProcessor.java:324) > at > org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:201) > [..] > {code} > The actual code is run in the {{Legacy Source Thread}}: > {code} > "Legacy Source Thread - Source: Custom Source -> A random source (1/2)#0" ... > java.lang.Thread.State: RUNNABLE > {code} > This causes the WebUI FlameGraph to be empty of any useful data. > This is an example code to reproduce: > {code} > DataStream<RowData> inputStream = env.addSource(new > RandomRecordSource(recordSize)); > inputStream = inputStream.map(new CounterMapper()); > FlinkSink.forRowData(inputStream).tableLoader(loader).append(); > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)