currents-dev / cypress-debugger

Debug failed CI cypress tests with cloud-based replayable traces
https://cypress-debugger.dev
Other
54 stars 10 forks source link

[CSR-833] cy.task('dumpEvents') task is timing out for 15 min+ spec runs #63

Open akashroshan135 opened 1 year ago

akashroshan135 commented 1 year ago

Before opening, please confirm:

Environment information

``` # Put output below this line System: OS: Linux 5.15 Ubuntu 20.04.5 LTS (Focal Fossa) CPU: (8) x64 Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz Memory: 2.79 GB / 15.49 GB Container: Yes Shell: 5.0.17 - /bin/bash Binaries: Node: 16.19.0 - /usr/bin/node npm: 8.19.3 - /usr/bin/npm Browsers: Chrome: 108.0.5359.124 npmPackages: eslint: ^8.46.0 => 8.48.0 prettier: ^3.0.0 => 3.0.3 npmGlobalPackages: corepack: 0.15.1 npm: 8.19.3 ```

Describe the bug

When executing a spec which exceeds past 10-15 mins of runtime, the cy.task('dumpEvents') task is timing out on the default 60000ms task timeout. We increased the timeout to 300000ms (5 mins) and set failedTestsOnly: true parameter so only the failed test (which is only a couple mins long) will be stored but we are still getting the same issue.

image

Expected behavior

The cy.task('dumpEvents') should not timeout for the failed test even if the complete spec file execution exceed 15 mins+ of runtime.

Command and Setup

### Command (share the exact `cypress` or `cypress-cloud` command you're running) ``` # Put output below this line cypress-cloud run --spec cypress/e2e/test.spec.js --parallel --record --key xxxxxxxxxxxx --ci-build-id test-1 ``` ### Setup files cypress.config.j|ts|json ``` # Put output below this line // eslint-disable-next-line no-undef const { defineConfig } = require('cypress'); // eslint-disable-next-line no-undef const { cloudPlugin } = require('cypress-cloud/plugin'); // eslint-disable-next-line no-undef module.exports = defineConfig({ viewportWidth: 1500, viewportHeight: 1200, chromeWebSecurity: false, watchForFileChanges: false, redirectionLimit: 100, defaultCommandTimeout: 60000, pageLoadTimeout: 100000, reporter: 'mochawesome', reporterOptions: { reportDir: 'cypress/reporters', overwrite: true, html: false, js: true, }, video: false, e2e: { setupNodeEvents(on, config) { // eslint-disable-next-line no-undef require('./cypress/plugins/index.js')(on, config); return cloudPlugin(on, config); }, specPattern: ['cypress/e2e/**/*.spec.js'], }, }); ```

Full log and debug output

``` # Put your logs below this line "after each" hook: P for "test": CypressError: `cy.task('dumpEvents')` timed out after waiting `300000ms`. https://on.cypress.io/api/task Because this error occurred during a `after each` hook we are skipping all of the remaining tests. at (https://app3.syscloud.com/__cypress/runner/cypress_runner.js:151131:78) at tryCatcher (https://app3.syscloud.com/__cypress/runner/cypress_runner.js:18744:23) at (https://app3.syscloud.com/__cypress/runner/cypress_runner.js:13866:41) at tryCatcher (https://app3.syscloud.com/__cypress/runner/cypress_runner.js:18744:23) at Promise._settlePromiseFromHandler (https://app3.syscloud.com/__cypress/runner/cypress_runner.js:16679:31) at Promise._settlePromise (https://app3.syscloud.com/__cypress/runner/cypress_runner.js:16736:18) at Promise._settlePromise0 (https://app3.syscloud.com/__cypress/runner/cypress_runner.js:16781:10) at Promise._settlePromises (https://app3.syscloud.com/__cypress/runner/cypress_runner.js:16857:18) at _drainQueueStep (https://app3.syscloud.com/__cypress/runner/cypress_runner.js:13451:12) at _drainQueue (https://app3.syscloud.com/__cypress/runner/cypress_runner.js:13444:9) at ../../node_modules/bluebird/js/release/async.js.Async._drainQueues (https://app3.syscloud.com/__cypress/runner/cypress_runner.js:13460:5) at Async.drainQueues (https://app3.syscloud.com/__cypress/runner/cypress_runner.js:13330:14) From Your Spec Code: at Context.P (webpack:///./node_modules/@currents/cypress-debugger-support/index.js:1:67245) ```
smarigowda commented 1 year ago

I am also observing the same in our overnight run.

image