cypress: Cypress 13 - `GLIBC_2.29` not found (addon-native) - preventing opening cypress
Current behavior
Our Jenkins pipelines using Cypress 13.2.0 were working fine this morning.
Today a Cypress update 13.3.0 was released. With 13.3.0 Cypress pipelines fail with an error:
Opening Cypress...
DevTools listening on ws://127.0.0.1:42471/devtools/browser/31a66146-18bd-478a-b7cc-acbae92826e7
/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/packages/server/lib/modes/addon/addon-native.node)
Error: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/packages/server/lib/modes/addon/addon-native.node)
at process.func [as dlopen] (node:electron/js2c/asar_bundle:2:1869)
at Module._extensions..node (node:internal/modules/cjs/loader:1354:18)
at Object.func [as .node] (node:electron/js2c/asar_bundle:2:1869)
at Module.load (node:internal/modules/cjs/loader:1124:32)
at Module._load (node:internal/modules/cjs/loader:965:12)
at f._load [as origLoad] (node:electron/js2c/asar_bundle:2:13377)
at PackherdModuleLoader.tryLoad (evalmachine.<anonymous>:1:741495)
at Function.<anonymous> (evalmachine.<anonymous>:1:751709)
at d._load (<embedded>:4510:29351)
at Module.require (node:internal/modules/cjs/loader:1148:19)
at require (node:internal/modules/cjs/helpers:110:18)
at Object.H (<embedded>:4562:137346)
at s.exports (<embedded>:4562:143111)
at <embedded>:4569:3280
at tryCatcher (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/util.js:16:23)
at Function.<anonymous> (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/method.js:39:29)
at Object.runElectron (<embedded>:4569:3050)
at Object.startInMode (<embedded>:4569:5738)
at <embedded>:4569:4826
at tryCatcher (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:694:18)
at Promise._fulfill (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:638:18)
at PromiseArray._resolve (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise_array.js:126:19)
at PromiseArray._promiseFulfilled (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise_array.js:144:14)
at Promise._settlePromise (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:574:26)
at Promise._settlePromise0 (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:694:18)
at Promise._fulfill (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:638:18)
at Promise._settlePromise (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:582:21)
at Promise._settlePromise0 (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:694:18)
at Promise._fulfill (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:638:18)
at Promise._settlePromise (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:582:21)
at Promise._settlePromise0 (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:694:18)
at Promise._fulfill (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:638:18)
at PromiseArray._resolve (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise_array.js:126:19)
at PromiseArray._promiseFulfilled (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise_array.js:144:14)
at Promise._settlePromise (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:574:26)
at Promise._settlePromise0 (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:694:18)
at Promise._fulfill (/home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:638:18)
at /home/jenkins/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/nodeback.js:42:21
at <embedded>:2086:115512
I reverted to 13.2.0 and still get the same error.
I had to revert back to 12.x to get things working
Desired behavior
It should work with RHEL 8
Test code to reproduce
Fails before running any tests
Cypress Version
13.3.0
Node version
v18.15.0
Operating System
RHEL 8 Linux x86_64
Debug Logs
No response
Other
No response
About this issue
- Original URL
- State: closed
- Created 9 months ago
- Reactions: 3
- Comments: 24 (13 by maintainers)
Commits related to this issue
- #2433: downgrade cypress due to https://github.com/cypress-io/cypress/issues/27920 and https://github.com/cypress-io/cypress/discussions/27924 — committed to NationalSecurityAgency/skills-service by deleted user 9 months ago
We’re actively investigating this issue. Thank you for your patience.
We’re hoping to have a fix out by tomorrow. 🤞
I can reproduce this issue on Ubuntu
18.04.6LTS with Cypress13.0.0and later, however I needed to use the now unsupported Node.jsv16.20.2.npx cypress runimmediately fails. It is not related to recording in Cypress Cloud.Reverting to Cypress
12.17.4works around the issue. For Ubuntu this is however not a good long-term resolution since it relies on the unsupported Node.jsv16.20.2. For Ubuntu18, the better strategy would be to update to Ubuntu20or22and use either Node.js18or20.can confirm that our “nightly” workflows that been failing, are green now. thanks everyone for a quick fix 👍🏼
We have updated the release to address this issue. We are considering this issue to be resolved. If you continue to see errors related to glibc, please report here and reopen the issue.
@tkharuk
You mentioned using
cypress/base:16whereas in the other issue (https://github.com/cypress-io/cypress/issues/27902#issuecomment-1738736163) you mentioned usingcypress/base:16.13.2. Perhaps you didn’t mean the specific Docker tagcypress/base:16, because this is in fact equivalent tocypress/base:16.14.2-slim, which uses the later GLIB 2.31.Although Node.js
16is no longer supported, you may be able to just update to a latercypress/base:16.*Cypress Docker image version which is based on Linux 11 (bullseye) with GLIB 2.31 installed instead of the earliercypress/base:16.*versions which used Linux 10 (buster) with GLIC 2.28. The cypress/base CHANGELOG seems to be no longer maintained and it’s not quite accurate anyway, however it looks like the versioncypress/base:16.13.2was the last one to use the problematic Linux 10 (buster) version.The latest
cypress/baseversion based on Node.js16iscypress/base:16.18.1-with-git.You could either wait for the promised fix in Cypress
13.xor you might like to try out using the Cypress Docker imagecypress/base:16.18.1-with-git. In the long term you should be aiming to use Node.js18or20as I think you already understand.Just to reiterate Jennifer’s statement above, we have determined the source of the problem and are working to prepare an updated release tomorrow, Sept 29.
That would apply to Cypress Docker images using Node.js
18and later.Some earlier Cypress Docker images based on Node.js
16(which is end-of-life and no longer supported by Cypress) such ascypress/base:16.0.0cypress/browsers:node16.5.0-chrome94-ff93are showing
GLIC 2.28(ldd --version) and are based on Linux 10 (buster) (cat /etc/os-release)So this would also be something to check for Cypress Docker users wanting to run Cypress
13.xthat they should use a Cypress Docker image with a minimum Node.js18version. This is the earliest version of Node.js which is currently supported.Can confirm the latest changes have fixed my issue on RHEL8
So I guess the fix was to replace the
cypress.zipbinaries on https://download.cypress.io?That will be a problem for CI workflows like
cypress-io/github-actionwhich do caching. Admins will need to manually delete GitHub Actions cache files on GitHub. On the monorepo https://github.com/cypress-io/github-action there are 22 cache files (one for every example folder) which cache the Cypress binary, that would have to be deleted by hand.Please consider building a new release such as
13.3.1for such situations. Then the process is the standard one for updating to a new Cypress version. That would allow a new Cypress version to be written to a lockfile (npm / Yarn) which would then have a new hash and that would cause the cache to be invalidated and rewritten.@MikeMcC399 13.0+ versions should be fixed. If you’re not immediately seeing the fix, you could run
cypress cache clearthen reinstall.We’re still actively working through solutions. Downgrading Cypress to 12.17.4 is the quickest fix in the meantime of us fixing the issue. Using the Cypress docker-image that has Node.js v18 is another solution.
We’ll update this thread when we have more updates.
I closed because reverting to 13.2.0 was still failing and I thought it was a problem/change on our CI, but reopening because it does seems like a Cypress change/issue
What is the resolution for this issue, is https://github.com/cypress-io/cypress/issues/27902 the best reference? Thank you!