-
Notifications
You must be signed in to change notification settings - Fork 0
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
Potential Concurrent Access Issues with spack-{packages,config}
#59
Comments
I think we can assume we can always rebuild a given model, as we have the So we don't need to keep lots of versions of these things around. In fact, they can be entirely ephemeral. So .. we could shallow clone all of them when required into No? Random thought: can we make use of the In the documentation it says:
Could we create the environment on a GitHub runner and then copy that down to |
That would be fine for |
It's a good point. My brain hurts. |
During an online meeting:
|
Will require changes based on ACCESS-NRI/spack-config#30 |
In both
/g/data/vk83/apps/spack/*/spack
and/g/data/vk83/prerelease/apps/spack/*/spack
(although it will be much more pronounced in the latter), we force checkout a potentially differentspack-{packages,config}
for the installation of aspack.yaml
. If multiple builds are happening at the same time, one build could force checkout to a differentspack-{packages,config}
during the installation of a different build.At the model level, we can enforce that only one run can access the
Gadi [Prerelease]
environment at once withconcurrency: <environment>
directive at the workflow level. But this doesn't help when multiple different models are accessing the given environment - there's no way to enforce it like that in GitHub. GitHub can only do repo-level concurrency things.Possibly, we might need to have a
spack-{packages,config}
per model version. For example:This would require changes to a bunch of things:
spack-config
s symlinks would be 3 directories deep, rather than 1 (pinging @harshula)spack-packages
would also be 3 directories deep (this might have implications for the above, too)git -C $spack/../spack-{packages,config}/${{ inputs.model }}/${{ inputs.version }} checkout --force ${{ inputs.spack-{packages,config} }}
@CodeGatHowever, the issue still remains with the symlinks into
$spack/etc/spack/
fromspack-config
. We've separated the repos into concurrently-accessible bits, but it seems that we've just moved the problem to the symlinks inspack-config
- we only have one install of spack that can be symlinked to onespack-{packages,config}
at a time. If another build changes those symlinks during installation, we're back where we started. Hmm...Pinging @aidanheerdegen because he loves this kind of stuff
The text was updated successfully, but these errors were encountered: