From 64f5c15ec8797947e18afe5ff1de04cbd963a7dd Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Fri, 9 Oct 2026 16:03:38 -0700 Subject: [PATCH] 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. --- nginx/ngx_js_shared_dict.c | 2 ++ 1 file changed, 2 insertions(+) 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; -- 2.47.3