Summary
The integration of the Special:OATHManage special page and CheckUser causes TransactionProfiler warnings. These should be addressed.
Background & Technical details
- These logs appear in the TSP Chore Wheel dashboards. For example, https://logstash.wikimedia.org/app/dashboards#/doc/logstash-*/logstash-mediawiki-1-7.0.0-1-2026.02.17?id=uXMoa5wBVE0pYbVvtvh1
- The logs contain the following:
Expectation (writes <= 0) by MediaWiki\SpecialPage\SpecialPageFactory::executePath not met (actual: 3) in trx #7003b77cde: role-primary: INSERT INTO `cu_private_event` (cupe_namespace,cupe_title,cupe_log_type,cupe_log_action,cupe_params,cupe_page,cupe_actor,cupe_timestamp,cupe_ip_hex,cupe_xff,cupe_xff_hex,cupe_comment_id,cupe_agent_id) VALUES '?'
from /srv/mediawiki/php-1.46.0-wmf.15/includes/libs/Rdbms/TransactionProfiler.php(569)
#0 /srv/mediawiki/php-1.46.0-wmf.15/includes/libs/Rdbms/TransactionProfiler.php(371): Wikimedia\Rdbms\TransactionProfiler->reportExpectationViolated(string, Wikimedia\Rdbms\GeneralizedSql, int, string, string)
#1 /srv/mediawiki/php-1.46.0-wmf.15/includes/libs/Rdbms/Database/TransactionManager.php(571): Wikimedia\Rdbms\TransactionProfiler->recordQueryCompletion(Wikimedia\Rdbms\GeneralizedSql, float, bool, int, string, string)
#2 /srv/mediawiki/php-1.46.0-wmf.15/includes/libs/Rdbms/Database/Database.php(847): Wikimedia\Rdbms\TransactionManager->recordQueryCompletion(Wikimedia\Rdbms\GeneralizedSql, float, bool, int, string)
#3 /srv/mediawiki/php-1.46.0-wmf.15/includes/libs/Rdbms/Database/Database.php(705): Wikimedia\Rdbms\Database->attemptQuery(Wikimedia\Rdbms\Query, string, bool)
#4 /srv/mediawiki/php-1.46.0-wmf.15/includes/libs/Rdbms/Database/Database.php(632): Wikimedia\Rdbms\Database->executeQuery(Wikimedia\Rdbms\Query, string, int)
#5 /srv/mediawiki/php-1.46.0-wmf.15/includes/libs/Rdbms/Database/Database.php(1506): Wikimedia\Rdbms\Database->query(Wikimedia\Rdbms\Query, string)
#6 /srv/mediawiki/php-1.46.0-wmf.15/includes/libs/Rdbms/Database/DBConnRef.php(129): Wikimedia\Rdbms\Database->insert(string, array, string, array)
#7 /srv/mediawiki/php-1.46.0-wmf.15/includes/libs/Rdbms/Database/DBConnRef.php(457): Wikimedia\Rdbms\DBConnRef->__call(string, array)
#8 /srv/mediawiki/php-1.46.0-wmf.15/includes/libs/Rdbms/QueryBuilder/InsertQueryBuilder.php(317): Wikimedia\Rdbms\DBConnRef->insert(string, array, string, array)
#9 /srv/mediawiki/php-1.46.0-wmf.15/extensions/CheckUser/src/Services/CheckUserInsert.php(436): Wikimedia\Rdbms\InsertQueryBuilder->execute()
#10 /srv/mediawiki/php-1.46.0-wmf.15/extensions/CheckUser/src/Services/CheckUserInsert.php(180): MediaWiki\CheckUser\Services\CheckUserInsert->insertIntoCuPrivateEventTable(array, string, MediaWiki\User\User, MediaWiki\RecentChanges\RecentChange, bool)
#11 /srv/mediawiki/php-1.46.0-wmf.15/extensions/OATHAuth/src/OATHUserRepository.php(149): MediaWiki\CheckUser\Services\CheckUserInsert->updateCheckUserData(MediaWiki\RecentChanges\RecentChange)
#12 /srv/mediawiki/php-1.46.0-wmf.15/extensions/OATHAuth/src/Module/RecoveryCodes.php(110): MediaWiki\Extension\OATHAuth\OATHUserRepository->createKey(MediaWiki\Extension\OATHAuth\OATHUser, MediaWiki\Extension\OATHAuth\Module\RecoveryCodes, array, string)
#13 /srv/mediawiki/php-1.46.0-wmf.15/extensions/OATHAuth/src/HTMLForm/TOTPEnableForm.php(197): MediaWiki\Extension\OATHAuth\Module\RecoveryCodes->ensureExistence(MediaWiki\Extension\OATHAuth\OATHUser, array)
#14 /srv/mediawiki/php-1.46.0-wmf.15/includes/HTMLForm/HTMLForm.php(820): MediaWiki\Extension\OATHAuth\HTMLForm\TOTPEnableForm->onSubmit(array, MediaWiki\Extension\OATHAuth\HTMLForm\TOTPEnableForm)
#15 /srv/mediawiki/php-1.46.0-wmf.15/includes/HTMLForm/HTMLForm.php(669): MediaWiki\HTMLForm\HTMLForm->trySubmit()
#16 /srv/mediawiki/php-1.46.0-wmf.15/includes/HTMLForm/HTMLForm.php(717): MediaWiki\HTMLForm\HTMLForm->tryAuthorizedSubmit()
#17 /srv/mediawiki/php-1.46.0-wmf.15/extensions/OATHAuth/src/HTMLForm/OATHAuthOOUIHTMLForm.php(53): MediaWiki\HTMLForm\HTMLForm->show()
#18 /srv/mediawiki/php-1.46.0-wmf.15/extensions/OATHAuth/src/Special/OATHManage.php(485): MediaWiki\Extension\OATHAuth\HTMLForm\OATHAuthOOUIHTMLForm->show(null)
#19 /srv/mediawiki/php-1.46.0-wmf.15/extensions/OATHAuth/src/Special/OATHManage.php(401): MediaWiki\Extension\OATHAuth\Special\OATHManage->addCustomContent(MediaWiki\Extension\OATHAuth\Module\TOTP)
#20 /srv/mediawiki/php-1.46.0-wmf.15/extensions/OATHAuth/src/Special/OATHManage.php(96): MediaWiki\Extension\OATHAuth\Special\OATHManage->addModuleHTML(MediaWiki\Extension\OATHAuth\Module\TOTP)
#21 /srv/mediawiki/php-1.46.0-wmf.15/includes/SpecialPage/SpecialPage.php(711): MediaWiki\Extension\OATHAuth\Special\OATHManage->execute(null)
#22 /srv/mediawiki/php-1.46.0-wmf.15/includes/SpecialPage/SpecialPageFactory.php(1745): MediaWiki\SpecialPage\SpecialPage->run(null)
#23 /srv/mediawiki/php-1.46.0-wmf.15/includes/Actions/ActionEntryPoint.php(504): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, MediaWiki\Context\RequestContext)
#24 /srv/mediawiki/php-1.46.0-wmf.15/includes/Actions/ActionEntryPoint.php(144): MediaWiki\Actions\ActionEntryPoint->performRequest()
#25 /srv/mediawiki/php-1.46.0-wmf.15/includes/MediaWikiEntryPoint.php(180): MediaWiki\Actions\ActionEntryPoint->execute()
#26 /srv/mediawiki/php-1.46.0-wmf.15/index.php(44): MediaWiki\MediaWikiEntryPoint->run()
#27 /srv/mediawiki/w/index.php(3): require(string)
#28 {main}- These logs appear to be caused by cc1fe11aa9e4f1f499a29769028a8d33a551ce3a / T301992: Insert CheckUser row events during certain 2FA actions
Acceptance criteria
- These warnings are no longer created