Fixed
Project:
Drupal core
Version:
11.x-dev
Component:
database system
Priority:
Normal
Category:
Task
Assigned:
Unassigned
Reporter:
Created:
11 Apr 2026 at 05:43 UTC
Updated:
30 Jul 2026 at 07:47 UTC
Jump to comment: Most recent
Follow up of #3398767: Allow returning explicitly to the prior nesting level in transactions (aka allow explicit COMMIT in Transaction objects) and #3406985: Convert all transactions in core to use explicit ::commitOrRelease().
In this issue :
Connection::commitAll()Database::commitAllOnShutdown()TransactionManagerBase::commitAll()No
No
No
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
mondrakeComment #4
amateescu commentedNo longer postponed :)
Comment #5
mondrakeComment #6
mondrakeRebased
Comment #7
mondrakeI think mysqli pipeline failure is due to #3569127-21: Add new 11.3.x database dump fixtures, without modules deprecated for removal in 12.x
Comment #8
mradcliffeI reviewed the changes. The comment about not triggering deprecation errors in Database makes sense to me based on the comment sin the other issue.
The test run from a week ago did not seem to have any performance regressions.
I manually tested installing Standard profile locally and inspecting my query log using PostgreSQL 18, and did not find anything unexpected about the install process. Tables are being created dynamically after failure still.
I guess we need a rebase.
Comment #9
makertimswisSince 11.3 we got a lot more caching issues combined with xdebug
https://www.drupal.org/project/drupal/issues/3569316 seems to fix these but it feels that it should touch this change
Comment #10
daffie commentedIt looks good to me.
The IS and the CR are in order.
Testing has been added for the new deprecation's.
I have a single remark on the PR, after that it is RTBC for me.
Comment #11
mondrakeComment #12
mondrakeAnother commit-on-destruct has leaked in the code base.
Comment #13
mondrakeThis one was tough. A try/catch was not intercepting an Error, so it ended up releasing a savepoint instead of rolling back. In the end, I see this really driving improvement on thoughtful transaction handling.
Comment #14
mradcliffeI think every comment has been resolved and is RTBC now.
Comment #15
mondrakeComment #16
mradcliffeDo we need to split the change record so that #3583849: Deprecate PgSql Connection::*Savepoint() methods that's in 11.4 and this issue which needs to be 11.5 (or greater)? Or is it okay to leave the postgresql deprecations as tied to the draft change record?
Comment #17
mondrake#16 it's probably not my call, but since anyway all of this is slated for removal in D13, I do not think it makes much difference. Also, one single CR is clearer IMHO.
Comment #18
mradcliffeThanks for fixing whatever I messed up earlier. :-)
UnpackRecipeTest? Hmm, that almost seems related to #3608069: Restore (but don't apply) deprecated recipes to 11.4.x.
Comment #19
mondrake#18 it passes locally for me and seems random on CI
Comment #20
mondrakerelated test failure
Comment #21
mondrakeGreen on all dbs. PHP 8.6 warnings is another issue.
Comment #22
mradcliffeStill green and RTBC after the recent rebase.
Comment #23
mondrakerebased and fixed TransactionTest
Comment #24
catchOne question on the MR.
Comment #25
mondrakeReplied inline.
Comment #28
catchAh thanks that makes sense but I wouldn't have guessed just looking at the class so good to add the explicit note. This looks good to me, we have plenty of time before we actually remove support to flush out issues. Committed/pushed to main and 11.x, thanks!