Page MenuHomePhabricator

Find a way to set elevated timeouts for job running
Open, MediumPublic

Description

We need to fix how timeouts are set in mediawiki-config too.

The timeout in the config is set in set-time-limit and is based on the host header. When we switch to generic MediaWiki apache configuration for job runners, we would need to use the Host header for selecting the specific wiki, just like normal app servers do. Thus, the code referenced above would no longer work.

Apache sets SERVERGROUP variable we could use to differentiate job runners from other app servers, but we can't use that one either, because both video scaling and general job running is happening on the same set of hosts in reality, thus SERVERGROUP will be the same for both, however the timeout needs to be different.

We could add support for Request-Timeout HTTP header and set it as a timeout, but for job runners only. We probably don't want client requests to be able to override the request timeouts.

Event Timeline

Change 577642 had a related patch set uploaded (by Ppchelko; owner: Ppchelko):
[operations/mediawiki-config@master] Use Request-Timeout header to set jobrunner PHP timeouts

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

daniel triaged this task as Medium priority.Apr 7 2020, 12:51 PM
Naike changed the task status from Open to Stalled.May 22 2020, 6:57 AM
Aklapper changed the task status from Stalled to Open.May 22 2020, 11:17 AM
Aklapper added a subscriber: Naike.

@Naike: The previous comments don't explain what/who exactly this task is stalled on ("If a report is waiting for further input (e.g. from its reporter or a third party) and can currently not be acted on"). Hence resetting task status.

(Smallprint, as general orientation for task management: If you wanted to express that nobody is currently working on this task, then the assignee should be removed and/or priority could be lowered instead. If work on this task is blocked by another task, then that other task should be added via Edit Related Tasks...Edit Subtasks. If this task is stalled on an upstream project, then the Upstream tag should be added. If this task requires info from the task reporter, then there should be instructions which info is needed. If this task is out of scope and nobody should ever work on this, then task status should have the "Declined" status.)

Removing inactive assignee (Platform Engineering: Please unassign tasks of previous team members.)