From e6e2a9f3b3ad9ad040d95b0591ca4631199d9f7d Mon Sep 17 00:00:00 2001 From: Tanner Prestegard <tanner.prestegard@ligo.org> Date: Tue, 9 Apr 2019 08:39:47 -0500 Subject: [PATCH] Add error handling to log creation with files We've had some bad cases where a log entry is created, but the file is not saved due to filesystem errors. So we put the file creation in a try-except block and if it fails, delete the log message that was just created before re-raising the exception. --- gracedb/superevents/utils.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gracedb/superevents/utils.py b/gracedb/superevents/utils.py index ce71bfb19..8b38d75a3 100644 --- a/gracedb/superevents/utils.py +++ b/gracedb/superevents/utils.py @@ -231,8 +231,13 @@ def create_log(issuer, comment, event_or_superevent, filename="", # Create versioned file if data_file: - version = create_versioned_file(filename, event_or_superevent.datadir, - data_file) + try: + version = create_versioned_file(filename, + event_or_superevent.datadir, data_file) + except Exception as e: + # If creating the file fails, we want to delete the log entry + log.delete() + raise e # Update file_version log.file_version = version -- GitLab