]> git.kaiwu.me - njs.git/commit
Modules: reject asynchronous work during module initialization
authorDmitry Volyntsev <xeioex@nginx.com>
Thu, 5 Nov 2026 00:49:18 +0000 (16:49 -0800)
committerDmitry Volyntsev <xeioexception@gmail.com>
Wed, 11 Nov 2026 21:33:45 +0000 (13:33 -0800)
commit72774fc2deabcf87f8d016a6fb76dda0142c64ee
tree2c90425fd1a60f8b08595a99e35cc696a15219ca
parentaeeb662f8f53145821e7f24cf33c1600f83c1d0f
Modules: reject asynchronous work during module initialization

Global code is intended for synchronous initialization, but Fetch and
timers could start request-bound work before clone publication.  QuickJS
Fetch dereferenced the unpublished engine, and module-level timers could
escape initialization.

Reject Fetch, setTimeout(), and setImmediate() before argument conversion
or resource allocation in both engines.  This does not prohibit ordinary
promise jobs or synchronous module initialization.
nginx/ngx_js.c
nginx/ngx_js_fetch.c
nginx/ngx_qjs_fetch.c