Skip to content

Commit d0d4721

Browse files
authored
Handle IOError in timing_trace to prevent aborting run control
1 parent 5d581e7 commit d0d4721

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

rc/control/daqinterface.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -725,7 +725,7 @@ def timing_trace_filename(self):
725725
)
726726

727727
def timing_trace(self, event, stage, elapsed_s=None, extra_fields=None):
728-
if not self.timing_trace_is_enabled():
728+
if not self.timing_trace_is_enabled() or getattr(self, "_timing_trace_failed", False):
729729
return
730730

731731
now = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S.%f")
@@ -748,8 +748,12 @@ def timing_trace(self, event, stage, elapsed_s=None, extra_fields=None):
748748
value = str(extra_fields[key]).replace(" ", "_")
749749
fields.append("%s=%s" % (key, value))
750750

751-
with open(self.timing_trace_filename(), "a") as outf:
752-
outf.write(" ".join(fields) + "\n")
751+
try:
752+
with open(self.timing_trace_filename(), "a") as outf:
753+
outf.write(" ".join(fields) + "\n")
754+
except IOError as e:
755+
print("WARNING: timing trace write failed, disabling tracing: %s" % e)
756+
self._timing_trace_failed = True
753757

754758
def timing_trace_start(self, stage, extra_fields=None):
755759
self.timing_trace("begin", stage, extra_fields=extra_fields)

0 commit comments

Comments
 (0)