xinnyuli commented on issue #12624: URL: https://github.com/apache/seatunnel/issues/12624#issuecomment-6036814362
@SEZ9 Thanks for the careful review! I checked 1(b) and you're right to ask: it isn't covered yet. The marker lives in each table's JdbcOutputFormat, but writers in the same queue share one pooled connection (poolManager.getConnection(queueIndex)), so table B can't see table A's uncommitted batches. Also, getConnection(index) silently replaces a dead connection, so B could commit on the new connection without ever seeing an error, before A fails. My plan is to move the marker to a tracker shared per queue index (kept in ConnectionPoolManager, exposed through the provider), so every writer on that connection sees it, and add a test where two tables share the same queue index. One question: if one writer does a full rollback on the shared connection, the other tables' flushed batches are rolled back too, but the connection object stays the same, so the commit check would still pass. Should a rollback with pending batches make later commits on that connection fail? And would you like all of this in #12625, or as a follow-up? I've updated the PR description for points 2 and 3. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
