[ 
https://issues.apache.org/jira/browse/FLINK-35151?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xin Gong updated FLINK-35151:
-----------------------------
    Description: 
Flink mysql cdc will  stuck when suspend binlog split and ChangeEventQueue is 
full.

Reason is that producing binlog is too fast.  
MySqlSplitReader#suspendBinlogReaderIfNeed will execute 
BinlogSplitReader#stopBinlogReadTask to set 

currentTaskRunning to be false after MysqSourceReader receives binlog split 
update event.

MySqlSplitReader#pollSplitRecords is executed and 

dataIt is null to execute closeBinlogReader when currentReader is 
BinlogSplitReader. closeBinlogReader will execute 
statefulTaskContext.getBinaryLogClient().disconnect(), it could dead lock. 
Because BinaryLogClient#connectLock is not release  when 
MySqlStreamingChangeEventSource add element to full queue.

 

  was:
Flink mysql cdc will  stuck when suspend binlog split and ChangeEventQueue is 
full.

 


> Flink mysql cdc will  stuck when suspend binlog split and ChangeEventQueue is 
> full
> ----------------------------------------------------------------------------------
>
>                 Key: FLINK-35151
>                 URL: https://issues.apache.org/jira/browse/FLINK-35151
>             Project: Flink
>          Issue Type: Bug
>          Components: Flink CDC
>         Environment: I use master branch reproduce it.
> Reason is that producing binlog is too fast.  
> MySqlSplitReader#suspendBinlogReaderIfNeed will execute 
> BinlogSplitReader#stopBinlogReadTask to set 
> currentTaskRunning to be false after MysqSourceReader receives binlog split 
> update event.
> MySqlSplitReader#pollSplitRecords is executed and 
> dataIt is null to execute closeBinlogReader when currentReader is 
> BinlogSplitReader. closeBinlogReader will execute 
> statefulTaskContext.getBinaryLogClient().disconnect(), it could dead lock. 
> Because BinaryLogClient#connectLock is not release  when 
> MySqlStreamingChangeEventSource add element to full queue.
>            Reporter: Xin Gong
>            Priority: Major
>         Attachments: dumpstack.txt
>
>
> Flink mysql cdc will  stuck when suspend binlog split and ChangeEventQueue is 
> full.
> Reason is that producing binlog is too fast.  
> MySqlSplitReader#suspendBinlogReaderIfNeed will execute 
> BinlogSplitReader#stopBinlogReadTask to set 
> currentTaskRunning to be false after MysqSourceReader receives binlog split 
> update event.
> MySqlSplitReader#pollSplitRecords is executed and 
> dataIt is null to execute closeBinlogReader when currentReader is 
> BinlogSplitReader. closeBinlogReader will execute 
> statefulTaskContext.getBinaryLogClient().disconnect(), it could dead lock. 
> Because BinaryLogClient#connectLock is not release  when 
> MySqlStreamingChangeEventSource add element to full queue.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to