<div dir="ltr">Hello,  Maxim Dounin.<div><br></div><div>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?<br><div><br></div><div>---</div><div><br>Hello!<br>
<br>
As far as I understand it, `ngx_create_pidfile` is a function that works<br>
independently. There is no action to close the pid file externally, so we<br>
need to close the pid file when the writing it failed. There are also<br>
reports here <a href="https://github.com/nginx/nginx/pull/52" rel="noreferrer" target="_blank">https://github.com/nginx/nginx/pull/52</a>.<br>
<br>
# HG changeset patch<br>
# User Jinhua Tan <<a href="mailto:312841925@qq.com" target="_blank">312841925@qq.com</a>><br>
# Date 1590068494 -28800<br>
#      Thu May 21 21:41:34 2020 +0800<br>
# Node ID 6084ea4d9a4d2ae32f3fc4e2e3b9032ab0b71e30<br>
# Parent  3242f98298975e556a7e87130611ce84799fe935<br>
Core: close pid file while writing it failed.<br>
<br>
diff -r 3242f9829897 -r 6084ea4d9a4d src/core/ngx_cycle.c<br>
--- a/src/core/ngx_cycle.c      Wed May 20 12:24:05 2020 +0800<br>
+++ b/src/core/ngx_cycle.c      Thu May 21 21:41:34 2020 +0800<br>
@@ -1036,6 +1036,12 @@<br>
         len = ngx_snprintf(pid, NGX_INT64_LEN + 2, "%P%N", ngx_pid) - pid;<br>
<br>
         if (ngx_write_file(&file, pid, len, 0) == NGX_ERROR) {<br>
+<br>
+            if (ngx_close_file(file.fd) == NGX_FILE_ERROR) {<br>
+                ngx_log_error(NGX_LOG_ALERT, log, ngx_errno,<br>
+                              ngx_close_file_n " \"%s\" failed",<br>
file.name.data);<br>
+            }<br>
+<br>
             return NGX_ERROR;<br>
         }<br>
     }<br>
<br>
Thank you!<br></div></div></div>