From dcdd8f1fae0d748cfd31a782efd48d6773c91740 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Tue, 12 Jun 2018 09:49:09 +0200 Subject: gcron: catch OSError as well as IOError In case os.open() fails because the file does not exist, an OSError is raised. To prevent the script to abort uncleanly, catch the OSError in addition to the IOError. Change-Id: I48e5b23e17d63639cc33db51b4229249a9887880 Fixes: bz#1559829 Signed-off-by: Niels de Vos (cherry picked from commit 26b52694feb04c98e6c9436bcd4e23e1687f0237) --- extras/snap_scheduler/gcron.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extras/snap_scheduler/gcron.py b/extras/snap_scheduler/gcron.py index d72057861ff..4a2ae71f62f 100755 --- a/extras/snap_scheduler/gcron.py +++ b/extras/snap_scheduler/gcron.py @@ -105,10 +105,10 @@ def doJob(name, lockFile, jobFunc, volname): else: log.info("Job %s has been processed already", name) fcntl.flock(f, fcntl.LOCK_UN) - except IOError as (errno, strerror): + except (OSError, IOError) as (errno, strerror): log.info("Job %s is being processed by another agent", name) os.close(f) - except IOError as (errno, strerror): + except (OSError, IOError) as (errno, strerror): log.debug("Failed to open lock file %s : %s", lockFile, strerror) log.error("Failed to process job %s", name) success = False -- cgit