Page MenuHomePhabricator

Pixel sporadically hangs on (at least) MacBook M1 Machine
Closed, ResolvedPublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

  • Buy a MacBook Pro M1 machine
  • Run ./pixel.js reference until the process hangs

What happens?:
Pixel's output suddenly hangs without exiting. For example, it gets to the last test, but doesn't print the finishing COMMAND | Command "reference" successfully executed in [105.268s]. Instead it just pauses with something like:

SCENARIO > Talk:Test (#vector)
SCENARIO > Talk:Test (#vector)
SCENARIO > Talk:Test (#vector)
x Close Browser
CREATING NEW REFERENCE FILE
SCENARIO > Tree (#vector)
x Close Browser
x Close Browser
CREATING NEW REFERENCE FILE
Browser Console Log 0: JSHandle:BackstopTools have been installed.
CREATING NEW REFERENCE FILE
x Close Browser
CREATING NEW REFERENCE FILE
Browser Console Log 0: JSHandle:BackstopTools have been installed.
Browser Console Log 0: JSHandle:BackstopTools have been installed.
Browser Console Log 0: JSHandle:BackstopTools have been installed.
SCENARIO > Tree (#vector)
SCENARIO > Tree (#vector)
SCENARIO > Tree (#vector)
x Close Browser
SCENARIO > Tree (#vector)
x Close Browser
x Close Browser
x Close Browser

What should have happened instead?:
The command should exit and print that it has finished with something like `COMMAND | Command "reference" successfully executed in [105.268s]

Event Timeline

nray added subscribers: Mabualruz, Jdlrobson.

Thank you for reviewing @Mabualruz and @Jdlrobson ! Since the fix was merged, I haven't noticed this issue so I'm calling this resolved!

Looks like I spoke too soon on this one. Although it definitely seems to occur less frequently on my machine, I just had one occurrence of pixel hanging so I'm reopening this ticket. I'm guessing the problem still might have to do with a mismatch between the particular versions of puppeteer and chromium we have installed [1]

[1] https://pptr.dev/faq/#q-why-doesnt-puppeteer-vxxx-work-with-chromium-vyyy

nray moved this task from Done to Backlog on the Web Team Visual Regression Framework board.

I am very interested in getting rid of the visual regression docker container and possibly switching to playwright. This issue has become worse because on arm64 machines we install a version of chromium that is unsupported by puppeteer (since they don't bundle a supported version themselves) and that has resulted in many of the output images looking totally different than the images generated on other machines