Como o BGREWRITEAOF pode retornar ERR?

1

A documentação para BGREWRITEAOF afirma que BGREWRITEAOF sempre retorna o valor da string OK .

Bem, hoje eu enviei BGREWRITEAOF para o meu redis-server 2.6.7 e recebi (error) ERR em resposta.

maxmemory é 3G; appendonly é yes . O sistema tem 4GB de RAM.

O que aconteceu?

    
por Jacob Krall 21.11.2017 / 01:26

1 resposta

1

O encadeamento secundário responsável por reescrever o AOF ficou sem memória. O log parecia algo assim, repetido a cada poucas centenas de ms:

[2435] * Starting automatic rewriting of AOF on 302% growth
[2435] # Can't rewrite append only file in background: fork: Cannot allocate memory

Redis entrou em um loop em que o thread de segundo plano estava travado e BGREWRITEAOF não conseguiu iniciar um novo. Reiniciar o servidor Redis foi a maneira como eu o corrigi, com alguns segundos de inatividade.

    
por 21.11.2017 / 01:26

Tags