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

ECONNRESET on Chrome/Chromium 117.0.5851.0 when using Cypress <12.15.0 or passing--headless=old in browser launch options #27804

Closed
bericp1 opened this issue Sep 13, 2023 · 49 comments · Fixed by vitessce/vitessce#1704
Assignees

Comments

@bericp1
Copy link

bericp1 commented Sep 13, 2023

Latest update:

#27804 (comment)


Current behavior

Right now when running against latest Chrome which released 18 hours ago for linux and max and using --headless=old (because we're getting browser freezes / unresponsiveness with new headless mode), you get ECONNRESET error code while cypress is trying to connect to headless chrome:

https://app.warp.dev/block/7kDNSkJQ4CtNDhMXPe3CRt

With DEBUG=cypress:server:util:process_profiler:

https://app.warp.dev/block/c2Par9SHLXvmbpt2Edtj90

With DEBUG=cypress:*

https://app.warp.dev/block/cJRcQGlGK0MVSaCHRd0xy9

Of interest:

  cypress:launcher:browsers chrome stderr: DevTools listening on ws://*********:62486/devtools/browser/************************************ +163ms
  cypress:network:connect successfully connected { opts: { host: '*********', port: 62486, getDelayMsForRetry: [Function: getDelayMsForRetry] }, iteration: 2 } +105ms
  cypress:launcher:browsers chrome stderr: [0913/112049.992673:WARNING:crash_report_exception_handler.cc(235)] UniversalExceptionRaise: (os/kern) failure (5) +167ms
read ECONNRESET
Error: read ECONNRESET
    at TCP.onStreamRead (node:internal/stream_base_commons:217:20)
  cypress:server:browsers:browser-cri-client error finding browser target, maybe retrying { delay: 100, err: Error: read ECONNRESET     at TCP.onStreamRead (node:internal/stream_base_commons:217:20) { errno: -54, code: 'ECONNRESET', syscall: 'read' } } +0ms
  cypress:launcher:browsers chrome exited: { code: null, signal: 'SIGSEGV' } +4ms

Desired behavior

Run tests :)

Test code to reproduce

We have this currently to use the old headless mode and removing it makes it work:

  on('before:browser:launch', (browser = {}, launchOptions) => {
    if (browser.name === 'chrome' && browser.isHeadless) {
      launchOptions.args.push('--headless=old');
    }
    return launchOptions;
  });

Cypress Version

12.17.3

Node version

16.16.0

Operating System

macOS 13.5.1 (22G90) and linux (debian)

Debug Logs

See description.

Other

No response

@bericp1
Copy link
Author

bericp1 commented Sep 13, 2023

Let me know if you guys feel this is more of a chrome/chromium issues and I can close.

@sgronblo
Copy link

Are there any known workarounds?

@M4n0x
Copy link

M4n0x commented Sep 14, 2023

Same issue here, had to downgrade to 116 version to make it works

@danielbertolozi
Copy link

A colleague reported the same issue. Will watch to see how things go

@jennifer-shehane
Copy link
Member

We’re investigating this issue currently.

@MikeMcC399
Copy link
Contributor

Running on Ubuntu 22.04.03 LTS I'm seeing Chrome 117.0.5938.62-1 (google-chrome-stable) crashing with SIGSEGV if arg is reset from --headless=new to --headless so it seems like it's a Chrome bug.

@mschile
Copy link
Contributor

mschile commented Sep 14, 2023

If anyone is seeing this issue on Cypress versions 12.14.0 and earlier and can use the --headless=new flag (which is the default from Cypress version 12.15.0 and afterward), you can tell Chrome to use the option by adding the following to your setupNodeEvents:

setupNodeEvents(on, config) {
  on('before:browser:launch', (browser, launchOptions) => {
    if (browser.name === 'chrome' && browser.isHeadless) {
      launchOptions.args = launchOptions.args.map((arg) => {
        if (arg === '--headless') {
          return '--headless=new'
        }
  
        return arg
      })
    }
  
    return launchOptions
  })
}

@alexsch01
Copy link
Contributor

alexsch01 commented Sep 14, 2023

Should we make a bug report to Chromium? @jennifer-shehane @MikeMcC399 @mschile

@mschile
Copy link
Contributor

mschile commented Sep 14, 2023

I was able to further drill into which version caused the issue.

Chromium 117.0.5849.0 - succeeds
Chromium 117.0.5851.0 - fails

I want to check on a few more things and then I'll probably log an issue to Chromium and post back here with the link.

@alexsch01
Copy link
Contributor

alexsch01 commented Sep 14, 2023

@mschile I can confirm that 117.0.5849.2 succeeds and 117.0.5850.0 fails

@alexsch01
Copy link
Contributor

alexsch01 commented Sep 14, 2023

@mschile Commits between https://crrev.com/1161677 (117.0.5849.2) and https://crrev.com/1161903 (117.0.5850.0)

Remove components/metal_util/types.h by Avi Drissman · 3 months ago

