1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-15 08:04:49 +01:00

recorder: catch exception in close_idle_files() if file no longer exists and ensure it's removed

This commit is contained in:
Ilya Kreymer 2016-08-12 01:19:30 -04:00
parent 594aff86d3
commit 82d3b61523

View File

@ -376,8 +376,11 @@ class MultiFileWARCWriter(BaseWARCWriter):
return fh
def _close_file(self, fh):
fcntl.flock(fh, fcntl.LOCK_UN)
fh.close()
try:
fcntl.flock(fh, fcntl.LOCK_UN)
fh.close()
except Exception as e:
print(e)
def get_dir_key(self, params):
return res_template(self.key_template, params)
@ -506,8 +509,14 @@ class MultiFileWARCWriter(BaseWARCWriter):
now = datetime.datetime.now()
for dir_key, out, filename in self.iter_open_files():
mtime = os.path.getmtime(filename)
try:
mtime = os.path.getmtime(filename)
except:
self.close_key(dir_key)
return
mtime = datetime.datetime.fromtimestamp(mtime)
if (now - mtime) > self.max_idle_time:
print('Closing idle ' + filename)
self.close_key(dir_key)