Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible infinite loop while running in Jenkins with retries #14972

Closed
vidarc opened this issue Feb 8, 2021 · 12 comments
Closed

Possible infinite loop while running in Jenkins with retries #14972

vidarc opened this issue Feb 8, 2021 · 12 comments
Labels
stage: needs information Not enough info to reproduce the issue stale no activity on this issue for a long period

Comments

@vidarc
Copy link

vidarc commented Feb 8, 2021

Current behavior

While running Cypress with a docker image inside Jenkins, we are currently encountering an infinite loop (or what appears to be one). Seems related to this issue: #9040, but I am still encountering the problem with versions 6.3.0 and 6.4.0 of cypress.

With DEBUG=cypress:* set, I get these two messages repeatedly until I either abort the Jenkins build or lerna crashes.

cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 }
cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {}

Appears to be related to retries, as it can successfully run occasionally, and I've seen that when it does pass all tests, the tests ran quickly with no retry attempts.

Desired behavior

Test code to reproduce

Unfortunately, I can't share my code, but can try and provide any more information you need.

Versions

Issue exists in 6.2.1, 6.3.0, and 6.4.0 at minimum. Haven't heard of or seen this issue from previous versions.

@jennifer-shehane
Copy link
Member

The debugger lines are just normal activity that happens when a run is running - so it's likely hanging.

  • Does the hanging go away when you remove test retries?
  • Can you provide any of your configuration? cypress.json?
  • When did the hanging begin? Was it always hanging?
  • Does it hang locally? Does it hang when running in --browser chrome?
  • Any way to reproduce - a simplified example or pseudo code of what you're doing.

There's really nothing we can do without a way to see the hanging on our side. So as much information you can give for us to get there would be helpful.

@jennifer-shehane jennifer-shehane added the stage: needs information Not enough info to reproduce the issue label Feb 9, 2021
@RahulAggarwal-V31848
Copy link

RahulAggarwal-V31848 commented Feb 17, 2021

I am experiencing the same issue running Cypress in an Azure DevOps pipeline. The pipeline runs over 330 tests, and we were experiencing hangs 8-10 minutes into the testing cycle which would eventually cause the task to timeout. After reading issue 9040 I tried upgrading to 6.4.0 which helped, allowing the tests to run to longer, but it did not alleviate the issue. I added the cypress_failed_log plugin and could clearly see the issue was hanging on retries as the tests progressed.

Our initial retry setting was 3 in cypress.json. Setting this down to 2 allowed the tests to proceed further, and with a setting of 1 we were able to complete the entire test suite.

Tests are running headless using electron in a Linux VM.
Cypress version 6.4.0
336 tests run, 69 failures

Here is the log output of the start and finish when running 6.0.1:
Retries: runmode 3, openmode 1

2021-02-11T17:06:12.1605307Z ** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
.
.
.
2021-02-11T17:10:44.2970834Z contains /^(\w+\s*)+/
2021-02-11T17:10:44.2971553Z assert expected :not(script,style):cy-contains('/^(\w+\s)+/'), [type='submit'][value~='/^(\w+\s)+/'] to exist in the DOM
2021-02-11T17:10:44.2972505Z saved as log in: cypress/logs/failed-account-summary-contact-info-line-item-formating-change-to-creative-to-allow-multiple-phone-numbers.json
2021-02-11T17:11:09.4381667Z (Attempt 2 of 4) Change to Creative to Allow Multiple Phone Numbers
2021-02-11T17:11:37.5562468Z (Attempt 3 of 4) Change to Creative to Allow Multiple Phone Numbers
2021-02-11T17:35:38.8975994Z ##[debug]Started cancellation of executing script
2021-02-11T17:35:38.9076564Z ##[debug]Exit code null received from tool '/bin/bash'
2021-02-11T17:35:46.3422613Z ##[error]The task has timed out.
2021-02-11T17:35:46.3437962Z ##[section]Finishing: Running tests

Test started 17:06:12, test hung 17:11:37, running time 5:25

This is the log output of the start and finish when running 6.4.0
Retries: runmode 3, openmode 1

2021-02-12T17:16:46.5956349Z ** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
.
.
.
2021-02-12T17:28:24.4672408Z 17) Display the ID Card for Printing (example #9)
2021-02-12T17:29:25.0555423Z (Attempt 1 of 4) Coverage Value formating (example #1)
2021-02-12T17:29:31.0966794Z (Attempt 1 of 4) Coverage Value formating (example #1)
2021-02-12T17:30:31.2130536Z (Attempt 2 of 4) Coverage Value formating (example #1)
2021-02-12T17:46:11.2987281Z ##[debug]Started cancellation of executing script
2021-02-12T17:46:11.3004942Z ##[debug]Exit code null received from tool '/bin/bash'
2021-02-12T17:46:18.8886208Z ##[error]The task has timed out.
2021-02-12T17:46:18.8900705Z ##[section]Finishing: Running tests

Tests started 17:16:46, tests hung 17:30:31, running time 13:45

And this is the log output of the start and finish when running 6.4.0
Retries: runmode 2, openmode 1

2021-02-12T19:18:00.0892994Z ** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
.
.
.
2021-02-12T19:28:58.0338184Z (Attempt 2 of 3) Display Groups of Three (example #2)
2021-02-12T19:29:59.5629434Z 21) Display Groups of Three (example #2)
2021-02-12T19:31:00.1766357Z (Attempt 1 of 3) Display Groups of Three (example #3)
2021-02-12T19:31:06.2239347Z (Attempt 1 of 3) Display Groups of Three (example #3)
2021-02-12T19:32:06.3329911Z (Attempt 2 of 3) Display Groups of Three (example #3)
2021-02-12T19:47:25.3196117Z ##[debug]Started cancellation of executing script
2021-02-12T19:47:25.3197895Z ##[debug]Exit code null received from tool '/bin/bash'
2021-02-12T19:47:32.8262390Z ##[error]The task has timed out.
2021-02-12T19:47:32.8275548Z ##[section]Finishing: Running tests

Tests stated 19:18:00, tests hung 19:32:06, running time 14:06

Again, setting retries to runmode 1, openmode 1 allowed the test cycle to complete. Hope this info helps!

@masone
Copy link

masone commented Feb 23, 2021

We're experiencing the same in two projects using Cypress 6.5.0

  • I can confirm that the issue only arises when retries are enabled
  • Retries generally seem to work - it's not that it would always happen when a retry kicks in
  • The issue appears intermittently, but I found no way to force or reproduce it
  • I have not yet seen the issue locally
  • Just from the log output, I can see some patterns. It seems to happen during the same set of tests. We do have some flaky tests, but the ones hanging when retries are on don't match the ones being flaky when retries are off. It sometimes happens before a test has started to run, sometimes during. Sometimes when all tests in a suite have run, sometimes during
  • The recorded videos of a failed run seem to be corrupted. The files are present, but they can't be opened
  • The projects both have a service worker
  • The servers are protected with basic auth
  • We have a React / Next.js application
  • We run on circleci with x-large instances (8 vCPU / 16 GB) and have parallelization on

Examples to illustrate the last lines before the tests hang
  Running:  scrollSections.test.js                                                          (3 of 5)

Too long with no output (exceeded 5m0s): context deadline exceeded
  Running:  filters/modals.test.js                                                          (3 of 5)

  Modals
    on desktop viewport
      (Attempt 1 of 3) opens price check information and modal
      (Attempt 1 of 3) opens price check information and modal

Too long with no output (exceeded 5m0s): context deadline exceeded
  Running:  search/advancedSearch.test.js                                                   (3 of 3)

  Advanced search
    ✓ updates the make in the sidebar when selected in the advanced search (2316ms)
    ✓ updates the model in the sidebar when selected in the advanced search (2244ms)
    (Attempt 1 of 3) updates the type in the sidebar when selected in the advanced search
    ✓ updates the type in the sidebar when selected in the advanced search (2348ms)
    (Attempt 1 of 3) updates the make in the advanced search when selected in the sidebar
    (Attempt 1 of 3) updates the make in the advanced search when selected in the sidebar

Too long with no output (exceeded 5m0s): context deadline exceeded
Last lines of the debug output
  cypress:proxy:http Entering stage { stage: 'IncomingRequest' } +1s
  cypress:proxy:http Running middleware { stage: 'IncomingRequest', middlewareName: 'LogRequest' } +0ms
  cypress:proxy:http:request-middleware proxying request { req: { method: 'GET', proxiedUrl: 'https://preprod.*********.ch/service-worker.js', headers: { host: 'preprod.*********.ch', connection: 'keep-alive', 'cache-control': 'max-age=0', accept: '*/*', 'service-worker': 'script', 'sec-fetch-site': 'same-origin', 'sec-fetch-mode': 'same-origin', 'sec-fetch-dest': 'serviceworker', referer: 'https://preprod.*********.ch/service-worker.js', 'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/6.5.0 Chrome/87.0.4280.141 Electron/11.2.3 Safari/537.36', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en-US', cookie: 'route=1614089227.371.174415.270914; cfyuuid4=5efa7a00-6f73-416d-b397-95276ba52b74cfyuuid4; preferredLanguage=en; i18next=en; OptanonConsent=isIABGlobal=false&datestamp=Tue+Feb+23+2021+14%3A07%3A07+GMT%2B0000+(Coordinated+Universal+Time)&version=6.14.0&hosts=&landingPath=https%3A%2F%2Fpreprod.*********.ch%2Fen&groups=C0001%3A1%2CC0002%3A0%2CC0003%3A0%2CC0004%3A0%2CSTACK42%3A0' } } } +2s
  cypress:proxy:http Running middleware { stage: 'IncomingRequest', middlewareName: 'MaybeEndRequestWithBufferedResponse' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingRequest', middlewareName: 'InterceptRequest' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingRequest', middlewareName: 'RedirectToClientRouteIfUnloaded' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingRequest', middlewareName: 'EndRequestsToBlockedHosts' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingRequest', middlewareName: 'StripUnsupportedAcceptEncoding' } +1ms
  cypress:proxy:http Running middleware { stage: 'IncomingRequest', middlewareName: 'MaybeSetBasicAuthHeaders' } +0ms
  cypress:server:server-base Getting remote state: { auth: undefined, props: { port: '443', tld: 'ch', domain: '*********' }, origin: 'https://preprod.*********.ch', strategy: 'http', visiting: false, domainName: '*********.ch', fileServer: null } +1s
  cypress:proxy:http Running middleware { stage: 'IncomingRequest', middlewareName: 'SendRequestOutgoing' } +0ms
  cypress:server:server-base Getting remote state: { auth: undefined, props: { port: '443', tld: 'ch', domain: '*********' }, origin: 'https://preprod.*********.ch', strategy: 'http', visiting: false, domainName: '*********.ch', fileServer: null } +0ms
  cypress:network:agent addRequest called { isHttps: true, href: 'https://preprod.*********.ch/service-worker.js' } +2s
  cypress:network:agent got family { family: 4, href: 'https://preprod.*********.ch/service-worker.js' } +0ms
  cypress:server:stream_buffer stream buffer writeable final called +2s
  cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 } +100ms
  cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {} +0ms
  cypress:server:request received status code & headers on request { requestId: 'request664', statusCode: 401, headers: { 'content-type': 'text/html' } } +2s
  cypress:server:request successful response received { requestId: 'request664' } +0ms
  cypress:proxy:http Leaving stage { stage: 'IncomingRequest' } +95ms
  cypress:proxy:http Entering stage { stage: 'IncomingResponse' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'LogResponse' } +0ms
  cypress:proxy:http:response-middleware received response { req: { method: 'GET', proxiedUrl: 'https://preprod.*********.ch/service-worker.js', headers: { host: 'preprod.*********.ch', connection: 'keep-alive', 'cache-control': 'max-age=0', accept: '*/*', 'service-worker': 'script', 'sec-fetch-site': 'same-origin', 'sec-fetch-mode': 'same-origin', 'sec-fetch-dest': 'serviceworker', referer: 'https://preprod.*********.ch/service-worker.js', 'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/6.5.0 Chrome/87.0.4280.141 Electron/11.2.3 Safari/537.36', 'accept-encoding': 'gzip', 'accept-language': 'en-US', cookie: 'route=1614089227.371.174415.270914; cfyuuid4=5efa7a00-6f73-416d-b397-95276ba52b74cfyuuid4; preferredLanguage=en; i18next=en; OptanonConsent=isIABGlobal=false&datestamp=Tue+Feb+23+2021+14%3A07%3A07+GMT%2B0000+(Coordinated+Universal+Time)&version=6.14.0&hosts=&landingPath=https%3A%2F%2Fpreprod.*********.ch%2Fen&groups=C0001%3A1%2CC0002%3A0%2CC0003%3A0%2CC0004%3A0%2CSTACK42%3A0' } }, incomingRes: { headers: { date: 'Tue, 23 Feb 2021 14:07:11 GMT', 'content-type': 'text/html', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'www-authenticate': 'Basic realm="Authentication Required - *********"', 'access-control-allow-origin': 'https://preprod.*********.ch', 'access-control-allow-credentials': 'true', 'access-control-allow-methods': 'PUT, GET, POST, OPTIONS', 'access-control-allow-headers': 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization' }, statusCode: 401 } } +2s
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'AttachPlainTextStreamFn' } +1ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'InterceptResponse' } +0ms
  cypress:net-stubbing:server:intercept-response InterceptResponse { req: { url: '/service-worker.js' }, backendRequest: undefined } +2s
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'PatchExpressSetHeader' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'SetInjectionLevel' } +0ms
  cypress:server:server-base Getting remote state: { auth: undefined, props: { port: '443', tld: 'ch', domain: '*********' }, origin: 'https://preprod.*********.ch', strategy: 'http', visiting: false, domainName: '*********.ch', fileServer: null } +96ms
  cypress:network:cors Parsed URL { port: '443', tld: 'ch', domain: '*********' } +2s
  cypress:proxy:http:response-middleware injection levels: { isInitial: false, wantsInjection: false, wantsSecurityRemoved: false } +1ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'OmitProblematicHeaders' } +1ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'MaybePreventCaching' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'MaybeStripDocumentDomainFeaturePolicy' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'CopyCookiesFromIncomingRes' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'MaybeSendRedirectToClient' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'CopyResponseStatusCode' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'ClearCyInitialCookie' } +0ms
  cypress:server:server-base Getting remote state: { auth: undefined, props: { port: '443', tld: 'ch', domain: '*********' }, origin: 'https://preprod.*********.ch', strategy: 'http', visiting: false, domainName: '*********.ch', fileServer: null } +1ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'MaybeEndWithEmptyBody' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'MaybeInjectHtml' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'MaybeRemoveSecurity' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'GzipBody' } +0ms
  cypress:proxy:http Running middleware { stage: 'IncomingResponse', middlewareName: 'SendResponseBodyToClient' } +0ms
  cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 } +102ms
  cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {} +0ms
  cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 } +97ms
  cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {} +1ms
  cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 } +235ms
  cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {} +0ms
  cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 } +49ms
  cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {} +0ms
  cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 } +100ms
  cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {} +0ms
  cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 } +99ms
  cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {} +0ms
  cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 } +100ms
  cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {} +0ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45294 } +2s
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45344 } +51ms
  cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 } +101ms
  cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {} +1ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45302 } +51ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45318 } +25ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45316 } +0ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45306 } +0ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45288 } +34ms
  cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 } +99ms
  cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {} +1ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45290 } +37ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45348 } +73ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45298 } +2ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45360 } +2ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45484 } +14ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45352 } +1ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 45480 } +0ms
Debug output of the process profiler
┌─────────┬───────────────────┬──────────────┬──────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐
  cypress:server:util:process_profiler │ (index) │       group       │ processCount │         pids         │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │
  cypress:server:util:process_profiler ├─────────┼───────────────────┼──────────────┼──────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤
  cypress:server:util:process_profiler │    0    │     'cypress'     │      1       │         '98'         │    2.95    │      2.08      │  320.48  │    265.21    │   320.48    │
  cypress:server:util:process_profiler │    1    │ 'electron-shared' │      4       │ '118, 287, 119, 325' │    2.48    │      0.87      │  231.71  │    208.54    │   249.32    │
  cypress:server:util:process_profiler │    2    │     'plugin'      │      1       │        '386'         │    0.02    │      0.03      │  155.98  │    156.49    │    157.5    │
  cypress:server:util:process_profiler │    3    │   'desktop-gui'   │      1       │        '405'         │    0.14    │      0.23      │  150.53  │    155.58    │   161.89    │
  cypress:server:util:process_profiler │    4    │    'Electron'     │      1       │        '1581'        │     0      │       0        │  133.96  │    238.38    │    364.8    │
  cypress:server:util:process_profiler │    5    │     'ffmpeg'      │      1       │        '1580'        │     0      │       0        │  11.79   │    43.96     │   138.94    │
  cypress:server:util:process_profiler │    6    │      'other'      │      2       │     '1600, 1601'     │     0      │       0        │   3.29   │     3.35     │    3.39     │
  cypress:server:util:process_profiler │    7    │      'TOTAL'      │      11      │         '-'          │    5.6     │      3.12      │ 1007.74  │    921.52    │   1378.26   │
  cypress:server:util:process_profiler └─────────┴───────────────────┴──────────────┴──────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +10s