Added Mojom Devtools Agent Host by Jacob Francis · 3 months ago

Further prevent any Rust dylibs from being built in non-component config by danakj · 3 months ago

[canvas] Add ExecutionContext to ImageBitmapFactories by Dave Tapuska · 3 months ago

graphite: Stop using bottom left origin for 2D canvas by Sunny Sachanandani · 3 months ago

Add unit test for cookie count histograms by Dylan Cutler · 3 months ago

[PDF OCR] Update the strings for PDF OCR settings by Kyungjun Lee · 3 months ago

multi_display: Removing some TODOs by minch · 3 months ago

Update fieldtrial testing config for synthetic caps by Dan Harrington · 3 months ago

[filesystem] Avoid usage of deprecated constructor by Dave Tapuska · 3 months ago

[iOS] Added buildflag to top of feed sync promo to fix test failing. by Guillem Perez · 3 months ago

Fix font ligature rendering in 2d canvas vector printing. by Justin Novosad · 3 months ago

Switch Linux SwANGLE testing to Ubuntu 22.04 by Yuly Novikov · 3 months ago

Roll ANGLE from 2e285bb591f7 to bc2d5ed01f27 (1 revision) by chromium-autoroll · 3 months ago

Roll src-internal from 7c3e86aca5f3 to 14a835a90ebe (1 revision) by chromium-internal-autoroll · 3 months ago

NavigationApi shouldn't be notified of a canceled navigation on frame swap by Nate Chapin · 3 months ago

[Code Health] Removes Enterprise.CachedDevicePolicyDeviceIdValidity by Hui Yingst · 3 months ago

Disable flaky tests by Hao Liu · 3 months ago

[fix-swo-violations] Fix sort comparison function by Sparik Hayrapetyan · 3 months ago

[screen_orientation] Avoid usage of deprecated constructor by Dave Tapuska · 3 months ago

[lacros skew tests] Refresh skew tests for M117 by chrome-weblayer-builder · 3 months ago

Remove fd count tracking from gl android fence sync by Saifuddin Hitawala · 3 months ago

[css] Remove implicit define for perf_tests by Dave Tapuska · 3 months ago

Added histograms to track UMA for user themes by John-Wes Appleton · 3 months ago

[fix-swo-violations] Fix sort comparison function by Sparik Hayrapetyan · 3 months ago

Roll Catapult from 143fef4b4133 to 4dd4424f6eee (1 revision) by chromium-autoroll · 3 months ago

Add field trial parameters for canvas 2d auto flushing by Justin Novosad · 3 months ago

webauthn: drop CredMan support for Android 14b1 by Adam Langley · 3 months ago

FLEDGE: Make our handling of promises more consistent with the Web by Maks Orlovich · 3 months ago

[Select-to-speak][Cleanup] Remove extra args to settingsPrivate.setPref by Josiah Krutz · 3 months ago

Move two params from NetworkContextParams to NetworkContextFilePaths. by Liza Burakova · 3 months ago

[media] Add README.md for //media/gpu by Dan Sanders · 3 months ago

[IOS] Adding missing segment in IOS segmentation config. by Ritika Gupta · 3 months ago

[Auto-disable Accessibility] Allow for early/quick return in select cases of AccessibilityState by Mark Schillaci · 3 months ago

libstdc++: remove const from std::vector CreateMintTokenFlow by Stephan Hartmann · 3 months ago

libstdc++: remove const from std::vector in OAuth2MintAccessTokenFetcherAdapter by Stephan Hartmann · 3 months ago

Update V8 to version 11.7.16. by v8-ci-autoroll-builder · 3 months ago

[launch] Pass LocalDOMWindow into DOMWindowLaunchQueue by Dave Tapuska · 3 months ago

Add note about CJT deprecation. by Joe Medley · 3 months ago

Roll Chrome Win32 PGO Profile by chromium-autoroll · 3 months ago

shortcuts: Update edit-dialog style to match the spec by Longbo Wei · 3 months ago

wallpaper: consolidate some oobe state check by Jason Thai · 3 months ago

[FedCM] Return returning accounts first in getUserInfo() by Nicolás Peña · 3 months ago

Roll Chromite from e0316da42956 to 516b4a8334e8 (29 revisions) by chromium-autoroll · 3 months ago

[ntp][gm3] Color mini NTP caron (drop down menu) by Paul Adedeji · 3 months ago

Roll ios_internal from 77505414b9e8 to 15f14adc590b by chromium-internal-autoroll · 3 months ago

media/gpu/v4l2: Remove v4l2_slice_video_decode_accelerator.* by Miguel Casas · 3 months ago

Roll Chrome Win64 PGO Profile by chromium-autoroll · 3 months ago

Increase shards for browser_tests on ChromeOS asan by Sven Zheng · 3 months ago

media: Mark "Copy video frame" menu item as "New" by Xiaohan Wang · 3 months ago

Roll clank/internal/apps from 3499451158c9 to 9f065694be81 (1 revision) by chromium-internal-autoroll · 3 months ago

