qemu runner: define static mount tag for mount_cache#2023
Merged
89luca89 merged 1 commit intoJun 3, 2025
Conversation
In 2c1640e ("fix: handle CACHEDIR properly (chainguard-dev#2021)"), the qemu runner was changed to mount the host's melange-cache into the vm as a disk based overlayfs. However, when it does this, it set the mount_tag that the 9p client in the guest uses to identify what to mount as the path in the host system, based on $TMPDIR. Unfortunately, the mount_tag has a limit of 31 characters, so if $TMPDIR is set to not /tmp, this can cause failures, like it did for me: ``` WARN qemu: qemu-system-x86_64: -device virtio-9p-pci,id=fs101,fsdev=fsdev101,mount_tag=/home/sbeattie/tmp/melange-cache: mount tag '/home/sbeattie/tmp/melange-cache' (32 bytes) is longer than maximum (31 bytes) ERRO failed to build package: unable to start pod: qemu: VM exited unexpectedly: exit status 1 ``` To fix this, convert the mount_tag for the melange cache in the qemu invocation to a static tag called "melange_cache", and pass that in the 9p mount invocation. Signed-off-by: Steve Beattie <steve.beattie@chainguard.dev>
89luca89
approved these changes
Jun 3, 2025
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.
In 2c1640e ("fix: handle CACHEDIR properly (#2021)"), the qemu runner was changed to mount the host's melange-cache into the vm as a disk based overlayfs. However, when it does this, it set the mount_tag that the 9p client in the guest uses to identify what to mount as the path in the host system, based on $TMPDIR. Unfortunately, the mount_tag has a limit of 31 characters, so if $TMPDIR is set to not /tmp, this can cause failures, like it did for me:
To fix this, convert the mount_tag for the melange cache in the qemu invocation to a static tag called "melange_cache", and pass that in the 9p mount invocation.