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

🐛 BUG: wrangler 3.105.1 and 3.106.0 cannot find GLIBC when invoking wrangler pages dev #7911

Closed
Hexstream opened this issue Jan 26, 2025 · 10 comments
Labels
bug Something that isn't working

Comments

@Hexstream
Copy link

Hexstream commented Jan 26, 2025

Which Cloudflare product(s) does this pertain to?

Wrangler

What versions are you using?

3.105.1

(Issue persists in 3.106.0.)

What operating system and version are you using?

Debian Mate 11

Please provide a link to a minimal reproduction

No response

Describe the Bug

All previous versions including wrangler 3.105.0 worked, but for the first time, wrangler 3.105.1 cannot find GLIBC.

volta install [email protected] works around the bug for now.

Please provide any relevant error logs

Here is my console, let me know if you need more detailed logs and how to get them.

hexstream@dynamorph:~/data/projects/websites/hexstream.expert/status-quo.hexstream.expert$ wrangler pages dev public

 ⛅️ wrangler 3.105.1
--------------------

▲ [WARNING] No compatibility_date was specified. Using today's date: 2025-01-26.

  ❯❯ Add one to your Wrangler configuration file: compatibility_date = "2025-01-26", or
  ❯❯ Pass it in your terminal: wrangler pages dev [<DIRECTORY>] --compatibility-date=2025-01-26
  
  See https://developers.cloudflare.com/workers/platform/compatibility-dates/ for more information.


No Functions. Shimming...
✨ Parsed 10 valid redirect rules.
✨ Parsed 11 valid header rules.

✘ [ERROR] write EPIPE


If you think this is a bug then please create an issue at https://github.com/cloudflare/workers-sdk/issues/new/choose
╭───────────────────────────────────────────────────────────✘ [ERROR] /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd)

  /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd:
  /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by
  /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd)
  /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd:
  /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by
  /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd)
  /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd:
  /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.35' not found (required by
  /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd)


⎔ Starting local server...
✘ [ERROR] /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd)

  /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd:
  /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by
  /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd)
  /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd:
  /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by
  /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd)
  /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd:
  /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.35' not found (required by
  /home/hexstream/.volta/tools/image/packages/wrangler/lib/node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64/bin/workerd)


⎔ Shutting down local server...
✘ [ERROR] Error while handling hotkey [x]



╭─────────────────────────────────────────────────────────────────────────╮
│  [b] open a browser, [d] open devtools, [c] clear console, [x] to exit  │
╰─────────────────────────────────────────────────────────────────────────╯
@Hexstream Hexstream added the bug Something that isn't working label Jan 26, 2025
@github-project-automation github-project-automation bot moved this to Untriaged in workers-sdk Jan 26, 2025
@edmundhung edmundhung moved this from Untriaged to Backlog in workers-sdk Jan 27, 2025
@Hexstream Hexstream changed the title 🐛 BUG: wrangler 3.105.1 cannot find GLIBC when invoking wrangler pages dev 🐛 BUG: wrangler 3.105.1 and 3.106.0 cannot find GLIBC when invoking wrangler pages dev Jan 28, 2025
@GibzClt
Copy link

GibzClt commented Jan 29, 2025

Facing same issue.
OS Ubuntu 20.0.4

@thearnica
Copy link

Similar problem in Github actions(mcr.microsoft.com/playwright:v1.48.1-focal) using wrangler kv key put

✘ [ERROR] write EPIPE
If you think this is a bug then please create an issue at https://github.com/cloudflare/workers-sdk/issues/new/choose
? Would you like to report this error to Cloudflare?
🤖 Using fallback value in non-interactive context: no


/__w/rocket/rocket/node_modules/@cloudflare/workerd-linux-64/bin/workerd: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /__w/rocket/rocket/node_modules/@cloudflare/workerd-linux-64/bin/workerd)

@lroal
Copy link

lroal commented Feb 3, 2025

I am having the same problem

@lroal
Copy link

lroal commented Feb 3, 2025

Using this docker image worked:
mcr.microsoft.com/vscode/devcontainers/javascript-node:dev-22-bookworm

@penalosa
Copy link
Contributor

penalosa commented Feb 3, 2025

Thanks for opening this issue! Wrangler follows workerd's OS support policy, which is listed in the README. In general, this covers the last two releases of an OS (for ubuntu, we aim for the last two LTS releases, for macOS it's the last two releases).

In this particular case, Wrangler should start to work again if you update to Debian Bookworm, which includes glibc 2.36. Alternatively, if that's not possible right now, you should be able to continue using Wrangler 3.105.0, although you may not be able to use newer platform features as they're released.

@penalosa penalosa closed this as not planned Won't fix, can't repro, duplicate, stale Feb 3, 2025
@github-project-automation github-project-automation bot moved this from Backlog to Done in workers-sdk Feb 3, 2025
@Hexstream
Copy link
Author

