ERR Lua script attempted to access nonexistent global variable: Lua script attempted to access a nonexistent global variable (o script Lua tentou acessar uma variável global inexistente)
RedisO que significa?
Um script Lua executado com EVAL/EVALSHA tentou acessar uma variável global não definida. Para proteger o ambiente de scripts, o Redis restringe a criação/leitura de variáveis globais e retorna esse acesso como erro.
Por que acontece?
Usar acidentalmente uma variável global em vez de local no script (esquecer a palavra-chave local); acessar um nome não definido por erro de digitação; ou tentar manter estado em uma variável global. O ambiente Lua isolado (sandbox) do Redis não permite isso.
Como resolver
Declare todas as variáveis do script com local: local x = ... Corrija erros de digitação; garanta que toda variável esteja definida antes do uso. Os scripts devem ser stateless; para estado persistente, use chaves do Redis (KEYS/redis.call), e não variáveis globais do Lua. Mantenha o script curto e determinístico.
Mais entradas deste banco
- NOPROTO unsupported protocol versionUnsupported RESP protocol version
- ERR Unknown option or number of arguments for CONFIG SETUnknown option or number of arguments for CONFIG SET (older versions: Unsupported CONFIG parameter) (opção ou número de argumentos desconhecidos para CONFIG SET)
- ERR MULTI calls can not be nestedMULTI calls can not be nested
- ERR unknown commandUnknown command
- TRYAGAIN Multiple keys request during rehashing of slotMultiple keys request during rehashing of slot (cluster) (requisição com várias chaves durante o rehashing do slot)
- ERR DISCARD without MULTIDISCARD without MULTI
- BUSYGROUP Consumer Group name already existsConsumer group already exists