cypress-io / cypress-docker-images

Docker images with Cypress dependencies and browsers
https://on.cypress.io/continuous-integration
MIT License
1k stars 376 forks source link

The automation client disconnected. Cannot continue running tests. Cypress 12.14.0 Firefox 126 (headless) Node 18.8.0 #1108

Closed faraktingi closed 3 weeks ago

faraktingi commented 3 weeks ago

Hello I get the following error when running Cypress test on firefox browser within a Cypress image: The automation client disconnected. Cannot continue running tests

Here is how Cypress is executed: node ./node_modules/.bin/cypress run --e2e --browser firefox -c specPattern=./cypress/e2e/features/e2e/test.feature -e TAGS=@Promotion and not @SkippedOnFirefox.

Cypress Docker image used is: cypress/browsers:node-18.16.0-chrome-113.0.5672.92-1-ff-113.0-edge-113.0.1774.35-1

I forced to use another firefox version like 126 but the result is the same I also got the failure mentioned above.

I've also done what is suggested in Cypress documentation: https://docs.cypress.io/guides/references/migration-guide#disable-dev-shm-usage to disable shm for firefox And also increase shm size to 3Gb. -> But still same failure.

For the same Cypress, NodeJs and Friefox version it's working when the node commande to execute Cypress tests is run outside a Docker container.

Thanks for any advise on this issue.

MikeMcC399 commented 3 weeks ago

@faraktingi

Do you have a reproducible example of this issue available online?

You write that you are using Cypress 12.14.0. This version is now a year old. Have you tried using a current Cypress 13.x version?

faraktingi commented 3 weeks ago

Thanks for your message @MikeMcC399, We still need to keep Cypress version 12.14.0 at the moment because of problems with allure report plugin we are using and newer version of Cypress. But anyway even if I upgrade my Cypress version to a more recent one 13.X I got the same behaviour, see screenshots below:

Cypress 12.14.0 image

Cypress 13.0.0 image

faraktingi commented 3 weeks ago

Also I can add the list of dev dependencies used:

image

MikeMcC399 commented 3 weeks ago

@faraktingi

Thank you for checking that the issue still occurs with Cypress 13.0.0. It will however be difficult to research this issue in more detail without a reproducible example since according to the screenshot of part of your package.json you have a complex project setup. You may be able to make progress debugging this issue on your own if you can make your project simpler for test purposes to see if you can find which settings or dependencies are related to the error message:

The automation client disconnected. Cannot continue running tests

Similar issues have been reported in the past in the Cypress issue list however I did not find anything helpful when I searched there.

Good luck!

faraktingi commented 3 weeks ago

Thanks for your message @MikeMcC399

I could progress a bit by adding debugging mode DEBUG=cypress:*

Then I can see from logs that firefox is failing with the following error:

  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 36044 } +143ms
  cypress:launcher:browsers firefox stderr: [Parent 172293, Main Thread] WARNING: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed: 'glib warning', file /builds/worker/checkouts/gecko/toolkit/xre/nsSigHandlers.cpp:187

(firefox:172293): Gtk-CRITICAL **: 15:26:19.462: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed
[Parent 172293, Main Thread] WARNING: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed: 'glib warning', file /builds/worker/checkouts/gecko/toolkit/xre/nsSigHandlers.cpp:187

(firefox:172293): Gtk-CRITICAL **: 15:26:19.463: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed
[Parent 172293, Main Thread] WARNING: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed: 'glib warning', file /builds/worker/checkouts/gecko/toolkit/xre/nsSigHandlers.cpp:187 +4s
  cypress:launcher:browsers firefox stderr: (firefox:172293): Gtk-CRITICAL **: 15:26:19.463: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed +0ms
  cypress:launcher:browsers firefox stderr: ExceptionHandler::GenerateDump cloned child 173979
ExceptionHandler::SendContinueSignalToChild sent continue signal to child
ExceptionHandler::WaitForContinueSignal waiting for continue signal... +6ms
  cypress:launcher:browsers firefox stderr: Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error. +345ms
  cypress:launcher:browsers firefox exited: { code: 11, signal: null } +12ms
MikeMcC399 commented 3 weeks ago

@faraktingi

It's good that you were able to check debug logs! 👍🏻

It seems that the issue is not specific to Cypress Docker images as I was able to find other reports with the same error messages:

faraktingi commented 3 weeks ago

Hello,

Just wanted to mention that I was able to avoid getting this failure when I run cypress on Firefox with --headed parameter as it is documented here.

MikeMcC399 commented 3 weeks ago

@faraktingi

Congratulations on finding a workaround!

I suggest to close this issue for Cypress Docker images as it seems that it would need a fix for Firefox and as far I understand it, no fix is available at this time.

If there is a new version of Firefox available with a fix, then this issue could be re-opened to update the cypress/browsers image with a fixed version.

faraktingi commented 3 weeks ago

I agree - Thanks @MikeMcC399