-
Notifications
You must be signed in to change notification settings - Fork 305
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pull_with_options uses /var/tmp as tmp space, preventing pulling big files during kickstart installs #2571
Comments
Yes; hmm, AFAICS this should be the case right now. This needs a bit more debugging; there's various places where we pass the tempdir down, and it should point to the repository tmpdir i.e. |
Do you know if it shipped with 8.7, IE should I try again ? |
Heya - Just a note as I am experiencing this as well in the current 8.8 releases with the following ostree/rpm-ostree.
More than happy to try and debug this -- I was looking into the code which performs the download and found my way toward the libGObject interfaces for ostree and rpm-ostree, but would appreciate any pointers you have to where I can look further, @cgwalters. FYI the versions above are from Rocky Linux 8.8, but I did confirm it occurs w/ RHEL versions, too. |
I'm pretty sure this is from the fetcher. Unless |
So, I believe as a workaround you can set |
Right, the _LINKABLE flag is set if
That logic dates to 2e3889a Which directly writes to the repo only if we're not verifying checksums. But that's a bug; first, we should always be opening the tempfile in the repo location because that's where the space will be allocated. Second, it'd actually be a lot more efficient to just verify the checksum as we're fetching and then if that passes, directly use that fd we allocated for the final file. |
In an installation environment (like a live ISO) we may not have significant space outside of the target installation repository. There's no reason not to always open a linkable tempfile. In the future we should fix the pull path to verify the checksum and then just directly link in the object instead of copying. Closes: ostreedev#2571
PR in #2875 |
xref #2900 (comment) - when we aim to re-land this it'll need to be done in a way that avoids breaking flatpak (even if we find a flatpak fix, we should be conservative and still work with older versions). |
This reverts commit 4e61e6f and re-instates the fix for ensuring that we download temporary files into the repository location. However in order to ensure we don't re-introduce ostreedev#2900 we detect the case where we're writing to a FUSE mount and keep the prior behavior. I've verified that this works with flatpak. Note a downside of this is the change needs to be triplicated across the 3 http backends. This then again Closes: ostreedev#2571
This reverts commit 4e61e6f and re-instates the fix for ensuring that we download temporary files into the repository location. However in order to ensure we don't re-introduce ostreedev#2900 we detect the case where we're writing to a FUSE mount and keep the prior behavior. I've verified that this works with flatpak. Note a downside of this is the change needs to be triplicated across the 3 http backends. This then again Closes: ostreedev#2571
Using libostree/2021.3 (Alma 8.5)
I'm trying to install a tree over https containing big files (~1.5G) using anaconda/kickstart
While anaconda is running
/var/tmp
only has 800 Mo free (/dev/mapper/live-rw
), and oncepull_with_options
pulls a big file, runningdf -h
, I can see / fill up until I get aNo space left on device
.lsof /var/tmp
shows a deleted file:file://
install are working but nothttps://
(so either libcurl or the code around it need love)If possible tmp space should be in the ostree repo dir by default IMO.
As a workaround we can just mount a tmpfs on top of
/var/tmp
:The text was updated successfully, but these errors were encountered: