cypress: Test Replay - Failed Capturing - `GLIBC_2.29' not found (better-sqlite3)

Current behavior

Hi, recently I’ve been testing v13’s Test Replay. After the CI run, I saw the report on the dashboard, but the Tests for review section in the overview is empty. Checking the pipeline logs, I found the following error:

Test Replay - Failed Capturing - /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29' not found (required by /root/.cache/Cypress/13.2.0/Cypress/resources/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node)

Is it because the image I’m using is not supported ? Thank you

Desired behavior

No response

Test code to reproduce

N/A

Cypress Version

13.2.0

Node version

v18.4.0

Operating System

N/A

Debug Logs

No response

Other

No response

About this issue

  • Original URL
  • State: closed
  • Created 9 months ago
  • Reactions: 1
  • Comments: 35 (18 by maintainers)

Most upvoted comments

Facing the same issue on Ubuntu 18, Cypress 13.3.0.

It looks like this is your first time using Cypress: 13.3.0

[STARTED] Task without title.
[TITLE]  Verified Cypress!       /root/.cache/Cypress/13.3.0/Cypress
[SUCCESS]  Verified Cypress!       /root/.cache/Cypress/13.3.0/Cypress

Opening Cypress...

DevTools listening on ws://127.0.0.1:39581/devtools/browser/24b031d5-d560-46f1-a5ab-92ec828ca269
/lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /root/.cache/Cypress/13.3.0/Cypress/resources/app/packages/server/lib/modes/addon/addon-native.node)
Error: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /root/.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 (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/util.js:16:23)
    at Function.<anonymous> (/root/.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 (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:512:31)
    at Promise._settlePromise (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:569:18)
    at Promise._settlePromise0 (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:694:18)
    at Promise._fulfill (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:638:18)
    at PromiseArray._resolve (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise_array.js:126:19)
    at PromiseArray._promiseFulfilled (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise_array.js:144:14)
    at Promise._settlePromise (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:574:26)
    at Promise._settlePromise0 (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:694:18)
    at Promise._fulfill (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:638:18)
    at Promise._settlePromise (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:582:21)
    at Promise._settlePromise0 (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:694:18)
    at Promise._fulfill (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:638:18)
    at Promise._settlePromise (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:582:21)
    at Promise._settlePromise0 (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:694:18)
    at Promise._fulfill (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:638:18)
    at PromiseArray._resolve (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise_array.js:126:19)
    at PromiseArray._promiseFulfilled (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise_array.js:144:14)
    at Promise._settlePromise (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:574:26)
    at Promise._settlePromise0 (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:694:18)
    at Promise._fulfill (/root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/promise.js:638:18)
    at /root/.cache/Cypress/13.3.0/Cypress/resources/app/node_modules/bluebird/js/release/nodeback.js:42:21
    at <embedded>:2086:115512
Missing baseUrl in compilerOptions. tsconfig-paths will be skipped

There are 2 separate issues that are happening In this thread. We’d like to make sure each of you is following the proper thread to get a resolution. They are both showing VERY similar errors which makes this confusing.

  • This original issue is tracking an error that displays when recording Test Replay, where it fails to capture. This does NOT prevent Cypress from opening. You’ll see the following error referencing better-sqlite3.node at the end of the error. Test Replay - Failed Capturing - /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29' not found (required by /root/.cache/Cypress/13.2.0/Cypress/resources/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node)
  • This issue covers an error some are seeing OPENING cypress. https://github.com/cypress-io/cypress/issues/27920 The error message references addon-native.node at the end of the error message. 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).

Please comment and follow the correct issue based on what error is occurring.

For this issue, where Test Replay is not captured, we are investigating better documentation to provide and seeing if we can provide a better error message. This is not something we can fix since it’s system dependent as noted above.

We’re investigating the new issue with opening cypress. Follow in that issue for updates. https://github.com/cypress-io/cypress/issues/27920

@tkharuk

I have to pass on answering your question as I am just a community contributor and I’m not part of the Cypress engineering team.

Hi, last week we’ve upgraded a couple of our project to Cypress v13, and it worked great for a couple of days!

Error suddenly appeared on “nighlty” run on CircleCI

  • yesterday it was green, now it is read - no changes in code or infra
config.yml:
    docker:
      - image: 'cypress/base:16.13.2'
    steps:
      - jq/install
    ...

Attempt to upgrade to latest cypress/base

  • tried to update docker to cypress/base:20.6.1 and cypress/base:18 and faced new issue
curl: command not found

coming from jq orb

Immediate actions?

As test checks are mandatory to merge PR, this now blocks multiple teams.

@MikeMcC399 @jennifer-shehane what would you suggest to do? rollback to Cypress v12 as an immediate action?

Is there anything on your side that can be done? (pipeline stopped working without our changes in codebase/infra)


P.S. Maybe documentation should be more demanding and show the significance of upgrading the infrastructure, which can be breaking:

We’ve followed

unlike in migration to v12 it doesn’t mention any node or any other infrastructural changes required.

In a more detailed instruction it did mention:

Node 14 support has been removed and Node 16 support has been deprecated. Node 16 may continue to work with Cypress v13, but will not be supported moving forward to closer coincide with Node 16’s end-of-life schedule. It is recommended that users update to at least Node 18.

Maybe we misunderstood the “may” part and that it will stop working after 1 week

@MikeMcC399 I’m sorry, I’ve been a bit busy lately. I’ll try to use the image provided by Cypress and get back to here as soon as possible after testing.

In our case, we were able to upgrade to Ubuntu 20, and it resolved the issue.

The Cypress provided docker-images with Node.js 18+ are on GLIBC 2.31. You should be able to use our docker-images and not encounter this error. cypress-io/cypress-docker-images

As mentioned before we’re investigating possible fixes/catching/documentation for people not using our docker-images this so it doesn’t require changes to get around the error.

@tkharuk same here, it built fine yesterday but CI broke today (with locked dependencies in yarn.lock so deps shouldn’t have changed). Sounds like they are pulling down binaries dynamically?

@aNyMoRe0505

If you are using a Docker image then you could update to a more recent one from https://hub.docker.com/r/cypress/browsers, such as

docker pull cypress/browsers:node-18.15.0-chrome-106.0.5249.61-1-ff-99.0.1-edge-114.0.1823.51-1

depending on your needs.