From ecfe84def70c8ccba32c2c3d7d3a25296e10dc59 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Tue, 5 Nov 2019 02:37:49 -0700 Subject: bugfix: uninstall should find concrete specs by DAG hash This fixes a regression introduced in #10792. `spack uninstall` in an environment would not match concrete query specs properly after the index hash of enviroments changed. - [x] Search by DAG hash for specs to remove instead of by build hash --- lib/spack/spack/environment.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/spack/spack/environment.py b/lib/spack/spack/environment.py index 4ab01cb250..f16599c215 100644 --- a/lib/spack/spack/environment.py +++ b/lib/spack/spack/environment.py @@ -833,8 +833,16 @@ class Environment(object): if not matches: # concrete specs match against concrete specs in the env + # by *dag hash*, not build hash. + dag_hashes_in_order = [ + self.specs_by_hash[build_hash].dag_hash() + for build_hash in self.concretized_order + ] + specs_hashes = zip( - self.concretized_user_specs, self.concretized_order) + self.concretized_user_specs, dag_hashes_in_order + ) + matches = [ s for s, h in specs_hashes if query_spec.dag_hash() == h -- cgit v1.2.3-60-g2f50