DBAtlas · Atlas de operaciones de bases de datos

ERR Lua script attempted to access nonexistent global variable: Lua script attempted to access a nonexistent global variable (el script Lua intentó acceder a una variable global inexistente)

Redis

¿Qué significa?

Un script Lua ejecutado con EVAL/EVALSHA intentó acceder a una variable global no definida. Para proteger el entorno de scripting, Redis restringe la creación/lectura de variables globales y devuelve ese acceso como error.

¿Por qué ocurre?

Usar por accidente una variable global en lugar de una local en el script (olvidar la palabra clave local); acceder a un nombre no definido por una errata; o intentar mantener estado en una variable global. El entorno Lua aislado (sandbox) de Redis no lo permite.

Cómo solucionarlo

Declare todas las variables del script con local: local x = ... Corrija las erratas; asegúrese de que cada variable esté definida antes de usarla. Los scripts deben ser sin estado; para un estado persistente use claves de Redis (KEYS/redis.call), no variables globales de Lua. Mantenga el script corto y determinista.

Abrir en DBAtlas →

Más entradas de este motor