[ https://issues.apache.org/jira/browse/FLINK-35802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Leonard Xu resolved FLINK-35802. -------------------------------- Resolution: Fixed Fixed via master: afd4a74c0a3dc4f6353a37e875023a7f849a634e > Deadlock may happen after adding new tables > ------------------------------------------- > > Key: FLINK-35802 > URL: https://issues.apache.org/jira/browse/FLINK-35802 > Project: Flink > Issue Type: Bug > Components: Flink CDC > Affects Versions: cdc-3.1.0 > Reporter: Yanquan Lv > Assignee: Yanquan Lv > Priority: Major > Labels: pull-request-available > Fix For: cdc-3.3.0 > > Attachments: image-2024-07-10-13-44-49-972.png, > image-2024-07-10-13-45-52-450.png, image-2024-07-10-13-47-07-190.png > > > Problem Description: > 1.CDC originally consumed the full incremental data of a table, and > currently, the snapshot phase has ended, and it is in the binlog consumption > phase. > 2.Stop the job to add the full incremental data synchronization for a new > table. > 3.After the full phase of the new table ends, it fails to return to the > binlog consumption phase. > 4. Checking the thread that consumes the binlog, a deadlock situation is > discovered, and the specific thread stack is as follows. > 5. The likely cause is that after the Enumerator issues a > BinlogSplitUpdateRequestEvent, both the MysqlSplitReader and > MySqlBinlogSplitReadTask close the binlogClient connection but fail to > acquire the lock. > 6. The lock is held by the consumer thread, but the queue is full, waiting > for consumers to consume the data out, and yet there are no consumers, thus > causing a deadlock. > ThreadDump: > 1. MysqlSplitReader.pollSplitRecords method > !image-2024-07-10-13-44-49-972.png! > 2. MySqlStreamingChangeEventSource.execute method > !image-2024-07-10-13-45-52-450.png! > 3. MySqlBinlogSplitReadTask.handleEvent method > !image-2024-07-10-13-47-07-190.png! > > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)