AEM Cloud Manager-Pipeline bleibt bei der Bereitstellung für Staging aufgrund eines OSGi-Paket-Aktivierungskonflikts hängen

In diesem Artikel wird beschrieben, wie Sie ein Problem lösen können, bei dem eine Adobe Experience Manager (AEM) Cloud Manager-Pipeline während der Bereitstellungsphase in der Staging-Phase hängen bleibt, was zu nicht verfügbaren Instanzen und fehlenden Klassenfehlern aufgrund von Konflikten bei der OSGi-Bundle-Aktivierung führt.

Beschreibung description

Umgebung

Adobe Experience Manager (AEM) as a Cloud Service (AEMaaCS) (alle Versionen)

Symptome

  • Die Ausführung der Cloud Manager-Pipeline bleibt über einen längeren Zeitraum (über eine Stunde) ohne sichtbare Fehler oder Fortschritt in der Phase „In Staging bereitstellen“ stecken.
  • Betroffene Umgebungen werden nach der Bereitstellung nicht mehr verfügbar sein.
  • Der Versuch, auf die betroffenen Instanzen zuzugreifen, führt zu einer leeren Anmeldeseite.
  • Protokolle zeigen Fehler fehlender Klassen, HTTP 500- oder 404-Antworten für /libs/granite/core/content/login.html und Fehler bei Konsistenzprüfungen.
  • Ein Neustart von AEM behebt das Problem nicht. Fehler bleiben nach einem Neustart bestehen.
  • Das Problem kann sich nur auf eine Untergruppe von Instanzen auswirken und zeigt eine Timing- oder Race-Bedingung an.

Ursache

Eine -Bereitstellung aktualisierte eine grundlegende freigegebene Bibliothek und löste eine Aktualisierung des OSGi-Frameworks aus. Die Aktivierungsmethode einer benutzerdefinierten Komponente führte während dieser Aktualisierung eine Sperrung der Repository-Anmeldung (JCR) durch, was zu Sperrkonflikten führte und abhängige Bundles in einem halb gestarteten Zustand zurückließ. Dies führte dazu, dass die Pipeline blockiert wurde und die betroffenen Instanzen nicht mehr verfügbar waren.

Lösung resolution

Gehen Sie wie folgt vor, um das Problem zu beheben:

  1. Identifizieren der betroffenen Umgebung(en):

    • Überprüfen Sie die Cloud Manager-Pipeline-Ausführungsprotokolle und AEM-Instanzprotokolle auf Fehler aufgrund fehlender Klassen und Fehler bei der Bundle-Aktivierung.

    • Überprüfen Sie, welche Instanzen nach der Bereitstellung nicht verfügbar sind.

  2. Betroffene Umgebung(en) wiederherstellen:

    • Verwenden Sie verfügbare Umgebungssicherungen, um den Zustand der betroffenen Instanzen wiederherzustellen.

    • Überprüfen Sie, ob alle Instanzen wieder betriebsbereit sind und die Anmeldeseite korrekt geladen wird.

  3. Überprüfen Sie die benutzerdefinierte Aktivierungslogik des OSGi-Bundles:

    • Untersuchen Sie benutzerdefinierte OSGi-Komponenten, insbesondere solche mit onActivate() Methoden, die Repository-Anmeldungen (JCR) oder andere Blockierungsvorgänge während der Aktivierung ausführen.

    • Refaktorieren Sie die Aktivierungslogik, um zu vermeiden, dass Aufrufe oder Repository-Anmeldungen während der OSGi-Bundle-Aktivierung blockiert werden, da diese zu Deadlocks oder Verzögerungen bei der Aktualisierung des Frameworks führen können.

    • Suchen Sie nach Code-Mustern, bei denen die Repository-Anmeldung oder langwierige Vorgänge direkt in der Aktivierungsmethode ausgeführt werden.

  4. Testen der Bereitstellung in einer niedrigeren Umgebung:

    • Testen Sie vor der Bereitstellung in der Produktion dasselbe Paket in einer niedrigeren Umgebung, um sicherzustellen, dass das Problem nicht erneut auftritt.
  5. Überwachen Sie zukünftige Bereitstellungen:

    • Wenn ein ähnlicher Stillstand auftritt, sammeln Sie Protokolle und Details zur Pipeline-Ausführung für weitere Analysen.

Verifizierung:

  • Vergewissern Sie sich, dass alle betroffenen Instanzen funktionsfähig sind und dass die Anmeldeseite nach der Wiederherstellung und Code-Änderungen erwartungsgemäß geladen wird.
recommendation-more-help
experience-cloud-kcs-help-kbarticles