timothygrant80 / cisTEM

Other
32 stars 26 forks source link

node.js/GLIBC mismatch: automatic GCC compilation fails #513

Open twagner9 opened 1 month ago

twagner9 commented 1 month ago

In both #487 and #511 the automatic test compilations are failing from GLIBC errors that seem to related to a mismatch between the node version and the GLIBC version. I'm unsure of how to resolve the problem.

Exact error message (can also view the fails for both #487 and #511):

Run actions/checkout@v2
/usr/bin/docker exec  1ce2fce0ff62ef86fa14a5ab78c549c3c8c19662c80aa77a5fe6ae60ed9530c2 sh -c "cat /etc/*release | grep ^ID"
/__e/node20/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /__e/node20/bin/node)
bHimes commented 3 weeks ago

hmmm, i hadn't realized we were running any tests relying on webview in the standard build. @jojoelfe how actively are you working with/on webview apps?

should this be in the main test suite and if so, it seems like there shouldn't be any glibc issues since we (from memory i think) setup node in the container via package manager repo.

jojoelfe commented 3 weeks ago

No, there is no webstuff in the repo now. I think some of the GitHub actions rely on specific node.js version and we are using outdated stuff that fails...

Get Outlook for Androidhttps://aka.ms/AAb9ysg


From: B.A.Himes @.> Sent: Sunday, August 18, 2024 5:22:57 PM To: timothygrant80/cisTEM @.> Cc: Johannes Elferich @.>; Mention @.> Subject: Re: [timothygrant80/cisTEM] node.js/GLIBC mismatch: automatic GCC compilation fails (Issue #513)

hmmm, i hadn't realized we were running any tests relying on webview in the standard build. @jojoelfehttps://github.com/jojoelfe how actively are you working with/on webview apps?

should this be in the main test suite and if so, it seems like there shouldn't be any glibc issues since we (from memory i think) setup node in the container via package manager repo.

— Reply to this email directly, view it on GitHubhttps://github.com/timothygrant80/cisTEM/issues/513#issuecomment-2295395902, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABOMUD5ZM7LWPX7NN6VCR53ZSEGDDAVCNFSM6AAAAABMMM3AJGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJVGM4TKOJQGI. You are receiving this because you were mentioned.Message ID: @.***>

twagner9 commented 2 weeks ago

Yes @jojoelfe, it does seem like this is it. The link provided in the Actions result contains the following:

Node16 has been out of support since September 2023. As a result we have started the deprecation process of Node16 for GitHub Actions. We plan to migrate all actions to run on Node20 by Spring 2024. Following on from our warning in workflows using Node16 we will start enforcing the use of Node20 rather than Node16 on the 3rd of June.

-- a timeline that coincides with the error.

The only reference to a Node.js version I've seen is in scripts/containers/top_image/install_node_16.sh; I'm assuming this should be changed to correspond with the Actions update?

Additionally, could the core issue be caused by the OS version that's used to build the containers not containing the needed GLIBC 2.28 library? Perhaps images should be created from Ubuntu version 20.04 instead of 18.04?

It's also worth nothing the icpc Dockerfile uses Ubuntu 20.04 as the base image and doesn't run into the GLIBC issue.

jojoelfe commented 2 weeks ago

Yes, It look like Github actions are running Node20 within our containers, which have a glibc older than 2.28... (2.27, I think)

I do think the only solution is to upgrade the images to ubuntu 20.04

twagner9 commented 2 weeks ago

It looks like 20.04 skips ahead to GLIBC 2.31, and we'll have to manually install 2.28 to work with node20. I will spend some time on this tomorrow.

jojoelfe commented 2 weeks ago

No, glibc 2.31 should be fine. They are supposed to be backwards compatible. So, glibc 2.31 should work for programs requiring 2.28