[
https://issues.apache.org/jira/browse/FLINK-36247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ruan Hang updated FLINK-36247:
------------------------------
Fix Version/s: cdc-3.3.0
> Potential transaction leak during MySQL snapshot phase
> ------------------------------------------------------
>
> Key: FLINK-36247
> URL: https://issues.apache.org/jira/browse/FLINK-36247
> Project: Flink
> Issue Type: Bug
> Components: Flink CDC
> Affects Versions: cdc-3.2.0
> Reporter: Xin Gong
> Assignee: Xin Gong
> Priority: Major
> Labels: pull-request-available
> Fix For: cdc-3.3.0, cdc-3.2.1
>
>
> copy from
> [https://github.com/apache/flink-cdc/issues/1552]
>
> We have found that during the MySQL snapshot phase, a transaction is
> initiated but never committed, resulting in the transaction being left there
> for a long time.
> For instance, the binlog is like
> {code:java}
> SET autocommit=0 // a transaction is started by
> com.ververica.cdc.connectors.mysql.source.utils.StatementUtils#initStatement
> SELECT * FROM `database`.`table` WHERE id >= 1111 AND NOT (id = 2222) AND id
> <= 2222
> SHOW MASTER STATUS
> SHOW GLOBAL VARIABLES LIKE 'GTID_MODE'
> SHOW MASTER STATUS
> SELECT @@global.gtid_purgedrollback // the transaction is aborted without a
> commit after a long wait {code}
> Steps to reproduce the behavior:
> 1、The test data : Any MySQL database with existing data in the tableThe
> 1、test code : INSERT INTO any_sink SELECT * FROM mysql_cdc_source_table;
> 3、The error : A transaction is left without being committed.
> From the code, maybe it is the connection.setAutoCommit(false) that causes
> this issue, but we are still not sure why it is there in the first place.
>
> !https://user-images.githubusercontent.com/5620838/189831936-522c8ae7-a116-4948-8b5d-41b4d0eaab72.png!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)