-
Notifications
You must be signed in to change notification settings - Fork 31
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
mkdir Permission denied #138
Comments
Do these directories exist on the compute node? enroot/pyxis will run as unprivileged, so if you want to use folders like Not sure why |
I am having the same problem. I have a prolog task doing mkdir and chown but still gives the same error.
|
If it helps you, we use the format /scratch/$UID/enroot and /scratch/$UID/data for ENROOT_RUNTIME_PATH and ENROOT_DATA_PATH respectively and it has been working fine without any issues. However, I am having a issue with permissions, specifically for cache. Previously, we did not explicitly set/change ENROOT_CACHE_PATH in enroot.conf, so it was using $HOME/.cache/enroot and all was good. However, recently we started submitting container jobs using the Slurm REST API and we find that when a srun --container-image= is submitted via the slurm REST API, pyxis says there is no $HOME, so it wants to use /tmp. It works fine till /tmp runs out of space (pyxis does delete the layer files once it's done) if a large container is started or many at the same time, competing for the limited space on /tmp. I tried setting ENROOT_CACHE_PATH to a new directory called /scratch/enroot-cache with 777 permissions and it worked fine for users in the same group but if a user from a different group tries to start the same container, it finds the files here but this user does not have permissions for read it! Enroot creates the files with 640 perms. I then tried setting ENROOT_CACHE_PATH to /scratch/enroot-cache/group-$(id -g) which works for the first user starting a container, but a second user in the same group fails with permission error. Not sure why pyxis would want to mkdir an dir that already exists. Error message: "slurmstepd: error: pyxis: mkdir: cannot create directory ‘/scratch/enroot-cache/group-50200’: Permission denied" As you can see below, this dir was already created by the first user but the second user has no permissions to read/write from this dir. |
@seed-good if your problem is just permissions, you can have a Slurm prolog create the folder with the right group and permissions, like this:
|
Hi @flx42 thanks for the suggestion. Before I could try it, though, I noticed the pyxis srun option of --container-env=NAME[,NAME...], so I tried adding this option with env variable "HOME" and it does what I really want it do, which is to use the user's home dir (~/.cache/enroot) space to save the cache files. This is consistent with how it currently works for us when users use enroot import or srun --container-image=, so it would be the path of least resistance for us if we simply add the pyxis --container-env parameter when we use slurm API. Besides, our slurm admins may balk at adding another prolog script to slurm :-) |
Hi, I used to use enroot and pyxis in slurm, but unfortunately my settings got corrupted and I get the following error. Can you help me please?
Also, my
enroot.conf
file is as follows:The text was updated successfully, but these errors were encountered: