happo / happo.io

Happo is a cross-browser screenshot testing service
https://happo.io
MIT License
196 stars 25 forks source link

Failures when running Happo #171

Open kyletov opened 4 years ago

kyletov commented 4 years ago

Hey, I sometimes run into some errors when running Happo where I'd get an error like this after seeing a 5 failed GET requests to the same url: StatusCodeError: 500 - "An error occurred for browser-chrome: Error: connect ECONNREFUSED"

It doesn't happen frequently, but I've come across this error a couple of times, sometimes on consecutive runs too if unlucky. At the moment, when this error happens, I just rerun Happo and hope that it doesn't run into this error again.

I was wondering if there's any recommendations on what can be done to minimize the chance of this error occurring or if there's a way to run Happo again via CircleCI if Happo couldn't run successfully due to a refused connection error?

trotzig commented 4 years ago

I'm keeping an eye on our cluster stability right now. We've been having some issues like this a few times in the past weeks, but this is the first time I have a clear report of it causing failed builds. Will you do me a favor and update this thread when/if it happens again?

kyletov commented 4 years ago

Alright, I'll let you know if the error comes up again 👍

kyletov commented 4 years ago

Alright the error happened again, same error code as above, but slightly different.

This is the error code below: StatusCodeError: 500 - "An error occurred for browser-firefox: Failed to decode response from marionette"

trotzig commented 4 years ago

Okay, this is fortunately/unfortunately a different error. Our logs shows this has happened three times in the last couple of days. A theory is that this is because our Firefox worker runs out of memory when rendering examples. I've seen this happen before, and it usually works on a second try, although in your case the retry led to the same error. I'm going to check if we need to up the memory on our workers, or if there's a way to lower memory usage when rendering. I'll update this thread with what I find.