cypress-debugger icon indicating copy to clipboard operation
cypress-debugger copied to clipboard

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

Open akashroshan135 opened this issue 1 year ago • 1 comments

Before opening, please confirm:

  • [X] I have searched for duplicate or closed issues and discussions.
  • [X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • [X] I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

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 <unknown> (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 <unknown> (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)

akashroshan135 avatar Sep 15 '23 12:09 akashroshan135

I am also observing the same in our overnight run.

image

smarigowda avatar Oct 04 '23 08:10 smarigowda