Add a presubmit check to prevent incorrect extern keyword usage by Lei Zhang · 3 months ago

[CR2023] Add Typography bold tokens by Keren Zhu · 3 months ago

Roll Media App from pTHjtmFypcNL2dXbb... to -aiBmV3v2fsjRPcv-... by chromium-internal-autoroll · 3 months ago

Roll RTS model from v-YU1HCz_AyN6ENmO... to OHve849TPA793xpYb... by chromium-autoroll · 3 months ago

Roll RTS model from Hl0dWqFdh8Jakm4LU... to HGDWp0QAcImZG1VfW... by chromium-autoroll · 3 months ago

[Privacy Sandbox] Support enrollment overrides in chrome://flags by Liam Brady · 3 months ago

Roll Skia from 9635d54210dc to 7b6aae68a11f (5 revisions) by chromium-autoroll · 3 months ago

Roll Dawn from fff67034f480 to 1c32bf7fee89 (1 revision) by chromium-autoroll · 3 months ago

Delete upcoming calendar events from welcome screen prototype by Artsiom Mitrokhin · 3 months ago

Target newer devices for the simulator builders upstream by Rahul Kumar Adudodla · 3 months ago

[cache_storage] Add Supplementable to constructor by Dave Tapuska · 3 months ago

Implement logic around collecting interaction data for CSBRRs by Sarah Krakowiak · 3 months ago

Neutralize the changes made to block MIDI by default in Chromium by Sina Firoozabadi · 3 months ago

[CSC] Use resized CSC icon for Chrome Refresh by Duncan Mercer · 3 months ago

[mediasource] Add TrackBase to supplement's constructor by Dave Tapuska · 3 months ago

pip2: Add NavigationThrottle for Document PiP to cancel navigations by Tommy Steimel · 3 months ago

[iOS] Use GUID to fetch profile in settings by Vidhan Jain · 3 months ago

[CR2023] Improved passkey dialog account select view by David Yeung · 3 months ago

Test alt tab trackpad reverse scrolling behavior by Andrew Pantera · 3 months ago

Mark library functions as const by Sean Kau · 3 months ago

Update generate_buildbot_json_unittest to use assertion contexts. by Garrett Beaty · 3 months ago

[iOS][DefaultBrowser] Record promo stats for trigger criteria experiment by Gayane Petrosyan · 3 months ago

[fix-swo-violations] Fix sort comparison function by Sparik Hayrapetyan · 3 months ago

[ios] Fix build failure by Dave Tapuska · 3 months ago

Fix SurfaceAnimationManager rect calculation by kylechar · 3 months ago

Android: Fix robolectric runner when using --shard-filter by Andrew Grieve · 3 months ago

Revert "[gardener] Disable AppManager InstallPrompt test" by Daniel Murphy · 3 months ago

Drop ThreadSpecific from BlankURL, SrcdocURL and NullURL. by Jeremy Roman · 3 months ago

Remove incorrect extern keywords in flag_descriptions.cc by Lei Zhang · 3 months ago

[Extensions c2s] Add metrics when updating site access from menu by Emilia Paz · 3 months ago

Enabling AutofillUseEloRegexForBinMatching flag by default. by Vipul Vinod Koul · 3 months ago

[ios] Add Context Menu functionality for Magic Stack Set Up List Modules by Chris Lu · 3 months ago

Extensions: extension-content-verification: Remove flag from about:flags by Solomon Kinard · 3 months ago

Roll Chrome Mac Arm PGO Profile by chromium-autoroll · 3 months ago

[ios] Fix crash when adding secondary account by Victor Hugo Vianna Silva · 3 months ago

[coverage] Add convenience script to merge all fuzzers given a set of by Julia Hansbrough · 3 months ago

Add HPRT configuration values to chrome://safe-browsing preferences tab by thefrog · 3 months ago

[Fixit] testCloseTabViaCloseButton by Calder Kitagawa · 3 months ago

[CodeHealth] Drop expired histogram Download.InProgressDB.Counts by Alan Screen · 3 months ago

gpu: Remove Vulkan restriction on Lacros by Brian Ho · 3 months ago

Hold an AtomicString in KURL to simplify things. by Daniel Cheng · 3 months ago

[coverage] Update utility scripts to use python3. by Julia Hansbrough · 3 months ago

[gardener] Disable AppManager InstallPrompt test by Nina Satragno · 3 months ago

[iOS] Sync the UwS Safe Browsing database by Ali Juma · 3 months ago

chromeos: Add InteractiveBrowserTest for launcher open/close by James Cook · 3 months ago

[sync] Avoid reconfiguration if data types are being stopped by Ankush Singh · 3 months ago

Roll Help App from fzZcfKJ9WUGQHMQyB... to IlzePirOe4TreJmbY... by chromium-internal-autoroll · 3 months ago

Add additional deep serialization parameters by Maksim Sadym · 3 months ago

Refactor IsMinimumAddress so that metric collection is done by the caller by Vidhan Jain · 3 months ago

