Core: close pid file while writing it failed.

Jim T h312841925 at gmail.com
Thu May 21 13:45:24 UTC 2020


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/20200521/08828d6c/attachment.htm>


More information about the nginx-devel mailing list