DBAtlas · Atlas d'exploitation des bases de données

ERR Lua script attempted to access nonexistent global variable: Lua script attempted to access a nonexistent global variable (le script Lua a tenté d'accéder à une variable globale inexistante)

Redis

Que signifie cette erreur ?

Un script Lua exécuté avec EVAL/EVALSHA a tenté d'accéder à une variable globale non définie. Pour protéger l'environnement de script, Redis restreint la création/la lecture de variables globales et renvoie ce type d'accès comme une erreur.

Cause

Utilisation accidentelle d'une variable globale au lieu d'une variable locale dans le script (oubli du mot-clé local) ; accès à un nom non défini à cause d'une faute de frappe ; ou tentative de conserver un état dans une variable globale. L'environnement Lua isolé (sandbox) de Redis ne le permet pas.

Comment la corriger

Déclarez toutes les variables du script avec local : local x = ... Corrigez les fautes de frappe ; assurez-vous que chaque variable est définie avant son utilisation. Les scripts doivent être sans état ; pour un état persistant, utilisez des clés Redis (KEYS/redis.call), et non des variables Lua globales. Gardez le script court et déterministe.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur