Xin Gong created FLINK-36247:
--------------------------------

             Summary: 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
            Reporter: Xin Gong


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

Reply via email to