cypress-io / cypress

Fast, easy and reliable testing for anything that runs in a browser.
https://cypress.io
MIT License
46.69k stars 3.16k forks source link

Cypress 3.4.0 hangs in CI with Chrome 75 #4731

Closed rpd10 closed 3 years ago

rpd10 commented 5 years ago

Current behavior:

A test suite that runs correctly in CI using Chrome 73 is now hanging after using Chrome 75.

We have a suite of tests that has been working in CI builds using Chrome 73, and works locally using Chrome 75 and cypress open. When we upgrade to use the cypress/browsers:node10.11.0-chrome75 Docker image, the test runs started to hang after a couple of minutes. There's no distinct pattern, sometimes it gets through 5 specs, sometimes 7, 10, etc (i.e. I don't believe it's a problem with a specific test).

Desired behavior:

Run through the whole suite of tests.

Steps to reproduce: (app code and test code)

This is testing an Angular application. In CI, we are using a Docker image based on cypress/browsers: FROM cypress/browsers:node10.11.0-chrome75, with browser set to chrome and headless mode turned on.

We are using cypress-failed-log and cypress-skip-and-only-ui` plugins. We use the standard spec reporter.

I turned DEBUG logs on and captured the logs from the failing run here: https://gist.github.com/rpd10/5f5522a3b76f79b1e952b81b36411e06

If it helps, I can attach partial DEBUG logs from a successful Chrome 73 run.

Versions

Cypress 3.4.0 and 3.3.2. Chrome 75 (FROM cypress/browsers:node10.11.0-chrome75). GitLab 11.11.5.

frankind commented 5 years ago

I face this problem too. Now I can run both chrome 73 and 74 in docker but all chrome 75 (all node versions) it is hang.

Residentkoopa commented 5 years ago

i'm having the same issue since 3.3.2. i do not use docker i'm having this issue while running node_modules.bin\cypress open

Q-back commented 5 years ago

as @frankind said. https://github.com/cypress-io/cypress-docker-images/tree/master/browsers/node10.2.1-chrome74 it's the latest version which works

jbensso commented 4 years ago

I'm also hitting hangs and abnormal behavior in Chrome 77.0.3865.75. I need to build my own CI containers and tried to use the following excerpt from Cypress's Chrome Dockerfile in my own custom Dockerfiles.

RUN \
  wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
  echo "deb http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list && \
  apt-get update && \
  apt-get install -y dbus-x11 google-chrome-stable && \
  rm -rf /var/lib/apt/lists/*

Since the Chrome distributions have all been upgraded the excerpt now installs Chrome 77 instead of Chrome 74.

It would be helpful if Cypress could host the versions of Chrome it supports, available for developers to download.

kuceb commented 4 years ago

@jbensson8790 have you seen https://chromium.cypress.io/ ?

jbensso commented 4 years ago

Awesome, thanks @Bkucera!

alexanderchan commented 4 years ago

Seeing this as well on chrome Google Chrome 77.0.3865.90

frankind commented 4 years ago

I still found this problem on Docker Chrome 77 with all node versions

ptoshniw commented 4 years ago

I still found this issue in chrome 77 version and took two weeks time to figure out that it is not Network/Script/Proxy issue but chrome issue.

dthomason commented 4 years ago

I'm experiencing this issue as well. Hopefully it gets fixed soon.

Rodyb commented 4 years ago

I have the same problem.

However when adding: npx cypress run --browser chrome --spec cypress\integration\examples\POS\Login\002.Login.js

--browser chrome will work, so probably it's an electron issue.

dthomason commented 4 years ago

cypress run --browser chrome works for most of my tests but intermittently it will stall. One way of avoiding this was to break out my docker run in multiple tasks per spec folder. This is not ideal though when needing to parralize.

frankind commented 4 years ago

Finally, I get a workaround from my friend to be able to run on chrome docker version > 74 with this https://github.com/cypress-io/cypress/issues/350#issuecomment-503231128 I have tried with node10.16.0-chrome77, and it works properly. (With Cypress 3.4.1) No more hang anymore. image

brian-mann commented 4 years ago

With 3.5.0 out we now record videos in Chrome.

@frankind we've looked into adding this option permanently, but we've seen it also be a source of crashes as well - which is why we've hesitated to add it.

alexanderchan commented 4 years ago

We implemented the shm as recommended in https://github.com/cypress-io/cypress/issues/350#issuecomment-503231128 but still had the crashes. In addition to the disabling shm, two things helped that so far 🤞have solved the issue with the cypress 3.7.0 and chrome 78:

We didn't see any dreaded CircleCI 137 out of memory issues so it might just be a coincidence that the split and memory size fixed the problem. When I get some more time I may try to reduce the container size to see if it was one or the other root cause. Hope this helps someone.

Shelex commented 4 years ago

so we split the tests into two files

Yes, it helps us as well. When test suite execution time is more than 5-6 minutes - usually it hangs. (Your "critical execution time" may be above 6 min as we have a lot of additional logging in background in our case) The problem is that as cypress return no errors in case browser crashes or hangs - pipeline (Concourse CI) with container keep running and should be terminated manually.

LienLotus commented 4 years ago

I face this problem too on Chrome 80.0.3987.100-1, node10.16.0-chrome77, and cypress 4.0.1. But it's working fine on Cypress 3.8.3 @jennifer-shehane : is it a regression bug?

jennifer-shehane commented 3 years ago

Since this issue hasn't had activity in a while, we'll close the issue until we can confirm this is still happening. Please comment if there is new information to provide concerning the original issue and we'd be happy to reopen.