From a0aef94143d3192f86a2c3508dc1e669221013a5 Mon Sep 17 00:00:00 2001 From: Oskar Eichler <62393985+OskarEichler@users.noreply.github.com> Date: Sun, 30 Aug 2026 15:28:43 +0700 Subject: [PATCH] Close log files when creation fails --- lib/logger/log_device.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/logger/log_device.rb b/lib/logger/log_device.rb index e16f3b7..ea741ab 100644 --- a/lib/logger/log_device.rb +++ b/lib/logger/log_device.rb @@ -130,6 +130,8 @@ def open_logfile(filename) end def create_logfile(filename) + logdev = nil + success = false begin logdev = File.open(filename, MODE_TO_CREATE) logdev.flock(File::LOCK_EX) @@ -138,10 +140,13 @@ def create_logfile(filename) logdev.binmode if @binmode add_log_header(logdev) unless @skip_header logdev.flock(File::LOCK_UN) + success = true logdev rescue Errno::EEXIST # file is created by another process open_logfile(filename) + ensure + logdev.close if logdev and !success end end