Repository navigation
install/config: Skip config fragments that vanish while loading - #24
Closed
cgwalters-bot wants to merge 2 commits into
Closed
cgwalters-bot wants to merge 2 commits into
cgwalters-bot wants to merge 2 commits into
Conversation
cgwalters
approved these changes
Sep 29, 2026
The install config fragments live partly in writable directories (/etc, /run), so one can be removed between the directory scan and reading it. That made `bootc install print-configuration` (and install itself) fail with a bare "No such file or directory", with no path to say which file. A removed fragment is just not part of the config anymore, so skip it; other read errors now name the file. This is what made the "install config" container integration test flake while "printconfig --all" created and removed a fragment in /run/bootc/install concurrently. Generated-by: AI Signed-off-by: Colin Walters <walters@verbum.org>
libtest runs the container tests concurrently, and "printconfig --all" writes and then removes a fragment in /run/bootc/install that "install config" would pick up while scanning the same directory. Besides the vanishing-file error fixed in the previous commit, the reader could also see the fragment half-written, so take a lock rather than relying on timing. Generated-by: AI Signed-off-by: Colin Walters <walters@verbum.org>
cgwalters-bot
force-pushed
the
bot/printconfig-race
branch
from
September 30, 2026 22:28
4a6dc3f to
f0c87be
Compare
Collaborator
Author
|
Signed off 2 commit(s) with |
cgwalters-bot
force-pushed
the
bot/printconfig-race
branch
from
September 30, 2026 22:28
f0c87be to
b5e7c08
Compare
Collaborator
Author
|
Opened upstream as bootc-dev#2520. Closing this review draft. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
install configcontainer integration test flakes witherror: Loading configuration: No such file or directory (os error 2)(seen on the sealed leg of bootc-dev#2500, and in a fork run on 2026-09-24).printconfig --allruns concurrently and creates then removes/run/bootc/install/10-test.toml, whichbootc install print-configurationcan find in its directory scan and then fail to open.The first commit makes config loading skip a fragment that vanished between scan and read (a real robustness issue, since
/etcand/runare writable), and names the file for other read errors. The second serializes the two tests so the reader can't also see the fragment half-written.Testing, on a 16-core devspace:
/run/bootc/installwhile runningbootc install print-configuration2000 times in the container): stockquay.io/fedora/fedora-bootc:44(bootc 1.16.13) failed 24/2000 and 25/2000 with the CI error; the image built from this branch had 0/2000.just validatepassed;just test-containerpassed (unit tests incl. the newtest_read_fragment, and all 10 container integration tests); the container integration tests then passed 10/10 more runs.Generated-by: https://github.com/cgwalters/#llms
Review draft in cgwalters-forge, not upstream yet. This section is removed when the PR is opened upstream.
bootc-dev/bootc, basemainPVTI_lADOE9oHIs4BlJLczg9kEigTo review:
/promoteon a line of its own, to open it upstream, ready for review. Either covers only the commits pushed so far.Signed-off-by: Colin Walters <walters@verbum.org>to the commits lacking it (the bot's and yours; anyone else's only if you ask), with you as committer./draftline (in the same comment or before) to open it upstream as a draft (/readyundoes that).