Levani Kokhreidze created FLINK-39403:
-----------------------------------------

             Summary: Postgres snapshotting phase might cause transaction leak
                 Key: FLINK-39403
                 URL: https://issues.apache.org/jira/browse/FLINK-39403
             Project: Flink
          Issue Type: Bug
          Components: Flink CDC
            Reporter: Levani Kokhreidze
         Attachments: Screenshot 2026-04-03 at 14.07.58.png

We observe increase in "idle in transaction" times when using Flink CDC (3.4.0 
version) with Postgres database. One possible cause might be

 
{code:java}
PostgresSnapshotSplitReadTask ->
PostgresQueryUtils.readTableSplitDataStatement -> 
PostgresQueryUtils.initStatement

{code}
initStatement in return disables auto commit for the connection due to setting 
the fetchSize on the statement:
{code:java}
private static PreparedStatement initStatement(JdbcConnection jdbc, String sql, 
int fetchSize)
        throws SQLException {
    final Connection connection = jdbc.connection();
    connection.setAutoCommit(false);
    final PreparedStatement statement = connection.prepareStatement(sql);
    statement.setFetchSize(fetchSize);
    return statement;
} {code}
There's no explicit commit/rollback calls which might cause the transaction 
leak.

Attached screenshot shows one of the replica databases showing increase in the 
idle in transaction metric. Table in question had evenly split chunks and there 
was no other process connecting to that database but Flink CDC.

 



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

Reply via email to