odiff icon indicating copy to clipboard operation
odiff copied to clipboard

"GLIBC_2.35 not found" error in AWS CodeBuild pipeline

Open vergjor opened this issue 1 year ago • 6 comments

I have an automated test project in Cypress, where I use the odiff-bin package for verifying images in some of our tests. I also have a setup for running these tests on AWS CodeBuild, where we have the following environment setup:

  • Image: aws/codebuild/standard:5.0
  • Environment type: Linux Container
  • Compute type: EC2
  • Node version: 20
  • Cypress version: 13.15.2
  • Odiff-bin version: 3.1.1

The issue is that when those specific tests are running on the pipeline, the following error is thrown:

From Node.js Internals:
  Error: /codebuild/output/src3891/src/github.com/.../node_modules/odiff-bin/bin/odiff.exe: /lib64/libm.so.6: version `GLIBC_2.35' not found (required by /codebuild/output/src3891/src/github.com/.../node_modules/odiff-bin/bin/odiff.exe)
  
      at ChildProcess.<anonymous> (/codebuild/output/src3891/src/github.com/.../node_modules/odiff-bin/odiff.js:169:13)
      at ChildProcess.emit (node:events:531:35)
      at ChildProcess.emit (node:domain:488:12)
      at maybeClose (node:internal/child_process:1105:16)
      at Socket.<anonymous> (node:internal/child_process:457:11)
      at Socket.emit (node:events:519:28)
      at Socket.emit (node:domain:488:12)
      at Pipe.<anonymous> (node:net:338:12)

Since the aws/codebuild/amazonlinux2-x86_64-standard:5.0 image is based on Amazon Linux 2023, from what I can see on DockerHub the current version of glibc of that image is 2.34: image

I am unsure on how to resolve this issue... any advice?

vergjor avatar Nov 22 '24 18:11 vergjor

This is strange because odiff provides a statically linked binary there shouldn't be any dependencies on glibc

dmtrKovalenko avatar Nov 22 '24 18:11 dmtrKovalenko

@dmtrKovalenko I also got this error after upgrading to 3.2.1.

Mauladen avatar Feb 16 '25 12:02 Mauladen

same for me with version 3.2.1, I guess it can be because new version was built on ubuntu-latest / ubuntu-24.04 where both of them has glibc 2.39. You can try to change the build os on ubuntu-22.04, where is glibc 2.35 or even older ubuntu-20.04

maroskapral avatar Feb 17 '25 16:02 maroskapral

Just got the same error on v3.2.1

olegafx avatar Mar 04 '25 08:03 olegafx

Same error on v3.2.1

SherAtrium avatar Mar 13 '25 13:03 SherAtrium

+1, as the workaround locked version to 3.2.0 for now

// package.json

// for yarn
  "resolutions": {
    "**/odiff-bin": "3.2.0"
  },

SergeyVolynkin avatar May 09 '25 03:05 SergeyVolynkin

I was getting a similar error.

odiff: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.38' not found (required by odiff)

Using 3.2.0 helped.

Looks like the only difference between 3.2.1 and 3.2.0 is that it doesn't require a fixed version of ocaml. My best guess is that because of that, it kind of adds some dynamic linking to the final build.

semanser avatar Jul 23 '25 16:07 semanser

should be fixed in v4

dmtrKovalenko avatar Sep 08 '25 20:09 dmtrKovalenko