gh-96159: Fix significant performance degradation in logging.TimedRotat… (GH-96182)

This commit is contained in:
Duncan Grisby 2022-08-23 07:28:43 +01:00 committed by GitHub
parent 129998bd7b
commit 1499d73b3e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 3 deletions

View file

@ -348,11 +348,15 @@ def shouldRollover(self, record):
record is not used, as we are just comparing times, but it is needed so
the method signatures are the same
"""
# See bpo-45401: Never rollover anything other than regular files
if os.path.exists(self.baseFilename) and not os.path.isfile(self.baseFilename):
return False
t = int(time.time())
if t >= self.rolloverAt:
# See #89564: Never rollover anything other than regular files
if os.path.exists(self.baseFilename) and not os.path.isfile(self.baseFilename):
# The file is not a regular file, so do not rollover, but do
# set the next rollover time to avoid repeated checks.
self.rolloverAt = self.computeRollover(t)
return False
return True
return False

View file

@ -0,0 +1 @@
Fix a performance regression in logging TimedRotatingFileHandler. Only check for special files when the rollover time has passed.