cypress-io / cypress

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

The Test Runner unexpectedly exited via a exit event with signal SIGSEGV #18464

Closed nancy-tache closed 1 year ago

nancy-tache commented 2 years ago

Current behavior

1) Select of Lenguage

The Test Runner unexpectedly exited via a exit event with signal SIGSEGV

Please search Cypress documentation for possible solutions:

https://on.cypress.io

Check if there is a GitHub issue describing this crash:

https://github.com/cypress-io/cypress/issues

Consider opening a new issue.


Platform: linux (Ubuntu - 20.04) Cypress Version: 8.6.0

Desired behavior

run the tests correctly

Test code to reproduce

n/a is private

Cypress Version

8.6.0

Other

The Test Runner unexpectedly exited via a exit event with signal SIGSEGV

Please search Cypress documentation for possible solutions:

https://on.cypress.io

Check if there is a GitHub issue describing this crash:

https://github.com/cypress-io/cypress/issues

Consider opening a new issue.


Platform: linux (Ubuntu - 20.04) Cypress Version: 8.6.0 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! functional-test@1.0.0 scripts: cypress run npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the functional-test@1.0.0 scripts script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:

cfc19 commented 2 years ago

I am also experiencing the same issue since updating to Cypress 8.6.0 I have gone back to 8.5.0 and the issue is no longer present.

jmoses commented 2 years ago

I'm also seeing this with Cypres 8.6.0, and a littler higher in the log I see:

[2021-10-20T13:09:35.143Z] [61:1020/130934.581431:ERROR:bus.cc(392)] Failed to connect to the bus: Address does not contain a colon
MaaikeFox commented 2 years ago

I got the same error after upgrading to 8.6.0 Downgrading to 8.5.0 fixed the crashes.

MaaikeFox commented 2 years ago

Dear Cypress guru's What information do you need to debug and fix this? I can't upgrade to 8.6.0, 8.7.0 or 9.0.0, all have this crash issue. It happens sometimes, during a test run in between tests, so the run did actually start, and then the test runner just stops

I'm running on Azure Devops and get this log on either of those versions:

Part of the log where this starts:

────────────────────────────────────────────────────────────────────────────────────────────────────

  Running:  order/order-mobile.spec.ts                                                     (2 of 14)
