Page MenuHomePhabricator

Parsoid is incompatible with node v11 due to about ID nondeterminism
Open, Needs TriagePublic

Description

Parser tests run fine in node 10.15.1. But in node 11.0.0 (and in node 11.10.0, currently the latest) we get 23 failures in wt2html:


The only suspicious thing in the node release notes is:

Timers
*Interval timers will be rescheduled even if previous interval threw an error. #20002
*nextTick queue will be run after each immediate and timer. #22842

This makes me worry that we have a timing dependency somewhere in the Cite extension.

Event Timeline

From https://github.com/wikimedia/parsoid/commit/05f0f9b92314f64e567ef2fd4a04b4c9e8ee4692 when it was ignored in CI,

Node.js v11.x introduced a difference with how timers are run that results in some about ids in the blacklisted tests being off.

It's not just ids shifting though, look at the last few failures (those were the ones I looked at first) -- node pre 11 displays errors about duplicate node names which node v11 does not.

I think you're confused between the test failure and the blacklist change.

Blacklisted, but the output changed!

Try running the failing cite test on an older version of node with --no-blacklist and you'll see the same thing. So, the test fails in the same way but the string comparison with the stored blacklist changes in the about ids because of the time.

Ah. Is there a phab task somewhere for "Parsoid is nondeterministic" generally? I seem to recall creating one for the "reproducible parses" issue...

Is there a phab task somewhere for "Parsoid is nondeterministic" generally? I seem to recall creating one for the "reproducible parses" issue...

Yes, it's referenced in the commit above T206222

cscott renamed this task from Parsoid is incompatible with node v11 to Parsoid is incompatible with node v11 due to about ID nondeterminism.Feb 19 2019, 4:52 PM