checkpoints are made with permissions 600 which breaks things when other users try to use those checkpoints.
I think the original user (or root) needs to open up permissions - it can't be done by the next submitting user.
my brief investigation of why this happens for checkpoint files but not others:
checkpoints are generated by galsim. galsim makes a temp file to write the checkpoint to then renames it into place (which is good for atomicity). galsim makes that tempfile using NamedTempFile, which I understand to use unix mkstemp. mkstemp makes temp files with permissions to be readable only by the creating user (which makes sense for temp files). those permissions last all the way to the temp file eventually being renamed into the longer term checkpoints.
checkpoints are made with permissions
600
which breaks things when other users try to use those checkpoints.I think the original user (or
root
) needs to open up permissions - it can't be done by the next submitting user.my brief investigation of why this happens for checkpoint files but not others:
checkpoints are generated by galsim. galsim makes a temp file to write the checkpoint to then renames it into place (which is good for atomicity). galsim makes that tempfile using
NamedTempFile
, which I understand to use unixmkstemp
. mkstemp makes temp files with permissions to be readable only by the creating user (which makes sense for temp files). those permissions last all the way to the temp file eventually being renamed into the longer term checkpoints.