cypress.json
{
  "baseUrl": "http://localhost:3000", // overwritten on CI
  "blockHosts": [
    "*.google-analytics.com",
    "*.googletagmanager.com",
    "fonts.googleapis.com",
    "*.launchdarkly.com",
    // various ad-related hosts
  ],
  "viewportWidth": 1024,
  "retries": {
    "runMode": 2,
    "openMode": 0
  }
}

I'm happy to run someone through my findings and show our setup in more detail in a call. Feel free to reach out to my GH profile mail address

@vidarc
Copy link
Author

vidarc commented Feb 24, 2021

Could just be a coincidence, but service worker is heavily used in my application as well.

@masone
Copy link

masone commented Feb 24, 2021

This looks similar to #9040 based on which some fixes were made with #14381, which was released in 6.2.1

@RahulAggarwal-V31848
Copy link

RahulAggarwal-V31848 commented Mar 3, 2021

Yes, it does sound the similar as #9040, but all of us who have run reported the problem here are using 6.4 or greater and are still seeing the issue.
Can somebody provide some more help to resolve this issue?

@vidarc
Copy link
Author

vidarc commented Mar 25, 2021

the docker image we are using to run cypress on jenkins was installed with node 14, while the node version included with cypress is 12 and i saw that cypress currently only supports 10/12, is there a potential issue there? unsure how much cypress uses that built in

