I noticed I was getting "Notice: Uncommitted DB writes (transaction from DatabaseBase::query (TranslatablePage::getTranslatablePages)). in /var/www/w/git/includes/db/Database.php on line 4118" when viewing Special:Preferences (locally) when not logged in.
Steps to reproduce:
*Have DBO_TRX or DBO_DEFAULT (assuming from web request) on. [This is default]
*Do some write query not currently in a transaction, so it gets an automatic transaction
*Later on, throw an exception such as: throw new UserNotLoggedIn();
*Automatic transaction gets committed at end of requestion (e.g. MediaWiki::restInPeace() calls $factory->commitMasterChanges();).
*Request ends without doing the load balancer shutdown stuff. As a result, the current (implicit) transaction is lost.
The actual behaviour (throwing away the transaction) may make sense for normal exceptions, but for error page exceptions I don't think it does, especially when the transaction is implicit instead of explicit.
[Probably not a super problematic bug, since exception error pages tend to only write caching related things to the db, if they write anything at all, but it does seem incorrect behaviour with the potential for subtle bugs]