-
Notifications
You must be signed in to change notification settings - Fork 50
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
Permission denied errors when rebuilding (Python?) bundles with extensions that install binaries #556
Comments
We're now seeing the same issue for our EESSI-extend module (see #578), which is a bundle.
I still don't have a clue why it only happens for some easyconfigs... |
Also seeing similar issues for LAMMPS in #788. This one is not a bundle, but a cmakemake easyblock.
I've debugged this a bit interactively, but still can't find the issue. After the directory gets recreated in the build container, it looks empty at first, but when you do an
and like this when it's recreated:
Might also be related to containers/fuse-overlayfs#324? |
I've also tried some workarounds here, for instance by explicitly removing every individual file in the installation directory (using As an alternative I was thinking of bind mounting a host directory to the installation prefix in the container, but that doesn't seem possible on top of fuse-mounted CVMFS repos. The only way I could make it work is by also bind mounting |
@bedroge This smells a lot like a bug in Which version are we using, when have we last tried to update it? |
Forgot to mention that, but I also tried using a newer version of fuse-overlayfs (1.14), that didn't help either. It could be a bug, though we also have a bit of a complex setup here with read-only dirs in a fuse-mounted CVMFS repo, where we delete stuff with fakeroot, and then reuse the |
And I really don't understand why we only see it sometimes. It worked fine for, for instance, GCC and OpenMPI rebuilds. |
That complicates making a small reproducer to be able to report this to fuse-overlayfs upstream, of course... :( Any luck with |
Based on @casparvl's suggestion, I've been trying some other workarounds, and at some point it suddenly seemed to work when I removed all files and directories manually and individually. But when I tried to do the same thing with some smart So I tried this on the
Then resume the container without
This is the issue that we often see in PRs, where the installation prefix seems empty, but if you know what to look for, files are suddenly still there. Now I'm redoing the same steps in a clean container, do the removal in the same way, and just do one additional
So, the issue only pops up when you first do an |
And though the fix seems easy, it may not be trivial. The affected subdir seems to be different for each installation: sometimes it's |
When trying to rebuild Python, hatchling, and Python-bundle-PyPI in #546, we ran into weird permission issues for both hatchling and Python-bundle-PyPI. It's not clear yet what's causing it, but it seems to happen for (Python) bundles that include extensions that not only install files to
lib
, but also tobin
.. The removal step seems to work fine and successfully removes the existing installation, but in the build phase the extension will suddenly see the oldbin
directory again (with read-only permissions), and fail with errors like:I've tried a lot of possible workarounds in both #546 and #555:
chmod -R u+w
) instead of removing the existing installation dirhatchling
) instead of only removing the installation dir of the particular versionEASYBUILD_READ_ONLY_INSTALLDIR
before starting the buildNone of them solved the issue, though. So, in the end, I opted for working around it by adding write permissions to the affected installation directories on the Stratum 0, and then the rebuilds completed successfully.
The text was updated successfully, but these errors were encountered: