Skip to content

pipelines: Change x86_64 E4S stack to use clingo concretizer#25287

Closed
scottwittenburg wants to merge 3 commits intospack:developfrom
scottwittenburg:pipelines-use-clingo-for-e4s
Closed

pipelines: Change x86_64 E4S stack to use clingo concretizer#25287
scottwittenburg wants to merge 3 commits intospack:developfrom
scottwittenburg:pipelines-use-clingo-for-e4s

Conversation

@scottwittenburg
Copy link
Copy Markdown
Contributor

Use the new concretizer for gitlab PR/develop pipelines building the E4S stack, initially just on x86_64.

@spackbot-app spackbot-app bot added the gitlab Issues related to gitlab integration label Aug 6, 2021
@tgamblin
Copy link
Copy Markdown
Member

tgamblin commented Aug 6, 2021

This is breaking because of #22613, which I am working on.

@tgamblin
Copy link
Copy Markdown
Member

@scottwittenburg it occurred to me that as a workaround, you can concretize with clingo but set the concretizer to the original one in the build jobs. You don't actually need to concretize in the build jobs, right? You just need to be able to refer to an already-concrete hash. So the logic after lockfile creation should be exactly the same as the old system; you should just use the new concretizer at generation time.

We can fix this in a better way after #22613 is merged, or maybe before -- I think we could tweak the concretize() method to notice when everything that needs concretizing is already concrete, and skip bootstrapping and concretization altogether (which is probably better for CI).

@scottwittenburg
Copy link
Copy Markdown
Contributor Author

@tgamblin I tried your suggestion, thanks. I think it exposed the real problem, which was just a mistake on my part. I was using a new runner image with a different compiler installed, but hadn't updated the os/compiler information in the stack. So what I expect happened was that spack got started installing missing compilers, and hence needed to concretize stuff. Otherwise, I'm confused where concretization would have been needed in the rebuild jobs.

In fact, the radiuss stack is already using the clingo concretizer, and did not need to reset the concretizer for the rebuild jobs (at least not that I can see, but @tldahlgren probably knows for sure).

So now some stages of build jobs completed successfully, but eventually some failed. Running the reproducer locally for one of those, it seems that the spack.lock contains two instances of numactl with different build hashes (the key used for spack.lock entries), but with the same DAG hash. So the spack install ... command fails with:

SpackEnvironmentError: numactl@2.0.14%gcc@9.3.0 blahblahblah matches multiple specs in the environment ...:

Dependency spec
  vw2cdve  numactl@2.0.14%gcc@9.3.0 ...
Dependency spec
  vw2cdve  numactl@2.0.14%gcc@9.3.0 ...

@alalazo alalazo mentioned this pull request Aug 19, 2021
4 tasks
@sethrj
Copy link
Copy Markdown
Contributor

sethrj commented Oct 3, 2021

@scottwittenburg I think this is closed by #25502 ? Please reopen if I'm incorrect.

@sethrj sethrj closed this Oct 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gitlab Issues related to gitlab integration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants