From be5a1fbd3e4bd6e9ea8908e7d9d6ebf654d97ef5 Mon Sep 17 00:00:00 2001 From: Martin Sekera Date: Tue, 5 May 2020 22:57:43 +0200 Subject: [PATCH] workaround insane mtime on busted filesystems --- hast.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/hast.py b/hast.py index 2c4d6ec..dc6b1b1 100755 --- a/hast.py +++ b/hast.py @@ -115,7 +115,17 @@ class UniqueStore: pass if not mtime: - mtime = datetime.datetime.fromtimestamp(stat.st_mtime) + try: + mtime = datetime.datetime.fromtimestamp(stat.st_mtime) + except ValueError: + # fall back to ctime in case mtime is FUBAR + self.log("%s: mtime (~%i) is out of range, falling back to ctime (~%i)" %( + path, + 1970 + stat.st_mtime // (365.24*86400), + 1970 + stat.st_ctime // (365.24*86400) + ), self.log.tl.warn) + + mtime = datetime.datetime.fromtimestamp(stat.st_ctime) if preload: filename_str = filename_src