From: Dmitry Volyntsev Date: Fri, 9 Oct 2026 23:03:38 +0000 (-0700) Subject: Modules: abort shared dict state save on close failure X-Git-Url: https://git.kaiwu.me/?a=commitdiff_plain;h=64f5c15ec8797947e18afe5ff1de04cbd963a7dd;p=njs.git Modules: abort shared dict state save on close failure A close failure may report a delayed write error. Do not rename the temporary file over the previous state file in this case. Invalidate the descriptor before cleanup to avoid closing it twice. --- diff --git a/nginx/ngx_js_shared_dict.c b/nginx/ngx_js_shared_dict.c index 35631f2c..2631f7e7 100644 --- a/nginx/ngx_js_shared_dict.c +++ b/nginx/ngx_js_shared_dict.c @@ -2659,6 +2659,8 @@ ngx_js_dict_save(ngx_js_dict_t *dict) 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); + file.fd = NGX_INVALID_FILE; + goto error; } file.fd = NGX_INVALID_FILE;