Page MenuHomePhabricator

PHP error "CdnPurgeJob never inserted."
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error

Request ID: W8@-zwpAEMUAABz2jYkAAADT

message
PHP Notice: JobQueueGroup::__destruct: 1 buffered job(s) of type(s) CdnPurgeJob never inserted.

#0 /srv/mediawiki/php-1.32.0-wmf.26/includes/jobqueue/JobQueueGroup.php(472): MWExceptionHandler::handleError(integer, string, string, integer, array, array)
#1 [internal function]: JobQueueGroup->__destruct()
#2 {main}

Impact

Loss of jobs we thought were queued but were not, and will likely never execute.

Notes

Comes from both API and index.php requests that did not results in a fatal exception.

Started with 1.32-wmf.26. Happened 19,000 times since last week.

Event Timeline

I don't see any changes in the JobQueue itself in wmf.26 that could make it start happening.

Also, there's no major change in the job processing rates, so this doesn't affect all the job, but a minority of them. Will look more.

Change 469491 had a related patch set uploaded (by Aaron Schulz; owner: Aaron Schulz):
[mediawiki/core@master] Create JobQueueEnqueueUpdate class to handle calling JobQueueGroup::pushLazyJobs()

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

Change 469494 had a related patch set uploaded (by Aaron Schulz; owner: Aaron Schulz):
[mediawiki/extensions/EventBus@master] Remove obsolete pushLazyJobs() deferred update call

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

@aaron The fix LGTM, but do we know why this started happening? I'd be nice to know what commit or task prompted it so that we can learn why it wasn't prevented by our tests and/or Jenkins.

In theory, this kind of warning can be triggered in tests and would be captured by Jenkins in a way that fail the build. That definitely worked at some point.

Krinkle triaged this task as Medium priority.
Krinkle added a project: Performance-Team.

@aaron The fix LGTM, but do we know why this started happening? I'd be nice to know what commit or task prompted it so that we can learn why it wasn't prevented by our tests and/or Jenkins.

In theory, this kind of warning can be triggered in tests and would be captured by Jenkins in a way that fail the build. That definitely worked at some point.

I mentioned on IRC that 9fb67b9a41da8714743789fa0365a6052cc86b97 moved the cdn purges after the lazy job insertion.

Change 470293 had a related patch set uploaded (by Paladox; owner: Aaron Schulz):
[mediawiki/core@REL1_32] Create JobQueueEnqueueUpdate class to call JobQueueGroup::pushLazyJobs()

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

Change 469491 merged by jenkins-bot:
[mediawiki/core@master] Create JobQueueEnqueueUpdate class to call JobQueueGroup::pushLazyJobs()

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

Change 469494 merged by Krinkle:
[mediawiki/extensions/EventBus@master] Remove obsolete pushLazyJobs() deferred update call

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

aaron moved this task from Inbox, needs triage to Doing (old) on the Performance-Team board.

Change 470293 merged by jenkins-bot:
[mediawiki/core@REL1_32] Create JobQueueEnqueueUpdate class to call JobQueueGroup::pushLazyJobs()

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

• mmodell changed the subtype of this task from "Task" to "Production Error".Aug 28 2019, 11:08 PM