[UPMLocalPwd] Don't show the warning more than once a month by Ioana Pandele · 3 months ago

flatbuffer: fix build error by Scott Violet · 3 months ago

[webaudio] Pass Page into AudioGraphTracer constructor by Dave Tapuska · 3 months ago

Skip Range-surroundContents on MSAN by Joey Arhar · 3 months ago

IndexedDB: remove some leveldb dependencies from IndexedDBFactory by Evan Stade · 3 months ago

[Extensions c2s] Add metric when opening menu while ext. requests access by Emilia Paz · 3 months ago

Updating XTBs based on .GRDs from branch main by Ben Mason · 3 months ago

Minor updates to prompt for deep scanning subpage by Daniel Rubery · 3 months ago

[Test Automation] Allow overriding default widget context calculation by Dana Fried · 3 months ago

[Gardening] Disable BackPressManagerTest suite by Rubin Deliallisi · 3 months ago

[UPMLocalPwd] Start the export flow by Ivana Žužić · 3 months ago

usb: Refactor chrome_usb_delegate_unittest.cc for SW coverage by Jack Hsieh · 3 months ago

[ios] Fixed wrong pragma mark names by Federica Germinario · 3 months ago

Roll Skia from 66e2e3f768bc to 9635d54210dc (1 revision) by chromium-autoroll · 3 months ago

[chromedriver] Ensure ChromeDriver is running when running WPTs by Jonathan Lee · 3 months ago

[Commerce internals] Add util to reset price tracking email pref by Matt Jones · 3 months ago

[ntp-modules] v2 dummy module refactor. by Roman Arora · 3 months ago

Rename manage.py to check.py. by Garrett Beaty · 3 months ago

graphite: Define an image provider for Chromium by James Godfrey-Kittle · 3 months ago

[iOS] Create coordinator/mediator for tab grid toolbars by Gauthier Ambard · 3 months ago

[CSC] Add PHResult UI surface and metrics for new jump tags. by mcrouse · 3 months ago

Update V8 to version 11.7.11. by v8-ci-autoroll-builder · 3 months ago

[fuchsia] Touch keystone manifest.json after SDK downloads by Wez · 3 months ago

[iOS] Add a finch flag and histogram to test FRE screen finchability by Tanmoy Mollik · 3 months ago

bento_button: Adjust background blur of the bar when jelly is not on by Yongshun Liu · 3 months ago

Remove obsolete/broken functionality from manage.py. by Garrett Beaty · 3 months ago

[Extensions c2s] Add metric when dismissing extension requests by Emilia Paz · 3 months ago

[Multidevice][Jelly] Migrate typography to Google Sans by Crisrael Lucero · 3 months ago

Add --linuxfast parameter to libxslt roll.py by Joey Arhar · 3 months ago

Roll androidx from Qsi-ipTbIfrbp1LGJ... to c9dYtdO97v42RhjPh... by chromium-autoroll · 3 months ago

Roll devtools-internal from c2d98bd4ceeb to a59f8c5a283d (1 revision) by chromium-internal-autoroll · 3 months ago

Add Device Authenticator functionality to check whether biometrics or by Vinny Persky · 3 months ago

Fix enum interpretation for Omnibox.ActionInSuggest.* histograms by Tomasz Wiszkowski · 3 months ago

power_sounds: Add policies for power sounds by Hongyu Long · 3 months ago

[viz] Don't run tests of CopyOutputNV12() on Android by Colin Blundell · 3 months ago

rolls in new version of angle-metal shaders by Scott Violet · 3 months ago

Chrome enterprise: fix missed QI for SxS IID in two places by S. Ganesh · 3 months ago

Include unpartitioned cookie availability check in hasStorageAccess() by Shuran Huang · 3 months ago

Add internationalized error strings for parental permissions errors by James Lee · 3 months ago

Roll ios_internal from 5dc810f6bf29 to 77505414b9e8 by chromium-internal-autoroll · 3 months ago

[gardener] Disable CancelLocalProfileCreation test by Nina Satragno · 3 months ago

Don't build rust dylib tests when component build is off by danakj · 3 months ago

[ios] Integrate bottom-of-feed promo with sign-in sheet by Victor Hugo Vianna Silva · 3 months ago

[ios] Adapt sign-in sheet strings for a few more entry points by Victor Hugo Vianna Silva · 3 months ago

Roll Chrome Mac Arm PGO Profile by chromium-autoroll · 3 months ago

Private Aggregation WPTs: clear stash at start of test by Alex Turner · 3 months ago

Reland "Reland "[Fixit] TabGridAccessibilityHelperTest"" by Calder Kitagawa · 3 months ago

Roll Chrome Win32 PGO Profile by chromium-autoroll · 3 months ago

[iOS][TabPickup] Retrieve last synced tab by Ewann Pelle · 3 months ago

roll ios17-* testers to Xcode15 beta 2 by Yue She · 3 months ago

Updating trunk VERSION from 5849.0 to 5850.0 by Chrome Release Bot (LUCI) · 3 months ago

