Martijn Visser created FLINK-41136:
--------------------------------------
Summary: Exactly-once JdbcSink in BATCH mode fails for good after
its committer restarts mid-commit
Key: FLINK-41136
URL: https://issues.apache.org/jira/browse/FLINK-41136
Project: Flink
Issue Type: Bug
Components: Connectors / JDBC
Reporter: Martijn Visser
Assignee: Martijn Visser
Fix For: jdbc-5.0.0
In BATCH mode the committer is its own failover region. If it fails after
committing some transactions, the restarted attempt has no restored checkpoint,
so {{JdbcCommitter}} treats an unknown xid as lost and fails on the first
transaction it already committed, on every attempt. The remaining transactions
stay prepared until someone resolves them by hand. Reproduced with the
FLINK-41060 changes at parallelism 2 and one injected XAER_RMERR on the second
commit. Ignoring unknown xids after any restart would fix BATCH but hide a lost
transaction in streaming, so the committer needs to know it runs in BATCH mode.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)