From 6e992752ca63ed0ba2ed623894499328bc7be846 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Wed, 2 Jun 2021 10:32:27 +1000 Subject: [PATCH] prevent error storm when browser table encounters panic --- qt/aqt/browser/table/model.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/qt/aqt/browser/table/model.py b/qt/aqt/browser/table/model.py index 76b4320cf..4a9e68afd 100644 --- a/qt/aqt/browser/table/model.py +++ b/qt/aqt/browser/table/model.py @@ -75,6 +75,15 @@ class DataModel(QAbstractTableModel): return CellRow.deleted(self.len_columns()) except Exception as e: return CellRow.generic(self.len_columns(), str(e)) + except BaseException as e: + # fatal error like a panic in the backend - dump it to the + # console so it gets picked up by the error handler + import traceback + + traceback.print_exc() + # and prevent Qt from firing a storm of follow-up errors + self._block_updates = True + return CellRow.generic(self.len_columns(), "error") gui_hooks.browser_did_fetch_row( item, self._state.is_notes_mode(), row, self._state.active_columns