[ 
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)

Reply via email to