From 6359c74da1f53dc533ee26acc28972ed9816c9a6 Mon Sep 17 00:00:00 2001 From: Zhidao HONG Date: Wed, 6 Mar 2024 16:09:32 +0800 Subject: Var: Fix cacheable issue for njs variable access The variables accessed with JS template literal should not be cacheable. Since it is parsed by njs engine, Unit can't create indexes on these variables for caching purpose. For example: { "format": "`{bodyLength:\"${vars.body_bytes_sent}\",status:\"${vars.status}\"}\n`" } The variables like the above are not cacheable. Closes: https://github.com/nginx/unit/issues/1169 --- src/nxt_var.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nxt_var.c b/src/nxt_var.c index 2600371b..57110f66 100644 --- a/src/nxt_var.c +++ b/src/nxt_var.c @@ -147,7 +147,7 @@ nxt_var_ref_get(nxt_tstr_state_t *state, nxt_str_t *name, nxt_mp_t *mp) if (decl != NULL) { ref->handler = decl->handler; - ref->cacheable = decl->cacheable; + ref->cacheable = (mp == state->pool) ? decl->cacheable : 0; goto done; } -- cgit