Fix infinite recursion when computing concretization errors (#41061)
This commit is contained in:
parent
080a781b81
commit
198bd87914
1 changed files with 9 additions and 2 deletions
|
@ -713,7 +713,7 @@ def _get_cause_tree(
|
||||||
(condition_id, set_id) in which the latter idea means that the condition represented by
|
(condition_id, set_id) in which the latter idea means that the condition represented by
|
||||||
the former held in the condition set represented by the latter.
|
the former held in the condition set represented by the latter.
|
||||||
"""
|
"""
|
||||||
seen = set(seen) | set(cause)
|
seen.add(cause)
|
||||||
parents = [c for e, c in condition_causes if e == cause and c not in seen]
|
parents = [c for e, c in condition_causes if e == cause and c not in seen]
|
||||||
local = "required because %s " % conditions[cause[0]]
|
local = "required because %s " % conditions[cause[0]]
|
||||||
|
|
||||||
|
@ -812,7 +812,14 @@ def on_model(model):
|
||||||
errors = sorted(
|
errors = sorted(
|
||||||
[(int(priority), msg, args) for priority, msg, *args in error_args], reverse=True
|
[(int(priority), msg, args) for priority, msg, *args in error_args], reverse=True
|
||||||
)
|
)
|
||||||
msg = self.message(errors)
|
try:
|
||||||
|
msg = self.message(errors)
|
||||||
|
except Exception as e:
|
||||||
|
msg = (
|
||||||
|
f"unexpected error during concretization [{str(e)}]. "
|
||||||
|
f"Please report a bug at https://github.com/spack/spack/issues"
|
||||||
|
)
|
||||||
|
raise spack.error.SpackError(msg)
|
||||||
raise UnsatisfiableSpecError(msg)
|
raise UnsatisfiableSpecError(msg)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue