Page MenuHomePhabricator

ApiLogin and ApiClientLogin should return true for isWriteMode()
Closed, ResolvedPublic

Description

From T267945#6875458

Neither ApiClient nor ApiClientLogin override ApiBase::isWriteMode(), so they return the default false, which causes database performance warnings (about 35k per day at the time of writing). For example:

Expectation (writes <= 0) by ApiMain::setRequestExpectations not met (actual: 1): query-m: INSERT INTO cu_changes [...]

In this example, the login attempt is logged to the cu_changes table. Given that writes like this legitimately occur on login, isWriteMode should return true.

Event Timeline

Change 693507 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/core@master] Mark ApiClientLogin/ApiLogin as requiring write mode

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

Change 704179 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/core@REL1_36] Mark ApiClientLogin/ApiLogin as requiring write mode

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

Change 704180 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/core@REL1_35] Mark ApiClientLogin/ApiLogin as requiring write mode

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

Change 693507 merged by jenkins-bot:

[mediawiki/core@master] Mark ApiClientLogin/ApiLogin as requiring write mode

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

Change 704180 merged by jenkins-bot:

[mediawiki/core@REL1_35] Mark ApiClientLogin/ApiLogin as requiring write mode

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

Change 704179 merged by jenkins-bot:

[mediawiki/core@REL1_36] Mark ApiClientLogin/ApiLogin as requiring write mode

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