PowerFlex "FEHLER: Fehler beim Verzweigen des Timers" beim Aktualisieren der Lizenz
Summary: Der Kunde kann seine PowerFlex-Lizenz nicht aktualisieren.
Symptoms
Szenario
KundInnen wird möglicherweise die folgende Meldung angezeigt, wenn sie versuchen, ihre Lizenz zu aktualisieren: "FEHLER: Timer konnte nicht geforkt werden."
Symptome
Aus dem MDM-Trace-Protokoll
29/09 15:19:38.957139 0x7f91e2645db8:mosEventLog_PostInternal:00608: New event added. Message: "Command set_license received, User: 'admin'. [774]". Additional info: "" Severity: Info 29/09 15:19:38.957208 (nil):mosIO_close:00137: Closing FD(299) 29/09 15:19:38.964892 (nil):mos_CreateProcessWithTimeout:00050: ERROR: Failed to fork timer 29/09 15:19:38.968880 (nil):mosIO_close:00137: Closing FD(299) 29/09 15:19:38.968906 0x7f91e2645db8:mdmObj_SetLicense:01918: Decode rc: ILLEGAL 29/09 15:19:38.968912 0x7f91e2645db8:mdmObj_SetLicense:01921: Bad license. RC: ILLEGAL 29/09 15:19:38.968946 0x7f91e2645db8:mosEventLog_PostInternal:00608: New event added. Message: "Command set_license was not successful. Error code: The license key is invalid or does not match this version. Please contact Customer Support. [774]". Additional info: "" Severity: Warning
Auswirkungen
Der Kunde kann seine Lizenz nicht aktualisieren, bis das Ressourcenproblem gelöst ist.
Cause
Wenn der Befehl scli --set_license ausgeführt wird, um die Lizenz anzuwenden, wird der MDM-Prozess zweimal geklont (verzweigt).
Der erste Schritt war erfolgreich, aber der Befehl konnte den MDM-Prozess nicht klonen. Dies kann auftreten, wenn das System nicht über genügend Ressourcen verfügt, um den Prozess zu klonen. In diesem Fall beschränkte die Konfiguration für die Arbeitsspeicherüberbelegung der SVM das System auf nur die Hälfte des verfügbaren Speichers:
grep 'vm.overcommit' ./server/sysctl.txt -H server/sysctl.txt:vm.overcommit_kbytes = 0 server/sysctl.txt:vm.overcommit_memory = 2 server/sysctl.txt:vm.overcommit_ratio = 50
Resolution
Vergewissern Sie sich, dass das System über ausreichend Ressourcen verfügt.
Überprüfen Sie die sysctl-Kernel-Parameter auf eine Überbelegung des Arbeitsspeichers:
# sysctl -a |grep commit vm.overcommit_memory = 2 (default is 0) vm.overcommit_ratio = 50 (default is 50)
In diesem Fall bedeutet die Einstellung "vm.overcommit_memory" auf 2 bedeutet, dass der Arbeitsspeicher nicht überbelegt wird. Dadurch schlägt jede Speicherzuweisung fehl, die das Überbelegungslimit überschreitet. Der gesamte Adressraum-Commit für das System darf Swap + eine konfigurierbare Menge (Standard ist 50 %) des physischen RAM nicht überschreiten.
Um dieses Problem zu beheben, fügen Sie einen der folgenden Befehle in /etc/sysctl.conf hinzu:
- Ändern Sie "vm.overcommit_ratio" in 100, damit das Betriebssystem den gesamten verfügbaren Adressraum bestätigen und neu starten kann.