PowerFlex "ERROR: No se pudo bifurcar el temporizador" durante la actualización de la licencia
Summary: El cliente no puede actualizar su licencia de PowerFlex.
Symptoms
Escenario
Es posible que el cliente vea el siguiente mensaje cuando intenta actualizar su licencia: "ERROR: No se pudo bifurcar el temporizador"
Síntomas
En el registro de seguimiento de MDM
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
Impacto
El cliente no puede actualizar su licencia hasta que se resuelva su problema de recursos.
Cause
Cuando se ejecuta el comando scli --set_license para aplicar la licencia, el proceso de MDM se clona (bifurca) dos veces.
El primer paso se realizó correctamente, pero el comando no pudo clonar el proceso de MDM. Esto puede ocurrir si el sistema no tiene recursos suficientes para clonar el proceso. En este caso, la configuración de sobreasignación de memoria de la SVM limitó el sistema a solo la mitad de la memoria disponible:
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
Confirme que el sistema tenga suficientes recursos disponibles.
Compruebe los parámetros del kernel sysctl para la sobreasignación de memoria:
# sysctl -a |grep commit vm.overcommit_memory = 2 (default is 0) vm.overcommit_ratio = 50 (default is 50)
En este caso, tener "vm.overcommit_memory" establecido en dos significa que no hay una sobreasignación de memoria. Esto falla cualquier asignación de memoria que supere el límite de sobreasignación. No se permite que el espacio total de direcciones asignado para el sistema supere el intercambio + una cantidad configurable (el valor predeterminado es 50 %) de RAM física.
Para solucionar este problema, agregue/edite una de las siguientes opciones en /etc/sysctl.conf:
- Cambie "vm.overcommit_ratio" a 100, para que el sistema operativo pueda confirmar el espacio total de direcciones disponible y reiniciar.