Page MenuHomePhabricator

Wikimedia\Rdbms\Database::selectSQLText called from IndexPager::buildQueryInfo (SecurePoll_ElectionPager) with incorrect parameters: $conds must be a string or an array
Closed, ResolvedPublicPRODUCTION ERROR

Description

I think it is the train because it is on wiktionaries only, and it seems like a simple syntax problem that would have happened on a new deployment, but please prove me wrong. If it is not a blocker, at least it is a real bug happening on production right now:

{
  "_index": "logstash-2018.03.08",
  "_type": "mediawiki",
  "_id": "AWIFB9AYruwYJ7-tProw",
  "_version": 1,
  "_score": null,
  "_source": {
    "server": "en.wiktionary.org",
    "unique_id": "WqEIJApAMFYAAF6Po-4AAAAS",
    "level": "WARNING",
    "ip": "10.64.0.102",
    "wiki": "enwiktionary",
    "channel": "DBQuery",
    "mwversion": "1.31.0-wmf.24",
    "message": "Wikimedia\\Rdbms\\Database::selectSQLText called from IndexPager::buildQueryInfo (SecurePoll_ElectionPager) with incorrect parameters: $conds must be a string or an array",
    "type": "mediawiki",
    "normalized_message": "Wikimedia\\Rdbms\\Database::selectSQLText called from IndexPager::buildQueryInfo (SecurePoll_ElectionPager) with incorrect parameters: $conds must be a string or an array",
    "url": "/wiki/Special:SecurePoll",
    "tags": [
      "syslog",
      "es",
      "es"
    ],
    "reqId": "WqEIJApAMFYAAF6Po-4AAAAS",
    "referrer": "https://en.wiktionary.org/wiki/Wiktionary:Requests_for_deletion/English",
    "@timestamp": "2018-03-08T09:53:40.000Z",
    "http_method": "GET",
    "@version": 1,
    "host": "mw1251",
    "shard": "s2"
  },
  "fields": {
    "@timestamp": [
      1520502820000
    ]
  },
  "sort": [
    1520502820000
  ]
}

Event Timeline

Huji subscribed.

Will review in a few hours

Change 417481 had a related patch set uploaded (by Huji; owner: Huji):
[mediawiki/extensions/SecurePoll@master] $conds value passed from getQueryInfo() must be an array

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

My theory is that this would be a long-existing issue, or degraded gracefully, but the new deploy, rather than break things, exposed it as an error. Could that be what happened?

Likely.

There are two things to know about SecurePoll: (1) because it is not used often, logs are not generated daily, so you won't know that a, so to speak, "new" log is because something just broke, or because someone just used a rarely used feature that has been broken for a long time. (2) The code base is archaic, to the point that most SQL queries in it do not comply with strict mode.

I have suggested to add errors like this one to fatalmonitor dashboard on T165675

Change 417481 merged by jenkins-bot:
[mediawiki/extensions/SecurePoll@master] $conds value passed from getQueryInfo() must be an array

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

Thank you very much for working on this.

Huji removed a project: Patch-For-Review.
mmodell changed the subtype of this task from "Task" to "Production Error".Aug 28 2019, 11:09 PM