Canalización de AEM Cloud Manager atascada durante la implementación en fase debido a un conflicto de activación del paquete OSGi
En este artículo se explica cómo resolver un problema en el que una canalización de Adobe Experience Manager (AEM) Cloud Manager se queda atascada durante la fase de Implementación en fase, lo que da como resultado instancias no disponibles y errores de clase que faltan debido a conflictos de activación del paquete OSGi.
Descripción description
Entorno
Adobe Experience Manager (AEM) as a Cloud Service (AEMaaCS) (todas las versiones)
Síntomas
- La ejecución de la canalización de Cloud Manager permanece atascada en la fase de Implementación a fase durante un periodo prolongado (más de una hora) sin errores visibles ni progreso.
- Los entornos afectados dejan de estar disponibles después de la implementación.
- Los intentos de acceder a las instancias afectadas dan como resultado una página de inicio de sesión en blanco.
- Los registros muestran errores de clase no encontrada, respuestas HTTP 500 o 404 para
/libs/granite/core/content/login.htmly errores de comprobación de estado. - Reiniciar AEM no resuelve el problema; los errores persisten tras el reinicio.
- El problema solo puede afectar a un subconjunto de instancias, lo que indica un tiempo o una condición de carrera.
Causa
Una implementación actualizó una biblioteca compartida fundamental, lo que activó una actualización del marco OSGi. El método de activación de un componente personalizado realizó un inicio de sesión en el repositorio de bloqueo (JCR) durante esta actualización, lo que provocó la contención del bloqueo y dejó los paquetes dependientes en estado de semiinicio. Esto provocaba que la canalización se estancara y que las instancias afectadas dejaran de estar disponibles.
Resolución resolution
Siga los pasos a continuación para resolver el problema:
-
Identificar los entornos afectados:
-
Revise los registros de ejecución de la canalización de Cloud Manager y los registros de instancia de AEM para detectar errores de clases que faltan y errores de activación de paquetes.
-
Confirme qué instancias no están disponibles después de la implementación.
-
-
Restaurar los entornos afectados:
-
Utilice las copias de seguridad de entorno disponibles para restaurar las instancias afectadas a un estado correcto conocido.
-
Compruebe que todas las instancias vuelven a un estado operativo y que la página de inicio de sesión se carga correctamente.
-
-
Revise la lógica de activación del paquete OSGi personalizado:
-
Inspeccione los componentes OSGi personalizados, especialmente los que tienen
onActivate()métodos que realizan inicios de sesión en el repositorio (JCR) u otras operaciones de bloqueo durante la activación. -
Refactorice la lógica de activación para evitar el bloqueo de llamadas o inicios de sesión en el repositorio durante la activación del paquete OSGi, ya que pueden provocar interbloqueos o interrupciones durante las actualizaciones del marco de trabajo.
-
Busque patrones de código en los que las operaciones de inicio de sesión o de larga ejecución del repositorio se realicen directamente en el método de activación.
-
-
Probar la implementación en un entorno inferior:
- Antes de implementar en producción, pruebe el mismo paquete en un entorno más bajo para verificar que el problema no se repita.
-
Supervise futuras implementaciones:
- Si se produce una detención similar, recopile registros y detalles de ejecución de la canalización para un análisis más amplio.
Verificación:
- Confirme que todas las instancias afectadas están operativas y que la página de inicio de sesión se carga según lo esperado tras la restauración y los cambios de código.