bugfix: identical specs with different DAG hashes don't shadow each other
- logic used in `spack find` was hiding duplicate installations if their hashes were different - short hash doesn't work in this scenario, since specs are structurally identical - ConstraintAction always works on a DB query, so use the DAG hash to ensure uniqueness
This commit is contained in:
		| @@ -57,11 +57,13 @@ def _specs(self, **kwargs): | |||||||
|             return spack.store.db.query(**kwargs) |             return spack.store.db.query(**kwargs) | ||||||
|  |  | ||||||
|         # Return only matching stuff otherwise. |         # Return only matching stuff otherwise. | ||||||
|         specs = set() |         specs = {} | ||||||
|         for spec in qspecs: |         for spec in qspecs: | ||||||
|             for s in spack.store.db.query(spec, **kwargs): |             for s in spack.store.db.query(spec, **kwargs): | ||||||
|                 specs.add(s) |                 # This is fast for already-concrete specs | ||||||
|         return sorted(specs) |                 specs[s.dag_hash()] = s | ||||||
|  |  | ||||||
|  |         return sorted(specs.values()) | ||||||
|  |  | ||||||
|  |  | ||||||
| _arguments['constraint'] = Args( | _arguments['constraint'] = Args( | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Todd Gamblin
					Todd Gamblin