From 697298bd33b9138136e81ac94edaf1dec125264f Mon Sep 17 00:00:00 2001
From: Daniel <daniel@developerdan.com>
Date: Thu, 27 Feb 2025 17:37:31 -0500
Subject: [PATCH] Handle OSError when 'temp' file is not readable

Sometimes reading 'temp' generates an error message 'No data available'.
Wrapping it in a try/catch allow other temp zone to work as expected.
This bug was reported at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1098368
---
 ntpclients/ntplogtemp.py | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

--- a/ntpclients/ntplogtemp.py
+++ b/ntpclients/ntplogtemp.py
@@ -207,13 +207,16 @@
         _zone = 0
         _data = []
         for zone in self.zones:
-            _zone_data = open(os.path.join(zone, 'temp'))
-            for line in _zone_data:
-                temp = float(line) / 1000
-                _now = int(time.time())
-                _data.append('%d ZONE%s %s' % (_now, _zone, temp))
-                _zone += 1
-            _zone_data.close()
+            try:
+                with open(os.path.join(zone, 'temp')) as _zone_data:
+                    for line in _zone_data:
+                        temp = float(line) / 1000
+                        _now = int(time.time())
+                        _data.append('%d ZONE%s %s' % (_now, _zone, temp))
+                        _zone += 1
+            except OSError:
+                # temp might not be readable, if so continue on to the next one
+                continue
         return _data
 
 
