Page MenuHomePhabricator

F13. Parsoid crashes on __proto__
Closed, ResolvedPublic

Event Timeline

Change 225016 had a related patch set uploaded (by Mattflaschen):
Fix crash on proto

I don't think so. T65370: Use Maps and Sets in WikiConfig could fix this, but that's broader in scope. In the meantime, this is a bug blocking an active project (LiquidThreads->Flow conversion), and there's already a fix under review.

I see ... sorry. Please ignore me :)

Change 225016 merged by jenkins-bot:
Fix crash on proto

There are no anymore actual crashes on


However, when a page has

__proto__,  __DISAMBIG__,  __INDEX__

there are some hiccups:

[2015-07-21 23:17:40] Failed importing topic: topiclqt-api:local:thread_id:11025
[2015-07-21 23:17:40] exception 'Flow\Exception\NoParsoidException' with message 'Failed contacting Parsoid for title "Topic:Slj2h2dkhz5yzcd0": There was a problem during the HTTP request: 503 Service Unavailable' in /mnt/srv/mediawiki-staging/php-master/extensions/Flow/includes/Parsoid/Utils.php:124
Stack trace:
#0 /mnt/srv/mediawiki-staging/php-master/extensions/Flow/includes/Parsoid/Utils.php(42): Flow\Parsoid\Utils::parsoid('wikitext', 'html', '__proto__??mave...', Object(Title))
[2015-07-21 23:17:40] Imported 1 items, failed 1
[2015-07-21 23:17:40] Failed to complete import to Talk:ET26 from Talk:ET26/LQT Archive 1
[2015-07-21 23:17:40] Finished LQT conversion of page Talk:ET26

You may check:

The information is not lost - it's displayed on e.g.

It was not a temporary Parsoid error

  • pages with no
__proto__,  __DISAMBIG__,  __INDEX__

converted without any errors

  • pages without magic words but with some words in the format e.g.

converted successfully too.

DannyH renamed this task from Parsoid crashes on __proto__ to F14. Parsoid crashes on __proto__.Jul 23 2015, 12:42 AM
DannyH renamed this task from F14. Parsoid crashes on __proto__ to F13. Parsoid crashes on __proto__.Jul 23 2015, 12:45 AM

I can't reproduce this.

Is it possible you tested before it was deployed to Beta? If so, __proto__ alone shouldn't have worked either. It wouldn't have crashed the deployment script (it only crashes the Parsoid service, which is not obvious since it's network-isolated), but it would have had an error similar to Talk:ET26 above.

Due to T92871: Parsoid patches don't update Beta Cluster automatically -- only deploy repo patches seem to update that code, Parsoid patches only get deployed to the Beta cluster when they get merged to the deploy repo. In this case, 5ce8e609776bbb8c11f4c80bb042c43982ca910b was merged (and deployed to Beta) at Jul 21 5:36 PM Pacific according to (if I'm reading and converting timezones right).


mattflaschen@deployment-bastion:~$ curl -L 'http://deployment-parsoidcache02.eqiad.wmflabs/testwiki/Thread:Talk:ET26/Proto'
<!DOCTYPE html>
<html prefix="dc: mw:" about=""><head prefix="mwr:"><meta property="mw:articleNamespace" content="90"/><link rel="dc:replaces" resource="mwr:revision/0"/><meta property="dc:modified" content="2015-07-21T23:16:07.000Z"/><meta about="mwr:user/383" property="dc:title" content="Et test"/><link rel="dc:contributor" resource="mwr:user/383"/><meta property="mw:revisionSHA1" content="4c8c9fccc98a0d49111ad750dc0b769d700148f4"/><meta property="dc:description" content="New thread: Proto"/><meta property="mw:parsoidVersion" content="0"/><link rel="dc:isVersionOf" href=""/><title>Thread:Talk:ET26/Proto</title><base href=""/><link rel="stylesheet" href="//,shared|mediawiki.skinning.elements|mediawiki.skinning.content|mediawiki.skinning.interface|skins.vector.styles|site|mediawiki.skinning.content.parsoid|;only=styles&amp;skin=vector"/></head><body data-parsoid='{"dsr":[0,24,0,0]}' lang="en" class="mw-content-ltr sitedir-ltr ltr mw-body mw-body-content mediawiki" dir="ltr"><p data-parsoid='{"dsr":[0,9,0,0]}'>__proto__</p>

<p data-parsoid='{"dsr":[11,24,0,0]}'>mavetuna test</p></body></html>

I tried with mavetuna (with and without reply), and the example with the three psuedo-magic words (well, two are real magic words).

Note that the example you post actually shows it failing on Talk:ET26, which does not have the other two magic words.

I also retried the conversion of Talk:ET26, and it worked.

Re-checked - Mattflaschen is right - now LQT pages with proto(etc) are converting successfully.

This code was deployed to production yesterday.