From db371ac8c019121921c11cde2ed20f2d1a646d9e Mon Sep 17 00:00:00 2001 From: ievgenii vdovenko Date: Mon, 22 Sep 2025 11:42:23 +0200 Subject: [PATCH] fix: fixes a UI bug showing an incorrect number of exceptions --- .../apps/admin/views/exception_tracker.py | 21 ++++++++++++++++--- .../settings/settings_exceptions_browse.mako | 7 ++++++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/rhodecode/apps/admin/views/exception_tracker.py b/rhodecode/apps/admin/views/exception_tracker.py index 18fe70c1..9e64df04 100644 --- a/rhodecode/apps/admin/views/exception_tracker.py +++ b/rhodecode/apps/admin/views/exception_tracker.py @@ -36,14 +36,29 @@ class ExceptionsTrackerView(BaseAppView): c.navlist = navigation_list(self.request) return c - def count_all_exceptions(self): + def count_all_exceptions(self, type_filter: str = None) -> int: exc_store_path = exc_tracking.get_exc_store() count = 0 for fname in os.listdir(exc_store_path): parts = fname.split("_", 2) if not len(parts) == 3: continue - count += 1 + + if type_filter is not None: + # count only filtered exceptions + full_path = os.path.join(exc_store_path, fname) + if not os.path.isfile(full_path): + continue + try: + with open(full_path, "rb") as f: + exc_metadata = exc_tracking.exc_unserialize(f.read()) + exception_type = exc_metadata.get("exc_type") + if exception_type == type_filter: + count += 1 + except Exception: + log.exception(f"Failed to read exc data from:{full_path}") + else: + count += 1 return count def get_all_exceptions(self, read_metadata=False, limit=None, type_filter=None): @@ -107,7 +122,7 @@ class ExceptionsTrackerView(BaseAppView): c.type_filter = self.request.GET.get("type_filter") c.next_limit = c.limit + 50 c.exception_list = self.get_all_exceptions(read_metadata=True, limit=c.limit, type_filter=c.type_filter) - c.exception_list_count = self.count_all_exceptions() + c.exception_list_count = self.count_all_exceptions(type_filter=c.type_filter) c.exception_store_dir = exc_tracking.get_exc_store() return self._get_template_context(c) diff --git a/rhodecode/templates/admin/settings/settings_exceptions_browse.mako b/rhodecode/templates/admin/settings/settings_exceptions_browse.mako index ac886c06..464c50f3 100644 --- a/rhodecode/templates/admin/settings/settings_exceptions_browse.mako +++ b/rhodecode/templates/admin/settings/settings_exceptions_browse.mako @@ -16,7 +16,12 @@