Page MenuHomePhabricator

TranslateRenderJob: "Oops, this should not happen!"
Closed, ResolvedPublic

Description

Spotted in production:

[
  {
    "file": "/srv/mediawiki/php-1.27.0-wmf.3/extensions/Translate/tag/PageTranslationHooks.php",
    "line": 159,
    "function": "run",
    "class": "TranslateRenderJob",
    "type": "->",
    "args": []
  },
  {
    "file": "/srv/mediawiki/php-1.27.0-wmf.3/extensions/Translate/tag/PageTranslationHooks.php",
    "line": 139,
    "function": "updateTranslationPage",
    "class": "PageTranslationHooks",
    "type": "::",
    "args": [
      "TranslatablePage",
      "string",
      "User",
      "integer",
      "string"
    ]
  },
  {
    "file": "/srv/mediawiki/php-1.27.0-wmf.3/includes/Hooks.php",
    "line": 204,
    "function": "onSectionSave",
    "class": "PageTranslationHooks",
    "type": "::",
    "args": [
      "WikiPage",
      "User",
      "WikitextContent",
      "string",
      "integer",
      "NULL",
      "NULL",
      "integer",
      "NULL"
    ]
  },
  {
    "file": "/srv/mediawiki/php-1.27.0-wmf.3/includes/page/WikiPage.php",
    "line": 1963,
    "function": "run",
    "class": "Hooks",
    "type": "::",
    "args": [
      "string",
      "array"
    ]
  },
  {
    "file": "/srv/mediawiki/php-1.27.0-wmf.3/extensions/Translate/utils/MessageUpdateJob.php",
    "line": 44,
    "function": "doEditContent",
    "class": "WikiPage",
    "type": "->",
    "args": [
      "WikitextContent",
      "string",
      "integer",
      "boolean",
      "User"
    ]
  },
  {
    "file": "/srv/mediawiki/php-1.27.0-wmf.3/includes/jobqueue/JobRunner.php",
    "line": 180,
    "function": "run",
    "class": "MessageUpdateJob",
    "type": "->",
    "args": []
  },
  {
    "file": "/srv/mediawiki/rpc/RunJobs.php",
    "line": 42,
    "function": "run",
    "class": "JobRunner",
    "type": "->",
    "args": [
      "array"
    ]
  }
]

Event Timeline

demon raised the priority of this task from to Medium.
demon updated the task description. (Show Details)
demon subscribed.
Krinkle renamed this task from TranslateRenderJob: "This should not happen" to TranslateRenderJob: "Oops, this should not happen!".Nov 11 2015, 8:51 PM
Krinkle set Security to None.
Krinkle subscribed.
aaron raised the priority of this task from Medium to High.Dec 11 2015, 1:24 PM
Nikerabbit lowered the priority of this task from High to Medium.Dec 11 2015, 3:23 PM

17 events today, 12 events two days ago. Does not justify high priority imho.

The latest events correspond with these log actions, the latter has same time.

  • 14:23, 11 December 2015 Piramidion (talk | contribs) marked Wikimedia Russia for translation
  • 14:21, 11 December 2015 Piramidion (talk | contribs) removed Wikimedia Russia from translation

Should these just result in the job just calling setError() and returning false? Maybe it could no longer be an exception?

This probably can't happen anymore from MessageUpdateJobs (when marking for translation, at least) once https://gerrit.wikimedia.org/r/#/c/281698/ and https://gerrit.wikimedia.org/r/#/c/282695/ reaches the wikis (will be deployed on next update). When pages are marked for translation, the render job will only be run once per language and the value of marked tag is also not cached during reads so an invalid value cached before the updates are not used.

The exception message was recently modified so this error message won't occur anymore. Note that there would've been a spike of this earlier this month on group0 wikis due to a recently introduced change but that was quickly fixed.
Let's hope that this is now fixed (after the above patches) and close this task. If it does occur again, I guess someone will open another task with the new error message.