Hexstream commented Feb 3, 2025

In general, this covers the last two releases of an OS

Per Debian releases, the last two releases for Debian are Bookwork (12) and Bullseye (11).
The release date for Trixie (13) has not even been announced yet.

Therefore, Bullseye (11) is still well within the support window.
Do whatever you want, but I strongly believe this issue should be reopened and fixed.

In this particular case, Wrangler should start to work again if you update to Debian Bookworm, which includes glibc 2.36.

I will be skipping Debian Bookworm (12) due to lack of time.
Debian 11 is still working perfectly for me, except for this issue.
Once Debian Trixie (13) is released as stable, it will be my responsibility to upgrade and I will do so.

Alternatively, if that's not possible right now, you should be able to continue using Wrangler 3.105.0, although you may not be able to use newer platform features as they're released.

That's my only sane option for now, but I would rather not be penalized arbitrarily for months.

I hope your initial response was due to an oversight and will be reconsidered...

edit: I am fully upgraded on Debian Bullseye 11, and the GLIBC version is 2.31 (2.31-13+deb11u11).
Given that the newly required minimum version is only 2.32, fixing this should be trivial.

hexstream@dynamorph:~$ sudo aptitude update
Hit http://security.debian.org/debian-security bullseye-security InRelease
Hit http://deb.debian.org/debian bullseye InRelease                                                                                               
Hit http://deb.debian.org/debian bullseye-updates InRelease
Hit http://prerelease.keybase.io/deb stable InRelease                                                                        
Hit https://pkg.cloudflareclient.com bullseye InRelease
Hit https://dl.google.com/linux/chrome/deb stable InRelease
                                         
hexstream@dynamorph:~$ sudo aptitude upgrade
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.
                                         
hexstream@dynamorph:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 11 (bullseye)
Release:	11
Codename:	bullseye
hexstream@dynamorph:~$ ldd --version
ldd (Debian GLIBC 2.31-13+deb11u11) 2.31
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

@kentonv
Copy link
Member

kentonv commented Feb 6, 2025

Hi folks,

The fix is not so trivial. workerd releases are built on GitHub actions, which uses Ubuntu-based images. The glibc version requirement is determined by the ubuntu release we build with. We recently updated from Ubuntu 20.04 to Ubuntu 22.04, leading to the glibc requirement change. We updated this because Ubuntu ended support for 20.04 in September, and GitHub deprecated support for Ubuntu 20.04 as of February 1 and will be removing it entirely on April 1:

actions/runner-images#11101

While we could perhaps hobble along for a month and a half longer with Ubuntu 20.04, once April 1 rolls around, the only way we could continue supporting older glibc (and other dependencies, it's not just glibc) is by using an alternative, non-github-provided image. This would obviously come with significant effort and risks on our end.

Many other projects are likely to be facing similar issues, so you may find that a lot of other stuff starts breaking for you soon, unfortunately. I do personally wish that GitHub's action images were based on Debian rather than Ubuntu (in which case bullseye would presumably still be supported), but unfortunately that's just not the case.

@kentonv
Copy link
Member

kentonv commented Feb 6, 2025

We'll update the readme to clarify that we support the oldest supported version of Ubuntu, and any distro which has compatible base libraries. Unfortunately we cannot offer to support every supported version of every distro. Again, this is not our preferred policy, but it's GitHub's policy, which is what we rely on for builds.

@Hexstream
Copy link
Author

Hexstream commented Feb 6, 2025

Thank you for the clarifications!

Very useful, at least now we know it's not a whim thing...

I wonder if Debian 11 could add support for that GLIBC version...

Or perhaps GitHub Actions should add support for Debian...

... I wonder if it would be easy to manually install GLIBC 2.31 on the Ubuntu 22.04 image or if that's also more complicated than it seems...

@kentonv
Copy link
Member

kentonv commented Feb 6, 2025

I wonder if Debian 11 could add support for that GLIBC version...

This might be possible. In theory, since glibc is backwards-compatible, you should be able to install a newer glibc on an older system without breaking anything. OTOH, if it doesn't work you might accidentally brick your system...

I'd suggest checking backports to see if they have a newer glibc package readily available. If it's there then it's probably safe to install.

Or perhaps GitHub Actions should add support for Debian...

If they added this we'd happily use it!

I wonder if it would be easy to manually install GLIBC 2.31 on the Ubuntu 22.04 image or if that's also more complicated than it seems

This probably wouldn't work, as all the binaries on the system would be dependent on 2.32 so probably the whole system breaks. Unless we installed it to some sort of separate sysroot or container -- but at that point it would probably be easier to maintain a custom action image.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something that isn't working
Projects
Status: Done
Development

No branches or pull requests

6 participants