[1832:1117/070129.989880:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")

  Order on mobile viewport
    ✓ I can start an order on a mobile viewport (46670ms)

  1 passing (2m)

[mochawesome] Report JSON saved to /home/vsts/work/1/s/cypress/reports/.jsons/mochawesome_001.json

  (Results)

 ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        0                                                                                │
  │ Passing:      0                                                                                │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     0 seconds                                                                        │
  │ Spec Ran:     order/xxxx.spec.ts                                                  │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘

────────────────────────────────────────────────────────────────────────────────────────────────────

  Running:  order/order-mobile.spec.ts                                                     (2 of 14)
[1966:1117/040149.931535:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")

  Order on mobile viewport
The Test Runner unexpectedly exited via a exit event with signal SIGSEGV

Please search Cypress documentation for possible solutions:

https://on.cypress.io

Check if there is a GitHub issue describing this crash:

https://github.com/cypress-io/cypress/issues

Consider opening a new issue.

----------

Platform: linux-x64 (Ubuntu - 20.04)
Cypress Version: 9.0.0

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! cypress-e2e@1.0.0 cy:run: `cypress run`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the cypress-e2e@1.0.0 cy:run script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/vsts/.npm/_logs/2021-11-17T04_04_53_484Z-debug.log
##[error]Bash exited with code '1'.
Finishing: Bash

This log also contains this error, which I think is caused by ubunty virtual machine and has no influence on this crashing, since it has been there before

[1832:1117/070129.989880:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
mjhenkes commented 2 years ago

@MaaikeFox, is there a specific spec that causes the failure? Is it possible to create a minimally reproducible test case?

saadidrees711 commented 2 years ago

@jennifer-shehane Continues to be an issue on cypress 9.1.1 https://github.com/AltaPay/plugin-magento2-community/actions/runs/1581368560

MaaikeFox commented 2 years ago

@mjhenkes I'see if I can see how it is reproducible. It did not seem spec related, but I'll do a set of test runs on a never Cypress version to see what happens. For now I'm still stuck on version 8.5.0

I've seen online someone who experienced the same while using circleCI, so it is not just Azure Devops where this happens. Quite some people are now stuck at an older Cypress version: https://stackoverflow.com/questions/69658152/cypress-test-runner-unexpectedly-exited-via-a-exit-event-with-signal-sigsegv-in

MaaikeFox commented 2 years ago

I don't see this error happening anymore on 9.1.1 and 9.2.0 I did not see something on the change logs that looked like a fix for this, but maybe it did get fixed?

MaaikeFox commented 2 years ago

Still not seen this error again after using 9.2.0 Issue can therefore maybe be closed

sakulstra commented 2 years ago

Made a super weird observation on that. Setting video: true seems to "solve" the issue for me (slowing down the ci quite a bit though) - very weird as this seems pretty much unrelated.

MaaikeFox commented 2 years ago

Hmm really @sakulstra . I've also set video to true in the mean time... So maybe that then solved it? For me it is good for now, so I will not test this through. But for the future it would be good if cypress heroes would still fix this regression on 8.6.0

btw Lucas, you can limit the slowing down by video recording by adding to your cypress.json { "videoCompression": false, "videoUploadOnPasses": false, }

alrasch commented 2 years ago

I'm having the same problem on 9.2.0.

node_modules/.bin/cypress open
[13867:0110/043736.889023:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[13867:0110/043736.889078:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[14022:0110/043736.956598:WARNING:vaapi_wrapper.cc(586)] VAAPI video acceleration not available for swiftshader
[14022:0110/043736.956763:ERROR:gpu_init.cc(453)] Passthrough is not supported, GL is swiftshader, ANGLE is 
[13867:0110/043737.013936:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[13867:0110/043737.042670:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
/usr/bin/node: --openssl-legacy-provider is not allowed in NODE_OPTIONS

I've also tried the same with --browser chromium, and a few other browsers, but always the same result.

Version info:

/node_modules/.bin/cypress --version
Cypress package version: 9.2.0
Cypress binary version: 9.2.0
Electron version: 15.2.0
Bundled Node version: 16.5.0
npm -v && node -v
8.3.0
v17.3.0

The failure happens on an Arch machine, but succeeds with the same parameters on an Ubuntu box. I'm finding it hard to troubleshoot though. There's not much to go on, as far as I can see.

UPDATE: Downgraded to 8.5.0 and it works again.

a11smiles commented 2 years ago

Interestingly enough this may be an issue with Electron, not Cypress, which could be why people are having intermittent issues regardless of what version of Cypress they're running.

I was getting the same errors for each spec file. I then added '--browser chrome' as a parameter. Now, I only get the error when Cypress first "opens" in my CI pipeline, but all of my spec files run without issue now.

kutenai commented 2 years ago

I just tried to upgrade from 8.5.0 to 9.3.1, and the problem, which I've had before, started again. Reverted back to 8.5.0.

I suspect it's not a problem with Cypress per-se, but with something related that cypress uses. I'm not sure how to check all of the 'other stuff', but it seems outside of the cypress code base.. well, at least partially.

What changed after 8.5.0 in what cypress accesses?? What tools/versions/options does cypress use that might have been modified then?

Papooch commented 2 years ago

The Changelog for Cypress 8.6.0 states that they updated from electon 13 to 14. That might be a clue.

choonkeat commented 2 years ago

thanks @a11smiles! --browser chrome worked for me. 7.6.0 and 9.5.0 on GitHub Action yes it was previously running electron by default

LucaNerlich commented 2 years ago

This seems fixed with 9.6.0

Radmess commented 2 years ago

Fixed by installing chrome on the Docker and running --browser chrome as well.

xeger commented 2 years ago

Still happening to me with 9.6.0, every single time I exit Cypress runner cleanly on my M1 Mac.

[10796:0506/204452.034373:ERROR:node_controller.cc(567)] Trying to re-add dropped peer D6582E1017EA117A.F702DEDCA4F22104
Assertion failed: (0), function uv_close, file ../deps/uv/src/unix/core.c, line 178.
The Test Runner unexpectedly exited via a exit event with signal SIGABRT
magnolia93 commented 2 years ago

I ran into this issue when running cypress 9.5.3 on jenkins using cypress/base:14.17.3 docker image. Deleteing video: false from cypress.json as @sakulstra said fixed the problem. So weird...

Santas commented 2 years ago

Still happens on: Cypress: 10.3.0 Browser: Electron 100 (headless) Node Version: v16.13.2 MacOS: 12.4 M1

Workaround with removing video: false helps.

DaveMyth commented 1 year ago

Hello everyone, I am facing the same issue while running a test using cypress 12:

wmiklasewicz commented 1 year ago

I have the same issue for version 12.6.0/12.5.1, this is soo annoying...

PhilippeMorier commented 1 year ago

I ran Cypress with DEBUG=cypress:* in my nx repo, i.e.:

DEBUG=cypress:* npx nx e2e components-e2e

Which printed out that the system is Missing X server or $DISPLAY. Sounds like a quite clear message :sweat_smile:. Unfortunately, I don't understand yet why it is missing, since I am installing the dependencies, especially xvfb :thinking:.

apt-get install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb
cypress:snapshot:info Caching 3372, defining 4275 modules! Using cache +0ms
cypress:snapshot:debug initializing packherd require +0ms
cypress:server:appdata path: /root/.config/Cypress/cy/production/browsers +0ms
cypress:server:cypress starting cypress with argv [ '/root/.cache/Cypress/12.5.1/Cypress/Cypress', '--no-sandbox', '--', '--run-project', 'apps/components-e2e', '--browser', 'chrome', '--config', '{"e2e":{}}', '--config-file', 'cypress.config.ts', '--env', '{}', '--output-path', '/tmp/tmp-6853-LshH3v8EE3cI', '--record', 'false', '--testing-type', 'e2e', '--cwd', '/pwd/of/project', '--userNodePath', '/usr/bin/node', '--userNodeVersion', '16.15.1' ] +0ms
cypress:server:args argv array: [ '/root/.cache/Cypress/12.5.1/Cypress/Cypress', '--no-sandbox', '--run-project', 'apps/components-e2e', '--browser', 'chrome', '--config', '{"e2e":{}}', '--config-file', 'cypress.config.ts', '--env', '{}', '--output-path', '/tmp/tmp-6853-LshH3v8EE3cI', '--record', 'false', '--testing-type', 'e2e', '--cwd', '/pwd/of/project', '--userNodePath', '/usr/bin/node', '--userNodeVersion', '16.15.1' ] +0ms
cypress:server:args parsed argv options { options: { _: [ '/root/.cache/Cypress/12.5.1/Cypress/Cypress' ], sandbox: false, 'run-project': 'apps/components-e2e', runProject: 'apps/components-e2e', browser: 'chrome', config: '{"e2e":{}}', 'config-file': 'cypress.config.ts', configFile: 'cypress.config.ts', env: '{}', 'output-path': '/tmp/tmp-6853-LshH3v8EE3cI', outputPath: '/tmp/tmp-6853-LshH3v8EE3cI', record: 'false', 'testing-type': 'e2e', testingType: 'e2e', cwd: '/pwd/of/project', userNodePath: '/usr/bin/node', userNodeVersion: '16.15.1' } } +1ms
cypress:server:args argv parsed: { _: [ '/root/.cache/Cypress/12.5.1/Cypress/Cypress' ], sandbox: false, runProject: 'apps/components-e2e', browser: 'chrome', config: { e2e: {} }, configFile: 'cypress.config.ts', env: {}, outputPath: '/tmp/tmp-6853-LshH3v8EE3cI', record: false, testingType: 'e2e', cwd: '/pwd/of/project', userNodePath: '/usr/bin/node', userNodeVersion: '16.15.1', invokedFromCli: true } +4ms
cypress:server:util:proxy found proxy environment variables { npm_config_noproxy: '' } +0ms
cypress:server:args options { _: [ '/root/.cache/Cypress/12.5.1/Cypress/Cypress' ], sandbox: false, runProject: 'apps/components-e2e', browser: 'chrome', config: { e2e: {}, env: {} }, configFile: 'cypress.config.ts', outputPath: '/tmp/tmp-6853-LshH3v8EE3cI', record: false, testingType: 'e2e', cwd: '/pwd/of/project', userNodePath: '/usr/bin/node', userNodeVersion: '16.15.1', invokedFromCli: true } +2ms
cypress:server:args argv options: { _: [ '/root/.cache/Cypress/12.5.1/Cypress/Cypress' ], sandbox: false, runProject: 'apps/components-e2e', browser: 'chrome', config: { e2e: {}, env: {} }, configFile: 'cypress.config.ts', outputPath: '/tmp/tmp-6853-LshH3v8EE3cI', record: false, testingType: 'e2e', cwd: '/pwd/of/project', userNodePath: '/usr/bin/node', userNodeVersion: '16.15.1', invokedFromCli: true, projectRoot: '/pwd/of/project/apps/components-e2e' } +0ms
cypress:server:cypress from argv [ '/root/.cache/Cypress/12.5.1/Cypress/Cypress', '--no-sandbox', '--run-project', 'apps/components-e2e', '--browser', 'chrome', '--config', '{"e2e":{}}', '--config-file', 'cypress.config.ts', '--env', '{}', '--output-path', '/tmp/tmp-6853-LshH3v8EE3cI', '--record', 'false', '--testing-type', 'e2e', '--cwd', '/pwd/of/project', '--userNodePath', '/usr/bin/node', '--userNodeVersion', '16.15.1' ] got options { _: [ '/root/.cache/Cypress/12.5.1/Cypress/Cypress' ], sandbox: false, runProject: 'apps/components-e2e', browser: 'chrome', config: { e2e: {}, env: {} }, configFile: 'cypress.config.ts', outputPath: '/tmp/tmp-6853-LshH3v8EE3cI', record: false, testingType: 'e2e', cwd: '/pwd/of/project', userNodePath: '/usr/bin/node', userNodeVersion: '16.15.1', invokedFromCli: true, projectRoot: '/pwd/of/project/apps/components-e2e' } +9ms
cypress:server:cypress scaling electron app in headless mode +0ms
❗👀 [7037:0222/164743.498968:ERROR:ozone_platform_x11.cc(240)] Missing X server or $DISPLAY ❗👀
[7037:0222/164743.498998:ERROR:env.cc(255)] The platform failed to initialize.  Exiting.
<s> [webpack.Progress] 61% building 13/14 entries 95/95 dependencies 1796/71 modules
2023-02-22T16:47:44.408Z cypress:cli child event fired { event: 'exit', code: null, signal: 'SIGSEGV' }
2023-02-22T16:47:44.409Z cypress:cli detecting arch { osPlatform: 'linux', osArch: 'x64' }
2023-02-22T16:47:44.484Z cypress:cli arm uname -m result: { stdout: 'x86_64' } 
2023-02-22T16:47:44.485Z cypress:cli child event fired { event: 'close', code: null, signal: 'SIGSEGV' }
The Test Runner unexpectedly exited via a exit event with signal SIGSEGV

Please search Cypress documentation for possible solutions:
https://on.cypress.io

Check if there is a GitHub issue describing this crash:
https://github.com/cypress-io/cypress/issues

Consider opening a new issue.
----------

Platform: linux-x64 (Ubuntu - 20.04)
Cypress Version: 12.5.1

Due to some "internal" reasons we need to install the NVIDIA drivers (Tesla T4), X11, TurboVNC (for 2D X server) and VirtualGL (for 3D X server) in our Dockerfile:

ENV VGL_DISPLAY=:0.0
ENV DISPLAY=:1 ❗👀
ENV NVIDIA_VISIBLE_DEVICES=all
ENV NVIDIA_DRIVER_CAPABILITIES=all

# Install system dependencies.
RUN --mount=type=ssh,id=deploy_key --mount=type=secret,id=apt-auth.key,dst=/etc/apt/auth.conf.d/secret.conf,required \
  apt update && \
  #
  ## Install the NVIDIA drivers (Tesla T4 recommended), X11, VNC and VGL.
  apt install -y xserver-xorg-dev nvidia-driver-515 linux-headers-$(uname -r) xterm xinit ubuntu-desktop tigervnc-common && \
  nvidia-xconfig -a --use-display-device=None --virtual=1280x1024 && \
  wget https://sourceforge.net/projects/virtualgl/files/2.6.5/virtualgl_2.6.5_amd64.deb/download -O virtualgl_2.6.5_amd64.deb && \
  sudo dpkg -i virtualgl*.deb && \
  rm virtualgl*.deb && \
  wget https://sourceforge.net/projects/turbovnc/files/2.2.6/turbovnc_2.2.6_amd64.deb/download -O turbovnc_2.2.6_amd64.deb && \
  sudo dpkg -i turbovnc*.deb && \
  rm turbovnc*.deb && \
  /opt/VirtualGL/bin/vglserver_config -config +s +f -t && \
  chmod +x /root/gpu_runner/fix_xorg_conf.py && \

My feeling is that this installation conflicts with Cypress preventing it from finding/using an x server.

Does maybe someone have an idea to overcome that :bouquet:? Maybe starting xvfb manually, like written in the docs?

Update

Indeed it looks like we needed to start TurboVNC manually with /opt/TurboVNC/bin/vncserver ${DISPLAY}

The pipeline is green :heavy_check_mark: :tada:!

These are the new logs:

2023-02-23T09:04:23.393Z cypress:cli verifying Cypress app
2023-02-23T09:04:23.394Z cypress:cli checking environment variables
2023-02-23T09:04:23.394Z cypress:cli checking if executable exists /root/.cache/Cypress/12.5.1/Cypress/Cypress
2023-02-23T09:04:23.395Z cypress:cli Binary is executable? : true
2023-02-23T09:04:23.395Z cypress:cli binaryDir is  /root/.cache/Cypress/12.5.1/Cypress
2023-02-23T09:04:23.395Z cypress:cli Reading binary package.json from: /root/.cache/Cypress/12.5.1/Cypress/resources/app/package.json
2023-02-23T09:04:23.396Z cypress:cli Found binary version 12.5.1 installed in: /root/.cache/Cypress/12.5.1/Cypress
2023-02-23T09:04:23.405Z cypress:cli { verified: true }
2023-02-23T09:04:23.405Z cypress:cli is Verified ? true
2023-02-23T09:04:23.406Z cypress:cli:run processing run options { project: 'apps/components-e2e', configFile: 'cypress.config.ts', browser: 'chrome', env: '{}', tag: undefined, exit: true, headed: false, record: false, key: null, parallel: false, ciBuildId: undefined, group: undefined, config: '{"e2e":{}}', testingType: 'e2e', outputPath: '/tmp/tmp-7863-hXsTH84qDsef', spec: null, reporter: null, reporterOptions: null }
2023-02-23T09:04:23.406Z cypress:cli:run --key is not set, looking up environment variable CYPRESS_RECORD_KEY
2023-02-23T09:04:23.406Z cypress:cli:run run to spawn.start args ["--run-project","apps/components-e2e","--browser","chrome","--config","{\"e2e\":{}}","--config-file","cypress.config.ts","--env","{}","--output-path","/tmp/tmp-7863-hXsTH84qDsef","--record",false,"--testing-type","e2e"]
2023-02-23T09:04:23.407Z cypress:cli DISPLAY environment variable is set to :1 on Linux
Assuming this DISPLAY points at working X11 server,
Cypress will not spawn own Xvfb
NOTE: if the X11 server is NOT working, Cypress will exit without explanation,
  see https://github.com/cypress-io/cypress/issues/4034
Solution: Unset the DISPLAY variable and try again:
  DISPLAY= npx cypress run ...
2023-02-23T09:04:23.407Z cypress:cli needs to start own Xvfb? false
2023-02-23T09:04:23.407Z cypress:cli spawning, should retry on display problem? true
2023-02-23T09:04:23.410Z cypress:cli passing DISPLAY :1
2023-02-23T09:04:23.411Z cypress:cli spawn args [ '--no-sandbox', '--', '--run-project', 'apps/components-e2e', '--browser', 'chrome', '--config', '{"e2e":{}}', '--config-file', 'cypress.config.ts', '--env', '{}', '--output-path', '/tmp/tmp-7863-hXsTH84qDsef', '--record', false, '--testing-type', 'e2e', '--cwd', '/pwd/of/project', '--userNodePath', '/usr/bin/node', '--userNodeVersion', '16.15.1' ] { detached: false, stdio: [ 'inherit', 'inherit', 'pipe' ] }
2023-02-23T09:04:23.411Z cypress:cli spawning Cypress with executable: /root/.cache/Cypress/12.5.1/Cypress/Cypress
2023-02-23T09:04:23.503Z cypress:cli piping child STDERR to process STDERR
ArkaPrabhaChowdhury commented 1 year ago

Still facing this issue...

nagash77 commented 1 year ago

I know this is an old issue. There are conflicting reports of the problem being resolved for some and not for others. Does anyone on this thread have a reproduction on a current version of Cypress they can share that would allow Cypress engineers to investigate?

nagash77 commented 1 year ago

Right now there doesn't seem to be enough information to reproduce the problem on our end. We'll have to close this issue until we can reproduce it. This does not mean that your issue is not happening - it just means that we do not have a path to move forward.

Please open a new issue with a reproducible example and link to this issue. Here are some tips for providing a Short, Self Contained, Correct, Example and our own Troubleshooting Cypress guide.