AEM Managed Services Publisher ist aufgrund einer Sling Scripting JSP-Racebedingung fehlerhaft
In diesem Artikel wird beschrieben, wie Sie ein Szenario beheben, in dem ein Adobe Experience Manager (AEM) Managed Services-Publisher aufgrund einer Race-Bedingung im Apache Sling Scripting JSP-Modul fehlerhaft wird, die normalerweise durch den Speicherdruck ausgelöst wird. Die Lösung umfasst die Anwendung eines Hotfixes, das vom Adobe-Support bereitgestellt wird.
Beschreibung description
Umgebung
Adobe Experience Manager (AEM) Managed Services (alle unterstützten Versionen)
Symptome
- Die Publisher-Instanz wird aufgrund von Fehlern bei der Konsistenzprüfung aus dem Lastenausgleich entfernt.
- Der Dienst wird nach einem Neustart wiederhergestellt, das Problem tritt jedoch erneut auf.
- Fehlerprotokolle zeigen Ausnahmen im Zusammenhang mit Fehlern bei der JSP-Kompilierung und dem Löschen von Dateien an, z. B.:
org.apache.sling.scripting.sightly.SightlyException: org.apache.sling.api.SlingException: Bei der Verarbeitung der JSP-Seite ist eine Ausnahme aufgetreten… classFile.delete() ist fehlgeschlagen
- Das Problem kann nicht bei Bedarf reproduzierbar sein.
- Potenzielle Geschäftsauswirkungen: Alle Endbenutzenden können betroffen sein, wenn der Status des Herausgebers nicht sofort wiederhergestellt wird.
Ursache
Eine Race-Condition im Apache Sling Scripting JSP-Modul, die durch den Speicherdruck und die SoftReference-Cache-Entfernung ausgelöst wird, ermöglicht parallelen Threads die Arbeit mit denselben kompilierten JSP-Klassen. Dies führt zu Instabilität und Fehlern bei der Integritätsprüfung des Herausgebers.
Lösung resolution
Gehen Sie wie folgt vor, um das Problem zu beheben:
-
Überprüfen Sie die Fehlerprotokolle des AEM-Herausgebers auf Ausnahmen im Zusammenhang mit Fehlern bei der JSP-Kompilierung und dem Löschen von Dateien, wie oben beschrieben.
-
Bestätigen Sie, dass die Symptome mit den beschriebenen übereinstimmen (fehlerhafte Publisher-Konfiguration, Fehler bei der Konsistenzprüfung, Fehler bei der Referenzierung von
classFile.delete()bei der JSP-Verarbeitung). -
Ermitteln Sie Ihre aktuelle Version des AEM Service Packs. Das Hotfix ist für AEM 6.5.24 und höher verfügbar. Wenn Sie eine frühere Version verwenden, wenden Sie sich an den Adobe-Support.
-
Wenn Sie eine unterstützte Version verwenden und der Hotfix noch nicht installiert ist, öffnen Sie ein Support-Ticket bei Adobe über das Support-Portal für Experience League. Einschließen:
-
Eine Beschreibung des Problems und relevante Auszüge aus dem Fehlerprotokoll
-
Aktuelle AEM-Version und Service Pack-Version
-
Bestätigung, dass das Problem dem in diesem Artikel beschriebenen Szenario entspricht
-
-
Sobald Sie das Hotfix-Paket vom Adobe-Support erhalten haben, verwenden Sie den AEM Package Manager , um es hochzuladen und auf Ihren Veröffentlichungsinstanzen zu installieren. Befolgen Sie die Änderungsverwaltungs- und Bereitstellungsverfahren Ihres Unternehmens.
-
Überprüfen Sie nach der Installation Folgendes:
-
Das
org.apache.sling.scripting.jsp-Bundle befindet sich in OSGi Konsole im Status „Aktiv“. -
Die Bundle-Version entspricht der im Hotfix bereitgestellten.
-
Es wird nur eine einzige Instanz des Bundles installiert.
-
-
Überwachen Sie die Integrität und die Fehlerprotokolle der Herausgeber, um zu bestätigen, dass das Problem behoben ist.
-
Wenn das Problem nach der Hotfix-Installation erneut auftritt, erstellen Sie neue Thread-Dumps, Heap-Dumps und Fehlerprotokolle und wenden Sie sich an den Adobe-Support, um weitere Analysen durchzuführen.