From 7406a5067f87c101bb3c92c1d432e68c8fad8bde Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Thu, 24 Aug 2023 08:39:16 +0200 Subject: [PATCH] Services: Unbound DNS - likely locking issue in https://forum.opnsense.org/index.php?topic=35527.0 , concurrent session closing the handle while still writing data. --- .../templates/OPNsense/Unbound/core/dnsbl_module.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/opnsense/service/templates/OPNsense/Unbound/core/dnsbl_module.py b/src/opnsense/service/templates/OPNsense/Unbound/core/dnsbl_module.py index 1f6608ce1..6b1abac3c 100644 --- a/src/opnsense/service/templates/OPNsense/Unbound/core/dnsbl_module.py +++ b/src/opnsense/service/templates/OPNsense/Unbound/core/dnsbl_module.py @@ -196,12 +196,13 @@ class Logger: def close(self): if self.stats_enabled: - if self._pipe_fd is not None: - os.close(self._pipe_fd) - try: - os.unlink(self._pipe_name) - except: - pass + with self._lock: + if self._pipe_fd is not None: + os.close(self._pipe_fd) + try: + os.unlink(self._pipe_name) + except: + pass def log_entry(self, query: Query): if not self.stats_enabled: