SELECT bt_address,bt_user_text,bt_user,bt_auto,bt_range_start,bt_range_end,bl_id, block_by_actor.actor_user AS `bl_by`, block_by_actor.actor_name AS `bl_by_text`, bl_timestamp,bl_anon_only,bl_create_account,bl_enable_autoblock,bl_expiry,bl_deleted, bl_block_email,bl_allow_usertalk,bl_sitewide, comment_bl_reason.comment_text AS `bl_reason_text`, comment_bl_reason.comment_data AS `bl_reason_data`, comment_bl_reason.comment_id AS `bl_reason_cid`, (SELECT 1 FROM `block_target` `hu_block_target` JOIN `block` `hu_block` ON ((hu_block.bl_target=hu_block_target.bt_id)) WHERE (hu_block_target.bt_user=block_target.bt_user) AND hu_block.bl_deleted = 1 ) IS NOT NULL AS `hu_deleted` FROM `block` JOIN `actor` `block_by_actor` ON ((actor_id=bl_by_actor)) JOIN `block_target` ON ((bt_id=bl_target)) JOIN `comment` `comment_bl_reason` ON ((comment_bl_reason.comment_id = bl_reason_id)) WHERE (bt_user IS NOT NULL OR bt_range_start IS NOT NULL) AND bt_range_start IS NULL AND (bl_expiry > '20240325020054') AND bl_deleted = 0 ORDER BY bl_timestamp DESC,bl_id DESC LIMIT 101
Explain:
+------+--------------------+-------------------+--------+--------------------------+-----------+---------+------------------------------+--------+----------------------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +------+--------------------+-------------------+--------+--------------------------+-----------+---------+------------------------------+--------+----------------------------------------------+ | 1 | PRIMARY | block_target | ref | PRIMARY,bt_range,bt_user | bt_range | 38 | const | 809912 | Using where; Using temporary; Using filesort | | 1 | PRIMARY | block | ref | bl_target,bl_expiry | bl_target | 4 | enwiki.block_target.bt_id | 1 | Using where | | 1 | PRIMARY | block_by_actor | eq_ref | PRIMARY | PRIMARY | 8 | enwiki.block.bl_by_actor | 1 | | | 1 | PRIMARY | comment_bl_reason | eq_ref | PRIMARY | PRIMARY | 8 | enwiki.block.bl_reason_id | 1 | | | 2 | DEPENDENT SUBQUERY | hu_block_target | ref | PRIMARY,bt_user | bt_user | 5 | enwiki.block_target.bt_user | 1 | Using index | | 2 | DEPENDENT SUBQUERY | hu_block | ref | bl_target | bl_target | 4 | enwiki.hu_block_target.bt_id | 1 | Using where | +------+--------------------+-------------------+--------+--------------------------+-----------+---------+------------------------------+--------+----------------------------------------------+
Wrong table order, it should sort on bl_timestamp. Partially conflicting range conditions seem to confuse the planner.
Error
- mwversion: 1.42.0-wmf.23
- reqId: 7d8e733b-5117-4206-99ea-f411287e35f2
- Find reqId in Logstash
Expectation (readQueryTime <= 5) by MediaWiki\Actions\ActionEntryPoint::execute not met (actual: {actualSeconds}) in trx #{trxId}:
{query}from /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/TransactionProfiler.php(525)
#0 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/TransactionProfiler.php(334): Wikimedia\Rdbms\TransactionProfiler->reportExpectationViolated(string, Wikimedia\Rdbms\GeneralizedSql, double, string, string)
#1 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/TransactionManager.php(615): Wikimedia\Rdbms\TransactionProfiler->recordQueryCompletion(Wikimedia\Rdbms\GeneralizedSql, double, boolean, integer, string, string)
#2 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/Database.php(828): Wikimedia\Rdbms\TransactionManager->recordQueryCompletion(Wikimedia\Rdbms\GeneralizedSql, double, boolean, integer, string)
#3 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/Database.php(716): Wikimedia\Rdbms\Database->attemptQuery(Wikimedia\Rdbms\Query, string, boolean)
#4 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/Database.php(643): Wikimedia\Rdbms\Database->executeQuery(Wikimedia\Rdbms\Query, string, integer)
#5 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/Database.php(1350): Wikimedia\Rdbms\Database->query(Wikimedia\Rdbms\Query, string)
#6 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/DBConnRef.php(119): Wikimedia\Rdbms\Database->select(array, array, array, string, array, array)
#7 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/DBConnRef.php(351): Wikimedia\Rdbms\DBConnRef->__call(string, array)
#8 /srv/mediawiki/php-1.42.0-wmf.23/includes/pager/IndexPager.php(467): Wikimedia\Rdbms\DBConnRef->select(array, array, array, string, array, array)
#9 /srv/mediawiki/php-1.42.0-wmf.23/includes/pager/IndexPager.php(289): MediaWiki\Pager\IndexPager->reallyDoQuery(string, integer, boolean)
#10 /srv/mediawiki/php-1.42.0-wmf.23/includes/pager/IndexPager.php(739): MediaWiki\Pager\IndexPager->doQuery()
#11 /srv/mediawiki/php-1.42.0-wmf.23/includes/specials/SpecialBlockList.php(320): MediaWiki\Pager\IndexPager->getNumRows()
#12 /srv/mediawiki/php-1.42.0-wmf.23/includes/specials/SpecialBlockList.php(176): MediaWiki\Specials\SpecialBlockList->showList(MediaWiki\Pager\BlockListPager)
#13 /srv/mediawiki/php-1.42.0-wmf.23/includes/specialpage/SpecialPage.php(720): MediaWiki\Specials\SpecialBlockList->execute(string)
#14 /srv/mediawiki/php-1.42.0-wmf.23/includes/specialpage/SpecialPageFactory.php(1651): MediaWiki\SpecialPage\SpecialPage->run(NULL)
#15 /srv/mediawiki/php-1.42.0-wmf.23/includes/actions/ActionEntryPoint.php(504): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, MediaWiki\Context\RequestContext)
#16 /srv/mediawiki/php-1.42.0-wmf.23/includes/actions/ActionEntryPoint.php(145): MediaWiki\Actions\ActionEntryPoint->performRequest()
#17 /srv/mediawiki/php-1.42.0-wmf.23/includes/MediaWikiEntryPoint.php(199): MediaWiki\Actions\ActionEntryPoint->execute()
#18 /srv/mediawiki/php-1.42.0-wmf.23/index.php(58): MediaWiki\MediaWikiEntryPoint->run()
#19 /srv/mediawiki/w/index.php(3): require(string)
#20 {main}