All Topics
All Topics
Technology
Technology
Design
Design
Programming
Programming
Science
Science
News
News
Gaming
Gaming
Entertainment
Entertainment
Business
Business
Finance
Finance
Sports
Sports
Health
Health
Food
Food
Travel
Travel
Art
Art
Music
Music
Books
Books
Education
Education
Politics
Politics
Personal
Personal
No algorithm. No AI slop. No ads. Just RSS. Pro-human. Indie writers. Real journalism. Open web. Chronological. Hand toasted.

Understanding How Bazel Build Caching and glibc Version Mismatches Cause Production Failures

By

goranmoomin

8mo ago· 11 min readenInsight

Summary

This technical article examines how Bazel's build caching and remote execution features can interact dangerously with different glibc (GNU C Library) versions across development environments, leading to production failures. The piece explains how seemingly successful builds can produce artifacts that crash in production due to version mismatches, specifically addressing the 'GLIBC_2.28 not found' error scenario. It explores action non-determinism in build systems and provides insights into preventing these subtle but critical deployment issues.

Key quotes

· 4 pulled
Imagine this scenario: your team uses Bazel for fast, distributed C++ builds. A developer builds a change on their workstation, all tests pass, and the change is merged.
The CI system picks it up, gets a cache hit from the developer's build, and produces a release artifact. Everything looks green.
But when you deploy to production, the service crashes with a mysterious error: version 'GLIBC_2.28' not found.
The answer lies in the subtle but dangerous interaction between Bazel's caching, remote execution, and differing glibc versions across your fleet.
Snippet from the RSS feed
Analyzing how glibc and action non-determinism can lead to surprising failures

You might also wanna read