ERR Protocol error: invalid multibulk length: Protocol error: invalid multibulk length
RedisNe demek?
Redis sunucusu, istemciden gelen bayt akışını RESP (Redis Serialization Protocol) protokolüne göre ayrıştıramadı. Çok-bölümlü (multibulk) bir komutun bildirdiği eleman sayısı geçersiz olduğundan bağlantı protokol hatasıyla kapatıldı.
Neden olur?
Genellikle Redis olmayan bir istemcinin (ör. bir HTTP isteği, yanlış porta bağlanan bir uygulama) Redis portuna ham veri göndermesi, bozuk/eksik bir istemci kütüphanesi, pipeline'da hatalı çerçeveleme ya da protokol sınırlarını aşan (proto-max-bulk-len) devasa istekler tetikler.
Nasıl çözülür?
Redis portuna yalnızca gerçek bir Redis istemcisinin bağlandığını doğrulayın (yanlışlıkla HTTP/başka protokol trafiği gelmemeli). İstemci kütüphanesini güncelleyin ve RESP çerçevelemesini bozan özel/manuel komut üretiminden kaçının. Çok büyük değerler gönderiyorsanız proto-max-bulk-len sınırını ve istek boyutunu gözden geçirin. Ağda araya giren bir proxy'nin veriyi bozmadığından emin olun.
Aynı motorda diğer kayıtlar
- ERR wrong number of arguments for commandWrong number of arguments for command
- ERR Background save already in progressBackground save already in progress
- ERR bit offset is not an integer or out of rangeBit offset is not an integer or out of range
- ERR Number of keys can't be greater than number of argsEVAL/EVALSHA: numkeys exceeds argument count
- ERR WATCH inside MULTI is not allowedWATCH inside MULTI is not allowed
- ERR WAIT cannot be used with replica instancesWAIT cannot be used with replica instances
- ERR Background append only file rewriting already in progressAOF rewrite already in progress