Page MenuHomePhabricator

usercontribs API: internal_api_error_DBQueryTimeoutError
Closed, ResolvedPublicPRODUCTION ERROR

Description

List of steps to reproduce
request API URL https://de.wikipedia.org/w/api.php?action=query&list=usercontribs&ucuser=Aka&ucnamespace=0

What happens?:

"code": "internal_api_error_DBQueryTimeoutError",
"info": "[d0839847-916f-4867-9d1b-3dabfb305d65] Caught exception of type Wikimedia\\Rdbms\\DBQueryTimeoutError",
"errorclass": "Wikimedia\\Rdbms\\DBQueryTimeoutError"

What should have happened instead?:

"query": { "usercontribs": [ { ...

Software version (if not a Wikimedia wiki), browser information, screenshots, other information, etc.:
This worked many times before. It works for all other users I tried or if I remove the "ucnamespace=0" filter.


Error
normalized_message
[{reqId}] {exception_url}   Wikimedia\Rdbms\DBQueryTimeoutError: A database query timeout has occurred. 
Query: SET STATEMENT max_statement_time=30 FOR SELECT  rev_id,rev_page,rev_timestamp,rev_minor_edit,rev_deleted,rev_len,rev_parent_id,rev_sha1,comment
exception.trace
from /srv/mediawiki/php-1.39.0-wmf.10/includes/libs/rdbms/database/Database.php(1739)
#0 /srv/mediawiki/php-1.39.0-wmf.10/includes/libs/rdbms/database/Database.php(1727): Wikimedia\Rdbms\Database->getQueryException(string, integer, string, string)
#1 /srv/mediawiki/php-1.39.0-wmf.10/includes/libs/rdbms/database/Database.php(1701): Wikimedia\Rdbms\Database->getQueryExceptionAndLog(string, integer, string, string)
#2 /srv/mediawiki/php-1.39.0-wmf.10/includes/libs/rdbms/database/Database.php(1202): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
#3 /srv/mediawiki/php-1.39.0-wmf.10/includes/libs/rdbms/database/Database.php(1947): Wikimedia\Rdbms\Database->query(string, string, integer)
#4 /srv/mediawiki/php-1.39.0-wmf.10/includes/libs/rdbms/querybuilder/SelectQueryBuilder.php(641): Wikimedia\Rdbms\Database->select(array, array, array, string, array, array)
#5 /srv/mediawiki/php-1.39.0-wmf.10/includes/api/ApiQueryBase.php(427): Wikimedia\Rdbms\SelectQueryBuilder->fetchResultSet()
#6 /srv/mediawiki/php-1.39.0-wmf.10/includes/api/ApiQueryUserContribs.php(270): ApiQueryBase->select(string, array, array)
#7 /srv/mediawiki/php-1.39.0-wmf.10/includes/api/ApiQuery.php(631): ApiQueryUserContribs->execute()
#8 /srv/mediawiki/php-1.39.0-wmf.10/includes/api/ApiMain.php(1902): ApiQuery->execute()
#9 /srv/mediawiki/php-1.39.0-wmf.10/includes/api/ApiMain.php(874): ApiMain->executeAction()
#10 /srv/mediawiki/php-1.39.0-wmf.10/includes/api/ApiMain.php(845): ApiMain->executeActionWithErrorHandling()
#11 /srv/mediawiki/php-1.39.0-wmf.10/api.php(90): ApiMain->execute()
#12 /srv/mediawiki/php-1.39.0-wmf.10/api.php(45): wfApiMain()
#13 /srv/mediawiki/w/api.php(3): require(string)
#14 {main}
Impact
Notes

Details

Request URL
https://de.wikipedia.org/w/api.php?action=query&list=*&ucuser=*&ucnamespace=*

Event Timeline

TheresNoTime changed the subtype of this task from "Bug Report" to "Production Error".May 6 2022, 8:28 PM
TheresNoTime set Phatality ID to d0839847-916f-4867-9d1b-3dabfb305d65.
TheresNoTime set Request URL to https://de.wikipedia.org/w/api.php?action=query&list=*&ucuser=*&ucnamespace=*.May 6 2022, 8:33 PM
TheresNoTime updated the task description. (Show Details)
TheresNoTime removed Phatality ID.

Plesae note: de:user:aka hax contribs >1,000,000 which might have caused some overflow or timeout.

That doesn't explain why it works sometimes and sometimes doesn't. When it works, it's quick.

Change 829860 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/core@master] api: Force actor index on list=usercontribs

https://gerrit.wikimedia.org/r/829860

Change 829860 merged by jenkins-bot:

[mediawiki/core@master] api: Force actor index on list=usercontribs

https://gerrit.wikimedia.org/r/829860

Umherirrender claimed this task.