From 1255620a14afa3ad4aad681a847a3a1704141976 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Tue, 14 Nov 2023 14:44:58 +0100 Subject: Fix infinite recursion when computing concretization errors (#41061) --- lib/spack/spack/solver/asp.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py index 4514bd0e96..806bbac28f 100644 --- a/lib/spack/spack/solver/asp.py +++ b/lib/spack/spack/solver/asp.py @@ -713,7 +713,7 @@ class ErrorHandler: (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. """ - seen = set(seen) | set(cause) + seen.add(cause) parents = [c for e, c in condition_causes if e == cause and c not in seen] local = "required because %s " % conditions[cause[0]] @@ -812,7 +812,14 @@ class ErrorHandler: errors = sorted( [(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) -- cgit v1.2.3-70-g09d2