From: Ansgar Burchardt Date: Sun, 14 Jun 2015 10:22:31 +0000 (+0200) Subject: daklib/rm.py: acquire an advisory lock when writing to file X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=commitdiff_plain;h=8d1607e01b87f42e876c00d2abed535216ac05f3 daklib/rm.py: acquire an advisory lock when writing to file --- diff --git a/daklib/rm.py b/daklib/rm.py index 3a0a8f43..00643b1e 100644 --- a/daklib/rm.py +++ b/daklib/rm.py @@ -41,6 +41,7 @@ import commands import apt_pkg +import fcntl from re import sub from collections import defaultdict from regexes import re_build_dep_arch @@ -423,6 +424,9 @@ def remove(session, reason, suites, removals, log_filename = cnf["Rm::LogFile"] log822_filename = cnf["Rm::LogFile822"] with utils.open_file(log_filename, "a") as logfile, utils.open_file(log822_filename, "a") as logfile822: + fcntl.lockf(logfile, fcntl.LOCK_EX) + fcntl.lockf(logfile822, fcntl.LOCK_EX) + logfile.write("=========================================================================\n") logfile.write("[Date: %s] [ftpmaster: %s]\n" % (date, whoami)) logfile.write("Removed the following packages from %s:\n\n%s" % (suites_list, summary)) @@ -581,3 +585,6 @@ def remove(session, reason, suites, removals, logfile.write("=========================================================================\n") logfile822.write("\n") + + fcntl.lockf(logfile822, fcntl.LOCK_UN) + fcntl.lockf(logfile, fcntl.LOCK_UN)