From ba0cd4d912ef66908a0e560cdbdc6f8cbf633390 Mon Sep 17 00:00:00 2001 From: Gregory Becker Date: Wed, 17 Jul 2019 13:46:36 -0500 Subject: [PATCH] concretization: fix transient hang in python 3.5 Bug relates to the interplay between: 1. random dict orders in python 3.5 2. bugfix in initial implementation of stacks for `_concretize_dependencies` when `self._dependencies` is empty 3. bug in coconcretization algorithm computation of split specs Result was transient hang in coconcretization. Fixed #3 (bug in coconcretization) to resolve. --- lib/spack/spack/concretize.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/spack/spack/concretize.py b/lib/spack/spack/concretize.py index 551251162e..296b5b1273 100644 --- a/lib/spack/spack/concretize.py +++ b/lib/spack/spack/concretize.py @@ -500,7 +500,8 @@ def make_concretization_repository(abstract_specs): # Split recursive specs, as it seems the concretizer has issue # respecting conditions on dependents expressed like # depends_on('foo ^bar@1.0'), see issue #11160 - split_specs = [dep for spec in abstract_specs + split_specs = [dep.copy(deps=False) + for spec in abstract_specs for dep in spec.traverse(root=True)] with open(os.path.join(pkg_dir, 'package.py'), 'w') as f: