Skip to content

[Fix] Rework transaction logic in commit, rollback and checkpoint paths#18474

Merged
Mytherin merged 2 commits intoduckdb:v1.3-ossivalisfrom
taniabogatsch:rework-tx-logic
Aug 1, 2025
Merged

[Fix] Rework transaction logic in commit, rollback and checkpoint paths#18474
Mytherin merged 2 commits intoduckdb:v1.3-ossivalisfrom
taniabogatsch:rework-tx-logic

Conversation

@taniabogatsch
Copy link
Contributor

@Mytherin Mytherin merged commit 0e258ec into duckdb:v1.3-ossivalis Aug 1, 2025
47 checks passed
@Mytherin
Copy link
Collaborator

Mytherin commented Aug 1, 2025

Thanks!

github-actions bot pushed a commit to duckdb/duckdb-r that referenced this pull request Aug 1, 2025
[Fix] Rework transaction logic in commit, rollback and checkpoint paths (duckdb/duckdb#18474)
[Chore] Improve skipped tests in test config and add verify_fetch_row config (duckdb/duckdb#18436)
@carlopi
Copy link
Contributor

carlopi commented Aug 1, 2025

I think the merging logic would need to be adapted to propagate the more problematic exception, instead of keeping the same exception type it has to start with.

In particular for this codepath:

		try {
			if (!error.HasError()) {
				// Commit the transaction.
				error = transaction_manager.CommitTransaction(context, transaction);
			} else {
				// Rollback due to previous error.
				transaction_manager.RollbackTransaction(transaction);
			}
		} catch (std::exception &ex) {
			error.Merge(ErrorData(ex));
		}

Say there is an error already entering this codepath, say an OutOfMemoryException, and say that RollbackTransaction throws something that should invalidate like a FatalException.

Now instead of throwing a FatalException, an OutOfMemory is re-thrown, and this might end up being ignored.

The other two codepaths I think after this PR are in a better state, but still can benefit from improved merging logic.

github-actions bot added a commit to duckdb/duckdb-r that referenced this pull request Aug 1, 2025
[Fix] Rework transaction logic in commit, rollback and checkpoint paths (duckdb/duckdb#18474)
[Chore] Improve skipped tests in test config and add verify_fetch_row config (duckdb/duckdb#18436)

Co-authored-by: krlmlr <krlmlr@users.noreply.github.com>
@taniabogatsch taniabogatsch deleted the rework-tx-logic branch August 4, 2025 09:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants