diff --git a/rag/raptor.py b/rag/raptor.py index 5da3d0864..e05293cee 100644 --- a/rag/raptor.py +++ b/rag/raptor.py @@ -127,6 +127,9 @@ class RecursiveAbstractiveProcessing4TreeOrganizedRetrieval: ck_idx = [i + start for i in range(len(lbls)) if lbls[i] == c] threads.append(executor.submit(summarize, ck_idx, lock)) wait(threads, return_when=ALL_COMPLETED) + for th in threads: + if isinstance(th.result(), Exception): + raise th.result() logging.debug(str([t.result() for t in threads])) assert len(chunks) - end == n_clusters, "{} vs. {}".format(len(chunks) - end, n_clusters) diff --git a/rag/svr/task_executor.py b/rag/svr/task_executor.py index 28adc628b..390a2dce1 100644 --- a/rag/svr/task_executor.py +++ b/rag/svr/task_executor.py @@ -526,12 +526,12 @@ def handle_task(): except Exception: pass logging.debug("handle_task got TaskCanceledException", exc_info=True) - except Exception: + except Exception as e: with mt_lock: FAILED_TASKS += 1 CURRENT_TASK = None try: - set_progress(task["id"], prog=-1, msg="handle_task got exception, please check log") + set_progress(task["id"], prog=-1, msg=f"[Exception]: {e}") except Exception: pass logging.exception(f"handle_task got exception for task {json.dumps(task)}")