From c472e3f5e9480fa6671a9b6c3867f3fa8179360b Mon Sep 17 00:00:00 2001 From: Brian Koopman Date: Thu, 15 Aug 2024 15:19:33 -0400 Subject: [PATCH] Catch bad file descriptor errors when parsing logs --- socs/agents/bluefors/agent.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/socs/agents/bluefors/agent.py b/socs/agents/bluefors/agent.py index 1b0f2c94c..f25e2f3c4 100644 --- a/socs/agents/bluefors/agent.py +++ b/socs/agents/bluefors/agent.py @@ -380,7 +380,13 @@ def read_and_publish_logs(self, app_session): new = self.log_tracker.reopen_file(k) LOG.debug("File: {f}, Line: {l}", f=k, l=new) else: - new = v['file_object'].readline() + try: + new = v['file_object'].readline() + except OSError as e: + LOG.warn(f"Unable to read line from {k} due to error: '{e}'. " + + "Reopening file.") + # Error likely caused by improperly closed file, so reopen it + new = self.log_tracker.reopen_file(k) if new == '': continue