SyncServiceImpl: Update TODOs related to IsActiveAccountInfoFullyLoaded by Marc Treib · 3 months ago

Roll Chrome Mac Arm PGO Profile by chromium-autoroll · 3 months ago

Roll Chrome Win64 PGO Profile by chromium-autoroll · 3 months ago

Add ___domain-based profile management support to the existing throttle. by Igor Ruvinov · 3 months ago

Roll Chrome Lacros Amd64 Generic PGO Profile by chromium-autoroll · 3 months ago

Roll Chrome Mac PGO Profile by chromium-autoroll · 3 months ago

Revert "Flags UI: Remove jstemplate." by Jood Hajeer · 3 months ago

Use correct helper bundle ID within GPU sandbox profile by Mark Rowe · 3 months ago

Updater: add some debugging logs. by Joshua Pawlicki · 3 months ago

Updating XTBs based on .GRDs from branch main by Ben Mason · 3 months ago

Automatic update from google3 by PKI Metadata Updates Bot · 3 months ago

ArcIntentHelper: Migrate delegates into ChromeArcIntentHelperDelegate by Eriko Kurimoto · 3 months ago

Revert "[Preloads] Update allowlist in InstallPreloadedVerifiedAppCommand" by Nina Satragno · 3 months ago

Unexpire Android.WebView.UniversalAccess.OriginUrlMismatchInRenderFrame by Peter Beverloo · 3 months ago

[ios] Integrate settings row with sign-in sheet by Victor Hugo Vianna Silva · 3 months ago

[iOS][TabPickup] Add TabPickup flag by Ewann Pelle · 3 months ago

[Nigori] Introduce CrossUserSharingKeys class. by Elias Khsheibun · 3 months ago

Roll Skia from 6ab865ee1f65 to 66e2e3f768bc (2 revisions) by chromium-autoroll · 3 months ago

Automatic update from google3 by PKI Metadata Updates Bot · 3 months ago

[iOS] Adapt the TestChromeBrowserStateManager to handle the multi-window state scenario. by Nohemi Fernandez · 3 months ago

Update autofill test to expect RenderFrameHost swap on same-site navigations by Rakina Zata Amni · 3 months ago

Clean up raw_ptr usage in //content/browser/attribution_reporting by Andrew Paseltiner · 3 months ago

[AWC] Add window.minimize skeleton behind a flag by Ivan Šandrk · 3 months ago

Roll Chrome Linux PGO Profile by chromium-autoroll · 3 months ago

Fix redundant copies of "enabled" in PostQuantumKeyAgreementEnabled documentation by David Benjamin · 3 months ago

[Viz] Remove ResourceFormat usage from resource_sizes.h by Colin Blundell · 3 months ago

[NOTREACHED] Fix AccountSelectFillData::GetFillData crash by Veronique Nguyen · 3 months ago

Not explicitly download stateful lacros on loading. by Hidehiko Abe · 3 months ago

lacros: Set WindowTreeHost to null on destruction by Eriko Kurimoto · 3 months ago

Add --linuxfast parameter to libxml roll.py by Joey Arhar · 3 months ago

[Private Network Access] Delete old histograms. by Titouan Rigoudy · 3 months ago

Inline SyncSetupService::UserActionIsRequiredToHaveTabSyncWork() by Victor Hugo Vianna Silva · 3 months ago

Refactor and migrate Child Account Service to components by [email protected] · 3 months ago

[ios] Rename WebStateListChanged() to WebStateListDidChange() by Asami Doi · 3 months ago

SyncService::Initialize: Remove IsActiveAccountInfoFullyLoaded checks by Marc Treib · 3 months ago

Remove stale Blink expectations by Expectation File Editor · 3 months ago

Inline shallow methods in RecentTabsMediator by Victor Hugo Vianna Silva · 3 months ago

[CodeHealth] Moving WebAppInstallInfo to the web_app namespace by Simon Hangl · 3 months ago

Roll ANGLE from 9211ebf1f2ac to 2e285bb591f7 (1 revision) by chromium-autoroll · 3 months ago

[iOS] Adds IOS.TabPickup.TimeSinceLastCrossDeviceSync metric by Ewann Pelle · 3 months ago

[css-scroll-snap-2] Rename scroll-start tests with 'tentative' by David Awogbemila · 3 months ago

Add WebSocket mixed content wpt by Adam Rice · 3 months ago

[ios] Replace webStateList:didDetachWebState:atIndex: with didChangeWebStateList:change:selection: by Asami Doi · 3 months ago

Revert "Roll src/buildtools/third_party/libc++/trunk/ b272a1c12..745104ff4 (48 commits)" by Fergus Dall · 3 months ago

Roll Chrome Win32 PGO Profile by chromium-autoroll · 3 months ago

[Nigori] Use UmaHistogramBoolean instead of macro. by Elias Khsheibun · 3 months ago

Roll Chrome Win64 PGO Profile by chromium-autoroll · 3 months ago

