[tor-commits] [tor/master] No need to log ordinary EOF conditions as LOG_WARN.

nickm at torproject.org nickm at torproject.org
Thu Dec 20 16:44:56 UTC 2018


commit 776208896756651519fd6540103c73a369b6d485
Author: Alexander Færøy <ahf at torproject.org>
Date:   Thu Dec 20 13:12:53 2018 +0100

    No need to log ordinary EOF conditions as LOG_WARN.
    
    Let's not use log_warn() when a pipe is closed under what should be
    considered normal conditions.
    
    See: https://bugs.torproject.org/28179
---
 src/lib/process/process_win32.c | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/src/lib/process/process_win32.c b/src/lib/process/process_win32.c
index 641af2bb0..d8a895875 100644
--- a/src/lib/process/process_win32.c
+++ b/src/lib/process/process_win32.c
@@ -365,8 +365,17 @@ process_win32_write(struct process_t *process, buf_t *buffer)
                     process_win32_stdin_write_done);
 
   if (! ret) {
-    log_warn(LD_PROCESS, "WriteFileEx() failed: %s",
-             format_win32_error(GetLastError()));
+    error_code = GetLastError();
+
+    /* No need to log at warning level for these two. */
+    if (error_code == ERROR_HANDLE_EOF || error_code == ERROR_BROKEN_PIPE) {
+      log_debug(LD_PROCESS, "WriteFileEx() returned EOF from pipe: %s",
+                format_win32_error(error_code));
+    } else {
+      log_warn(LD_PROCESS, "WriteFileEx() failed: %s",
+               format_win32_error(error_code));
+    }
+
     win32_process->stdin_handle.reached_eof = true;
     return 0;
   }
@@ -897,8 +906,17 @@ process_win32_read_from_handle(process_win32_handle_t *handle,
                    callback);
 
   if (! ret) {
-    log_warn(LD_PROCESS, "ReadFileEx() failed: %s",
-             format_win32_error(GetLastError()));
+    error_code = GetLastError();
+
+    /* No need to log at warning level for these two. */
+    if (error_code == ERROR_HANDLE_EOF || error_code == ERROR_BROKEN_PIPE) {
+      log_debug(LD_PROCESS, "ReadFileEx() returned EOF from pipe: %s",
+                format_win32_error(error_code));
+    } else {
+      log_warn(LD_PROCESS, "ReadFileEx() failed: %s",
+               format_win32_error(error_code));
+    }
+
     handle->reached_eof = true;
     return bytes_available;
   }





More information about the tor-commits mailing list