Improve error message when fsync'ing files fails

This commit is contained in:
Unrud 2017-08-03 19:46:58 +02:00
parent ae54e8556c
commit ba5fe590c9

View File

@ -736,7 +736,11 @@ class Collection(BaseCollection):
newline=newline, encoding=None if "b" in mode else self._encoding)
try:
yield tmp
self._fsync(tmp.fileno())
try:
self._fsync(tmp.fileno())
except OSError as e:
raise RuntimeError("Fsync'ing file %r failed: %s" %
(path, e)) from e
tmp.close()
os.replace(tmp.name, path)
except:
@ -952,7 +956,11 @@ class Collection(BaseCollection):
fs[-1].write(text)
# sync everything at once because it's slightly faster.
for f in fs:
self._fsync(f.fileno())
try:
self._fsync(f.fileno())
except OSError as e:
raise RuntimeError("Fsync'ing file %r failed: %s" %
(f.name, e)) from e
self._sync_directory(self._filesystem_path)
@classmethod