From ee47bf1adb8e8bb8e351ee6fc0312c57ff87d646 Mon Sep 17 00:00:00 2001 From: Alexander Hartung Date: Tue, 20 Oct 2026 09:36:02 +0200 Subject: [PATCH 1/2] Remove lock file after subprocess finishes --- .../generate_totals_subprocess.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/helpermodules/measurement_logging/generate_totals_subprocess.py b/packages/helpermodules/measurement_logging/generate_totals_subprocess.py index 7f722ae55a..f19a3b1283 100644 --- a/packages/helpermodules/measurement_logging/generate_totals_subprocess.py +++ b/packages/helpermodules/measurement_logging/generate_totals_subprocess.py @@ -1,5 +1,6 @@ import fcntl import json +import os from pathlib import Path from datetime import date @@ -86,7 +87,18 @@ def generate_totals(): log.exception("generate_totals_subprocess läuft bereits. " "Der zweite Prozess wird beendet.") return - _generate_totals() + try: + current_lock_stat = LOCK_FILE.stat() + except FileNotFoundError: + return + # Ein anderer Prozess kann die bereits geöffnete Lock-Datei inzwischen gelöscht und neu angelegt haben. + # Unsere Sperre gilt dann nur für die alte Datei. Abbrechen, damit nicht zwei Prozesse gleichzeitig rechnen. + if not os.path.samestat(current_lock_stat, os.fstat(lock_file.fileno())): + return + try: + _generate_totals() + finally: + LOCK_FILE.unlink(missing_ok=True) if __name__ == "__main__": From 6e56b35ce3d69b557f8dec098d7a4f041aaa7bba Mon Sep 17 00:00:00 2001 From: Alexander Hartung Date: Tue, 20 Oct 2026 09:58:02 +0200 Subject: [PATCH 2/2] Update .gitignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index c2d4c15890..c83c7c0d5e 100644 --- a/.gitignore +++ b/.gitignore @@ -23,7 +23,6 @@ data/backup/*.tar.gz data/backup/*.openwb-backup* data/restore/*.tar.gz data/data_migration/*.tar.gz -data/generate_totals.lock ramdisk/* web/lastcommit !.gitignore