Manual:$wgDebugDBTransactions

Details
This setting enables additional transactions>Special:MyLanguage/Database transactions|database transaction lifecycle tracing in the debug output:

Transaction state changed from IDLE -> TRANS

Whenever transaction status is changed

no database transaction is open a transaction has been open a transaction is in an error state
 * IDLE:
 * TRANS:
 * ERROR:

Example output:

Query trunk (15) (slave): BEGIN Transaction state changed from IDLE -> TRANS Query trunk (16) (slave): SELECT /* DatabasePostgres::schemaExists */  1 FROM "pg_catalog"."pg_namespace" WHERE nspname = 'mediawiki'  LIMIT 1 Query trunk (17) (slave): SELECT /* DatabasePostgres::getSchemas */ current_schemas(false) Schema "mediawiki" already in the search path Query trunk (18) (slave): COMMIT Transaction state changed from TRANS -> IDLE

This feature is useful in troubleshooting situations where some operations seem to be ignored (phab:T37572) or whenever error message is returned (phab:39172) or where it is necessary to understand what was the transaction progress in case of deferred reference check failure (phab:60189).

An end-to-end transaction logging may help to pinpoint situations where features like localization cache or deferred updates might interfere with the expected state of the transaction during mainline processing.