firecracker-microvm / firecracker-microvm/firecracker-containerd

Agent doesn't build on docker container leading to possible glibc mismatch

Open
#832 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
2.9k
Forks
247
PR merge metrics
No merged PRs in 30d

Description

When compiling firecracker and the other binaries, the agent is built on the host os. This is an issue as the GLIBC version on the host may not match the version in bullseye, the image used as the base for the vm image. Because of this, when I run the daemon on my machine pointing to the vm image i built on my machine, i get an error that the version of GLIBC is not new enough for the agent, causing the image to not boot.

I was able to make the issue go away by updating the debian version used in debootstrap, however this is temporary and will stop working when the GLIBC version on bullseye stops matching the version on my ubuntu version.

I think the best path forward is to use a debian container to build the agent. It should be the same base image as is used for the debootstrap so that the glibc version always matches between them.

I may make a pr for this.

Contributor guide

Open the contributing guide

Research direction

Start by locating the build steps that compile the agent and other binaries, along with the debootstrap and VM image base configuration. Check how the host OS currently participates in the build, then verify that building in a matching Debian container produces an image whose agent boots without a GLIBC version mismatch.

Written by the indexing model from the issue text.

Assessment

Tech stack
debian, docker, go
Domain
build-system, infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.