From 1429b5e7a6a88baa5fa5d8be6a64b35e0ae35cea Mon Sep 17 00:00:00 2001
From: Felix Weiglhofer <weiglhofer@fias.uni-frankfurt.de>
Date: Thu, 29 Jun 2023 14:59:16 +0000
Subject: [PATCH] algo::Unpack: Replace assert with error counter for invalid
 system versions.

---
 algo/unpack/Unpack.cxx | 6 +++++-
 algo/unpack/Unpack.h   | 6 ++++--
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/algo/unpack/Unpack.cxx b/algo/unpack/Unpack.cxx
index 5ec97f975f..9d9780bfd5 100644
--- a/algo/unpack/Unpack.cxx
+++ b/algo/unpack/Unpack.cxx
@@ -102,7 +102,11 @@ namespace cbm::algo
     }
     UnpackAlgo& algo = algoIt->second;
 
-    assert(timeslice->descriptor(comp, 0).sys_ver == sys_ver);
+    if (timeslice->descriptor(comp, 0).sys_ver != sys_ver) {
+      monitor.fNumErrInvalidSysVer++;
+      return;
+    }
+
     const uint64_t numMsInComp = timeslice->num_microslices(comp);
 
     for (uint64_t mslice = 0; mslice < numMsInComp; mslice++) {
diff --git a/algo/unpack/Unpack.h b/algo/unpack/Unpack.h
index afd0aeb169..acaf9d7f01 100644
--- a/algo/unpack/Unpack.h
+++ b/algo/unpack/Unpack.h
@@ -49,11 +49,13 @@ namespace cbm::algo
     size_t fNumDigis    = 0;
     size_t fNumCompUsed = 0;
     size_t fNumErrInvalidEqId = 0;
-    std::string print()
+    size_t fNumErrInvalidSysVer = 0;
+    std::string print() const
     {
       std::stringstream ss;
       ss << "TS stats: num MS " << fNumMs << ", bytes " << fNumBytes << ", digis " << fNumDigis << ", components "
-         << fNumCompUsed << std::endl;
+         << fNumCompUsed << ", invalidEqIds " << fNumErrInvalidEqId << ", invalidSysVersions " << fNumErrInvalidSysVer
+         << std::endl;
       return ss.str();
     }
   };
-- 
GitLab