Wie kann BGREWRITEAOF ERR zurückgeben?

483
Jacob Krall

Die Dokumentation fürBGREWRITEAOF Zustände, die BGREWRITEAOFimmer den Zeichenfolgenwert zurückgeben OK.

Nun, heute habe ich 2.6.7 BGREWRITEAOFan meinen Redis-Server geschickt und als (error) ERRAntwort erhalten.

maxmemoryist 3G; appendonlyist yes. Das System verfügt über 4 GB RAM.

Was ist passiert?

1

1 Antwort auf die Frage

1
Jacob Krall

Der Hintergrund-Thread, der für das Umschreiben der AOF verantwortlich ist, hat keinen Speicher mehr. Das Protokoll sah ungefähr so ​​aus und wurde alle paar hundert ms wiederholt:

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

Redis war in eine Schleife geraten, in der der Hintergrund-Thread hängengeblieben war, und BGREWRITEAOFkonnte keinen neuen starten. Mit dem Neustart des Redis-Servers habe ich ihn korrigiert, mit ein paar Sekunden Ausfallzeit.