@vidarc
Copy link
Author

vidarc commented Mar 26, 2021

found this: badeball/cypress-cucumber-preprocessor#476

seems the likely culprit. i am using the cucumber plugin as well

@Diomas
Copy link

Diomas commented Apr 4, 2021

same issue: cypress 6.8.0, no retries set (no retries setting defined which means 0), sometimes cypress hangs when running on dev.azure (we're never experiencing the same behavior locally)

the log always ends with these repeating lines:

cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {}
cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 }
...
cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {}
cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 }

until CI cancels the job due to timeout

@sr95818
Copy link

sr95818 commented Apr 6, 2021

same issue: cypress 6.8.0, no retries set (no retries setting defined which means 0), sometimes cypress hangs when running on dev.azure (we're never experiencing the same behavior locally)

the log always ends with these repeating lines:

cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {}
cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 }
...
cypress:server:browsers:electron debugger: received response to Page.screencastFrameAck: {}
cypress:server:browsers:electron debugger: sending Page.screencastFrameAck with params { sessionId: 1 }

until CI cancels the job due to timeout

I just want to chime in and say that we too are experiencing the same issue, however, we're experiencing it in all environments.

@KeKs0r
Copy link

KeKs0r commented Apr 7, 2021

I have already commented on a similar issue thatp proposed some changes:
#8206

We are experiencing this stall in 70% or more. This means, rerunning CI several times for every change to go through. I am not sure how to debug or address this issue further.

Our Setup

  • Cypress 6.8.0
  • React & Node with Typescript
  • We don't have retries enabled
  • we are using nx.dev for our monorepo.
  • "only" 9 test files, which usually complete in 3 minutes.
  • Authentication via OAuth

Things we have tried so far

  1. Run garbage collection between tests: Reduce Memory Usage with window.gc() #8525
  2. Increase the CI container by 4x (to 16gb ram) - it used to even run with 4gb of ram in ci
  3. Switch from electron to chrome
  4. Set "numTestsKeptInMemory": 0
  5. Disable video recording
  6. Updating to Cypress 7
  7. Running every test file individually

None of which seems to help.

@cypress-app-bot
Copy link
Collaborator

This issue has not had any activity in 180 days. Cypress evolves quickly and the reported behavior should be tested on the latest version of Cypress to verify the behavior is still occurring. It will be closed in 14 days if no updates are provided.

@cypress-app-bot cypress-app-bot added the stale no activity on this issue for a long period label May 17, 2023
@cypress-app-bot cypress-app-bot closed this as not planned Won't fix, can't repro, duplicate, stale May 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stage: needs information Not enough info to reproduce the issue stale no activity on this issue for a long period
Projects
None yet
Development

No branches or pull requests

8 participants