media/gpu/test/VEAPerfTest: Add --quality and --speed by Hirokazu Honda · 3 months ago

Roll devtools-internal from 1dd1c4add2d7 to c2d98bd4ceeb (1 revision) by chromium-internal-autoroll · 3 months ago

[@scope] Invalidate :has() within @scope by Anders Hartvoll Ruud · 3 months ago

[V8] Update Blink Mac testing to Mac-13 by Michael Achenbach · 3 months ago

Remove expired permissions flags by Illia Klimov · 3 months ago

media/gvu/VEAPerfTest: Disable MeasureCappedPerformance test case by Hirokazu Honda · 3 months ago

Roll Dawn from 8278361fbbef to fff67034f480 (1 revision) by chromium-autoroll · 3 months ago

Revert "Move android/webview browser tests w/ fieldtrial to ci/android-12-x64-rel." by Mateusz Zbikowski · 3 months ago

Remove AD variants from DMServerRequest UMAs by Felipe Andrade · 3 months ago

Enable COOP:RP origin trial by Jonathan Hao · 3 months ago

[flags][wasm] Set one more flag as never-expire by Clemens Backes · 3 months ago

Roll Chrome Mac Arm PGO Profile by chromium-autoroll · 3 months ago

Make Get(Un)VisitedProperty() table-based instead of virtual. by Steinar H. Gunderson · 3 months ago

Fix carets placed in non-editable elements due to collapsed whitespace by Andreu Botella · 3 months ago

BulkPinning: Rename a data member by François Degros · 3 months ago

[ios] Use unique identifier to name WebSession storage by Sylvain Defresne · 3 months ago

[Nigori] Remove unused NigoriKeyBag::CopyFrom() by Elias Khsheibun · 3 months ago

Roll Projector App from _3Vi0fKq9OBDkfVPw... to VdcNwgB9-gY_4859C... by chromium-internal-autoroll · 3 months ago

Update V8 to version 11.7.10. by v8-ci-autoroll-builder · 3 months ago

[text-wrap-balance] Change the max number of lines to 6 by Koji Ishii · 3 months ago

Prolong expired flag by Illia Klimov · 3 months ago

[sync] Avoid variable being optimized away to debug crashes by Mikel Astiz · 3 months ago

Roll Fuchsia SDK from 13.20230622.3.1 to 13.20230623.1.1 by chromium-autoroll · 3 months ago

Create TestTraceProcessor class by Rasika Navarange · 3 months ago

public/WebPrivatePtr: Thread through PersistentLocation by Michael Lippautz · 3 months ago

[@scope] Avoid invalidation flags based on in_rightmost_compound by Anders Hartvoll Ruud · 3 months ago

[iOS] Refresh reading list items on sync state change by Menghan YANG · 3 months ago

Fix RingBuffer::End() usage. by Florian Leimgruber · 3 months ago

@mschile
Copy link
Contributor

mschile commented Sep 15, 2023

I was able to reproduce the issue outside of Cypress in standalone Chrome. I've logged a Chromium bug.

@MikeMcC399
Copy link
Contributor

@mschile

I was able to reproduce the issue outside of Cypress in standalone Chrome. I've logged a Chromium bug.

Good to see you've logged a bug!

Did you also test using the parameter --headless (rather than --headless=old)? From my tests this is also causing an issue (see cypress-io/cypress-documentation#5483) and should perhaps be added to the Chromium bug you posted.

According to - Chrome Developer > Try out the new Headless I would expect both

--headless and
--headless=old

to work, since there hasn't been any announcement that these parameters are unsupported, even though they do write:

Currently, passing the --headless command-line flag without an explicit value still activates the old Headless mode — but we plan to change this default to new Headless over time.

We plan to completely remove the old Headless from the Chrome binary and stop supporting this mode in Puppeteer later this year. As part of this removal, we’ll make the old Headless available as a separate standalone binary for those users who can’t upgrade yet.

@alexsch01
Copy link
Contributor

@MikeMcC399 I tested on my Windows machine with --headless and it has the same issue as --headless=old, I'll make a new comment on the bug report

@MikeMcC399
Copy link
Contributor

I tested on my Windows machine with --headless and it has the same issue as --headless=old, I'll make a new comment on the bug report

Thank you @alexsch01 for confirming and following up in the Chromium bug report!
I would consider --headless not working as a higher priority regression than if just --headless=old didn't work, but I guess that will be up to the Chromium team to prioritize.

@alexsch01
Copy link
Contributor

alexsch01 commented Sep 15, 2023

This is how I explained it in the bug report comments


image

@MikeMcC399
Copy link
Contributor

MikeMcC399 commented Sep 15, 2023

@alexsch01

Your comments make the problem now very clear! 👍🏻

The worst impact is that failing to accept --headless means that Cypress versions older than 12.15.0 (see cypress-io/cypress-documentation#5479) are not compatible with Chrome 117 in headless mode out-of-the-box. cypress-io/cypress-documentation#5479 (comment) contains the workaround to call Chrome with --headless=new for older Cypress versions. Newer Cypress versions including 13.2.0 do that by default, so they don't need that workaround.

@alexsch01
Copy link
Contributor

alexsch01 commented Sep 15, 2023

It seems to me that we didn't catch this Chromium bug before Chrome 117 went stable most likely because new Cypress versions use --headless=new instead of --headless by default

Will there be a new test for this in this repo?

@mschile
Copy link
Contributor

mschile commented Sep 15, 2023

Will there be a new test for this in this repo?

Yes, we are discussing this internally to ensure we have a test for the old headless mode.

@alexsch01
Copy link
Contributor

@mschile can you pin this issue?

@jennifer-shehane jennifer-shehane added stage: awaiting external fix A 3rd party bug in Cypress - awaiting release type: bug labels Sep 15, 2023
@jennifer-shehane jennifer-shehane changed the title ECONNRESET one latest Chrome 117.0.5938.62 when using --headless=old in browser launch options ECONNRESET on Chrome 117.0.5851.0 when using Cypress <12.15.0 or passing--headless=old in browser launch options Sep 15, 2023
@jennifer-shehane
Copy link
Member

jennifer-shehane commented Sep 15, 2023

Just clarifying the issue and who it’s affecting:

  • There’s an issue where users using Chrome 117.0.5851.0+ will see an ECONNRESET error when running via cypress run in all OS's if they are using:
    • Cypress version <12.15.0. The--headless=new flag was introduced and is passed by default in 12.15.0.
    • Cypress version 12.15.0+ and manually passing a --headless=old flag.

Root cause:

  • This is an issue introduced by Chrome in version 117.0.5851.0. We’ve opened an issue with them detailing the issue and are awaiting their response.

Available workarounds:

  • Downgrade Chrome to Chrome 116 (or technically Chrome 117.0.5849.0).
  • Update to use Chrome Canary 119.0.6017.1
  • Upgrade to Cypress 12.15.0 if on an earlier version.
  • For users that cannot upgrade to Cypress 12.15.0, they can pass the --headless=new flag manually as described here.
  • Remove passing --headless=old from your test run.
  • Pass --headed to your test run (note, this may change the behavior of tests).

If you are encountering issues with any of these workarounds, please detail those issues and open an issue in GitHub. There are some users reporting hanging with the headless=new flag in Cypress, but we don’t have a way to reproduce that yet and would love to fix that.

We don't expect Chrome to support the --headless=old flag forever, so fixing issues with the --headless=new flag are high priority to us.

@MikeMcC399

This comment was marked as resolved.

@jennifer-shehane
Copy link
Member

@MikeMcC399 Thanks, updated my comment to be clearer.

@mschile mschile pinned this issue Sep 15, 2023
@MikeMcC399
Copy link
Contributor

MikeMcC399 commented Sep 16, 2023

Instead of ECONNRESET when passing --headless or --headless=old to Chrome 117, ECONNREFUSED may also show in the logs:

Still waiting to connect to Chrome, retrying in 1 second (attempt 62/62)
Cypress failed to make a connection to the Chrome DevTools Protocol after retrying for 50 seconds.

This usually indicates there was a problem opening the Chrome browser.

The CDP port requested was 61397.

Error: connect ECONNREFUSED *********:61397
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1187:16)

See https://app.warp.dev/block/7kDNSkJQ4CtNDhMXPe3CRt in the original post.

The error message may also be similar to:

Still waiting to connect to Chrome, retrying in 1 second (attempt 62/62)
All promises were rejected
AggregateError: All promises were rejected

ammont82 pushed a commit to ammont82/assisted-installer-ui that referenced this issue Sep 27, 2023
* Bumps cypress-io/github-action@v6

* Bumps cypress to v13.2.0

Related to cypress-io/cypress#27804
rawagner pushed a commit to rawagner/facet-lib that referenced this issue Sep 27, 2023
* Bumps cypress-io/github-action@v6

* Bumps cypress to v13.2.0

Related to cypress-io/cypress#27804
@OgulcanCelik
Copy link

If using the --headless=new flag didn't work for you and you don't want to upgrade the Cypress version, using Cypress' actions with custom Chrome images could fix your problem. However, if you are using Docker inside CI, you can also try downgrading the Chrome inside the CI:

     - name: Cache Chrome package
        id: cache-chrome
        uses: actions/cache@v3
        with:
          path: ./google-chrome-stable.deb
          key: chrome-package-${{ runner.os }}
          restore-keys: |
            chrome-package-${{ runner.os }}-
      - name: Install Chrome 116 If Cached
        if: steps.cache-chrome.outputs.cache-hit == 'true'
        run: |
            sudo dpkg -i google-chrome*.deb
            sudo apt-get install -f
      - name: Download and Install Chrome if Not Cached
        if: steps.cache-chrome.outputs.cache-hit != 'true'
        run: |
            sudo apt-get update
            sudo apt-get install -y libnss3-dev libgconf-2-4
            wget http://mirror.cs.uchicago.edu/google-chrome/pool/main/g/google-chrome-stable/google-chrome-stable_116.0.5845.187-1_amd64.deb -O google-chrome-stable.deb
            sudo dpkg -i google-chrome*.deb
            sudo apt-get install -f

@MikeMcC399
Copy link
Contributor

@OgulcanCelik

You might find it simpler to use existing Cypress Docker images from cypress/browsers. Check out the example in the documentation Testing with Cypress Docker Images:

name: Cypress Tests using Cypress Docker Image

on: push

jobs:
  cypress-run:
    runs-on: ubuntu-22.04
    container:
      image: cypress/browsers:node18.12.0-chrome106-ff106
      options: --user 1001
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Cypress run
        uses: cypress-io/github-action@v6
        with:
          build: npm run build
          start: npm start
          browser: chrome

@OgulcanCelik
Copy link

OgulcanCelik commented Sep 27, 2023

@MikeMcC399 thanks, but as I mentioned in my post, we are not able to use custom images in our e2e CI because we are spinning up some containers before running the tests and containers under containers do not work it seems.

@MikeMcC399
Copy link
Contributor

MikeMcC399 commented Sep 27, 2023

According to https://storage.googleapis.com/chromium-find-releases-static/441.html#441de2f21f1d43a751b5f87f5240252654135a76 the fix is now in the pipeline for 117 (as commit chromium/chromium@cea8ca4) and for 118 (as commit chromium/chromium@83e7d98). It's already available in the 119 Canary version.

spaceo added a commit to reload/dpl-react that referenced this issue Sep 27, 2023
Because of errors in the communication between Cypress and Chrome 117+
we need to make sure that we run Chrome 116.
This is a temporary solution and we should upgrade the cypress action
in the future as a part of the work involved in upgrading Cypress.

The GitHub issue that lead us to the problem:
cypress-io/cypress#27804
rawagner pushed a commit to openshift-assisted/assisted-installer-ui that referenced this issue Sep 27, 2023
* Bumps cypress-io/github-action@v6

* Bumps cypress to v13.2.0

Related to cypress-io/cypress#27804
@alexsch01
Copy link
Contributor

I can confirm Google Chrome / Chromium Linux 117.0.5938.132 no longer has this issue

On Windows/Mac it is slowly rolling out

@jennifer-shehane
Copy link
Member

Closing as resolved. If you are experiencing a similar issue, please open a new issue describing the behavior and filling out our issue template.

@MikeMcC399
Copy link
Contributor

MikeMcC399 commented Sep 28, 2023

It will take a few days before the patched Chromium / Chrome / Edge 117 versions are bundled into a new release and rolled out to GitHub runner-images.

For instance Ubuntu 22.04 (20230924) still contains the unpatched Google Chrome 117.0.5938.92 version. Edit: no longer the current image.


It needs a minimum Google Chrome 117.0.5938.132 to have the headless bug in 117.x versions fixed.

Google Chrome Stable Channel Update for Desktop

Wednesday, September 27, 2023
The Stable channel has been updated to 117.0.5938.132 for Windows, Mac and Linux, which will roll out over the coming days/weeks.

Chromium 117.0.5938.132 release Log includes cea8ca44 [m117] Fix crash in HeadlessRequestContextManager. by Liza Burakova


On Windows Microsoft Edge 117.0.2045.47 resolves the issue.

@MikeMcC399

This comment was marked as resolved.

rawagner pushed a commit to rawagner/facet-lib that referenced this issue Oct 2, 2023
* Bumps cypress-io/github-action@v6

* Bumps cypress to v13.2.0

Related to cypress-io/cypress#27804
rawagner pushed a commit to openshift-assisted/assisted-installer-ui that referenced this issue Oct 3, 2023
* Bumps cypress-io/github-action@v6

* Bumps cypress to v13.2.0

Related to cypress-io/cypress#27804
@jennifer-shehane jennifer-shehane unpinned this issue Oct 3, 2023
@MikeMcC399
Copy link
Contributor

MikeMcC399 commented Oct 6, 2023

Ubuntu and Windows GitHub Actions Runner Images are now updated to the minimum patch version 117.0.5938.132 of Google Chrome 117.x required to fix this issue. Check the Runner Images page for current roll-out status on macOS.

In the meantime Google Chrome 118 has been released. See Google Chrome Stable Channel Update for Desktop dated Oct 10, 2023. This version replaced any remaining Google Chrome 117.x versions in GitHub Actions Runner Images for each of the operating systems. Later versions, such as 119.x .

The problem described in this issue, related to Google Chrome 117.x versions earlier than patch version 117.0.5938.132, should no longer occur in GitHub-hosted runners.

@jennifer-shehane jennifer-shehane removed the stage: awaiting external fix A 3rd party bug in Cypress - awaiting release label Oct 10, 2023
SuZhou-Joe added a commit to SuZhou-Joe/opensearch-dashboards-functional-test that referenced this issue Nov 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

14 participants