bottlerocket-os / bottlerocket-os/twoliter

broken Rust build caching across glibc updates

Open
#502 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
34
Forks
45
Avg merge
11h 13m
Merged PRs (30d)
16

Description

**Platform I'm building on:**
aarch64

**What I expected to happen:**
I checked out https://github.com/bottlerocket-os/bottlerocket/pull/3352 and tried to build `aws-dev` from the same checkout as https://github.com/bottlerocket-os/bottlerocket/pull/3355. I expected to be able to run the build with no issues.

**What actually happened:**
The build succeeded but failed at runtime with a `storewolf` error:
```
[ 2.901427] storewolf[989]: /usr/bin/storewolf: /aarch64-bottlerocket-linux-gnu/sys-root/usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /usr/bin/storewolf)
```

`storewolf` itself is reported as "fresh" at build time, meaning that the binary is not rebuilt despite the glibc change:
```
bottlerocket-os/bottlerocket#20 0.991 Fresh storewolf v0.1.0 (/home/builder/rpmbuild/BUILD/sources/api/storewolf)
```

**How to reproduce the problem:**
I'd expect the same failure mode after any sequence like this:
* build the variant with a newer glibc
* downgrade or revert back to an older glibc
* build the variant again
* attempt to run it

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the reported sequence for the aws-dev variant on aarch64: build with newer glibc, revert to an older glibc, rebuild, and run it. Inspect how Rust build caching determines whether storewolf is fresh and how glibc changes are tracked. Done means the affected binary is rebuilt when glibc changes and the resulting build runs without the reported GLIBC_2.38 error.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.