You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Martijn Visser (Jira)" <ji...@apache.org> on 2026/09/23 06:47:00 UTC

[jira] [Updated] (FLINK-40777) Run the XA connection tests against PostgreSQL

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

Martijn Visser updated FLINK-40777:
-----------------------------------
    Description: 
SimpleXaConnectionProviderTest and TransactionIdConnectionTest are the only tests that commit a prepared XA transaction from a new connection, which is what the exactly-once committer and recovery rely on. Both run only on embedded Derby. FLINK-40730 replaces Derby with H2, and H2 discards a prepared transaction as soon as the connection that prepared it closes, so these tests cannot move there.

This ticket makes them database-agnostic, runs them on PostgreSQL (the test container already sets max_prepared_transactions), adds a recover() test, and moves the XA_RDONLY case to a unit test: H2 never returns it, and the PostgreSQL driver returns it only for read-only connections, which the connector never opens.

  was:
SimpleXaConnectionProviderTest and TransactionIdConnectionTest are the only tests that commit a prepared XA transaction from a new connection, which is what the exactly-once committer and recovery rely on. Both run only on embedded Derby. FLINK-40730 replaces Derby with H2, and H2 discards a prepared transaction as soon as the connection that prepared it closes, so these tests cannot move there.

This ticket makes them database-agnostic, runs them on PostgreSQL (the test container already sets max_prepared_transactions), adds a recover() test, and moves the XA_RDONLY case to a unit test because neither PostgreSQL nor H2 returns it.


> Run the XA connection tests against PostgreSQL
> ----------------------------------------------
>
>                 Key: FLINK-40777
>                 URL: https://issues.apache.org/jira/browse/FLINK-40777
>             Project: Flink
>          Issue Type: Technical Debt
>          Components: Connectors / JDBC
>            Reporter: Martijn Visser
>            Assignee: Martijn Visser
>            Priority: Major
>
> SimpleXaConnectionProviderTest and TransactionIdConnectionTest are the only tests that commit a prepared XA transaction from a new connection, which is what the exactly-once committer and recovery rely on. Both run only on embedded Derby. FLINK-40730 replaces Derby with H2, and H2 discards a prepared transaction as soon as the connection that prepared it closes, so these tests cannot move there.
> This ticket makes them database-agnostic, runs them on PostgreSQL (the test container already sets max_prepared_transactions), adds a recover() test, and moves the XA_RDONLY case to a unit test: H2 never returns it, and the PostgreSQL driver returns it only for read-only connections, which the connector never opens.



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