Krinkle created this task.
Krinkle added projects: Performance-Team (Radar), 
MediaWiki-extensions-WikibaseClient.

TASK DESCRIPTION
  The immediate reason for the warning is that it is calling `query()` without 
indication of whether it is a write query or not, thus requiring Rdbms to 
perform its legacy regexes on the SQL text to guess it.
  
  However, more important than whether it passes the second parameter of 
`query()`, is that it calls `query()` at all, as this should not be used 
outside Rdbms internals.  It exposes raw SQL and should be avoided in favour of 
safe interfaces like `SelectQueryBuilder` or  `IDatabase::select()`.
  
  It is currently triggered approximately 100K/hour, making it the most common 
entry on the mediawiki-warnings dashboard in Logstash, across all MW channels 
and components. The instrumentation was added last month in 
https://gerrit.wikimedia.org/r/c/mediawiki/core/+/894110 to detect exactly this 
issue, on the assumption it will likely not trigger anything in production. 
Wikibase's use was one of two callers we found in production.
  
  name=message
    Wikimedia\Rdbms\Platform\SQLPlatform::isWriteQuery fallback to regex
  
  name=trace
    #0 
/srv/mediawiki/php-1.41.0-wmf.1/includes/libs/rdbms/database/Database.php(934): 
Wikimedia\Rdbms\Platform\SQLPlatform->isWriteQuery(string, integer)
    …
    #4 
/srv/mediawiki/php-1.41.0-wmf.1/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php(474):
 Wikimedia\Rdbms\DBConnRef->query(string, string)
    #5 
/srv/mediawiki/php-1.41.0-wmf.1/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php(407):
 Wikibase\Client\Usage\Sql\EntityUsageTable->getUsedEntityIdStringsMySql(array, 
Wikimedia\Rdbms\DBConnRef)
    #6 
/srv/mediawiki/php-1.41.0-wmf.1/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php(389):
 Wikibase\Client\Usage\Sql\EntityUsageTable->getUsedEntityIdStrings(array)
    #7 
/srv/mediawiki/php-1.41.0-wmf.1/extensions/Wikibase/client/includes/Usage/Sql/SqlUsageTracker.php(273):
 Wikibase\Client\Usage\Sql\EntityUsageTable->getUnusedEntities(array)
    #8 
/srv/mediawiki/php-1.41.0-wmf.1/extensions/Wikibase/client/includes/Usage/ImplicitDescriptionUsageLookup.php(303):
 Wikibase\Client\Usage\Sql\SqlUsageTracker->getUnusedEntities(array)
    #9 
/srv/mediawiki/php-1.41.0-wmf.1/extensions/Wikibase/client/includes/Store/UsageUpdater.php(80):
 Wikibase\Client\Usage\ImplicitDescriptionUsageLookup->getUnusedEntities(array)
    #10 
/srv/mediawiki/php-1.41.0-wmf.1/extensions/Wikibase/client/includes/Store/AddUsagesForPageJob.php(121):
 Wikibase\Client\Store\UsageUpdater->addUsagesForPage(integer, array)
    #11 
/srv/mediawiki/php-1.41.0-wmf.1/extensions/EventBus/includes/JobExecutor.php(79):
 Wikibase\Client\Store\AddUsagesForPageJob->run()
    #12 /srv/mediawiki/rpc/RunSingleJob.php(77): 
MediaWiki\Extension\EventBus\JobExecutor->execute(array)

TASK DETAIL
  https://phabricator.wikimedia.org/T332941

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Krinkle
Cc: Ladsgroup, Aklapper, Krinkle, ItamarWMDE, Akuckartz, lucamauri, Vali.matei, 
Wikidata-bugs
_______________________________________________
Wikidata-bugs mailing list -- wikidata-bugs@lists.wikimedia.org
To unsubscribe send an email to wikidata-bugs-le...@lists.wikimedia.org

Reply via email to