Core: close pid file while writing it failed

Jim T h312841925 at gmail.com
Tue Jun 2 10:16:35 UTC 2020


Hello,  Maxim Dounin.

How about below patch, could you help me review it? And I found the problem
still exists in release-1.19.0, or do I miss anything?

---

Hello!

As far as I understand it, `ngx_create_pidfile` is a function that works
independently. There is no action to close the pid file externally, so we
need to close the pid file when the writing it failed. There are also
reports here https://github.com/nginx/nginx/pull/52.

# HG changeset patch
# User Jinhua Tan <312841925 at qq.com>
# Date 1590068494 -28800
#      Thu May 21 21:41:34 2020 +0800
# Node ID 6084ea4d9a4d2ae32f3fc4e2e3b9032ab0b71e30
# Parent  3242f98298975e556a7e87130611ce84799fe935
Core: close pid file while writing it failed.

diff -r 3242f9829897 -r 6084ea4d9a4d src/core/ngx_cycle.c
--- a/src/core/ngx_cycle.c      Wed May 20 12:24:05 2020 +0800
+++ b/src/core/ngx_cycle.c      Thu May 21 21:41:34 2020 +0800
@@ -1036,6 +1036,12 @@
         len = ngx_snprintf(pid, NGX_INT64_LEN + 2, "%P%N", ngx_pid) - pid;

         if (ngx_write_file(&file, pid, len, 0) == NGX_ERROR) {
+
+            if (ngx_close_file(file.fd) == NGX_FILE_ERROR) {
+                ngx_log_error(NGX_LOG_ALERT, log, ngx_errno,
+                              ngx_close_file_n " \"%s\" failed",
file.name.data);
+            }
+
             return NGX_ERROR;
         }
     }

Thank you!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20200602/cb6fcc5e/attachment-0001.htm>


More information about the nginx-devel mailing list