Beheben von StackOverflowError in AEM as a Cloud Service-Pipeline-Builds
In AEM as a Cloud Service tritt während der Pipeline-Builds ein wiederkehrender StackOverflowError auf. Der Fehler wird auf unzureichende Einstellungen der JVM-Stackgröße zurückgeführt, wenn tief rekursiver benutzerdefinierter HTL-Code kompiliert wird. Durch die Anpassung der JVM-Stackgröße in der Maven-Konfiguration wird der erfolgreiche Abschluss der Pipeline ermöglicht.
Beschreibung description
Umgebung
- Produkt: Adobe Experience Manager as a Cloud Service (AEMaaCS) - Sites
- Relevante Einschränkungen: Kompilierung von komplexem, rekursivem HTL-Code während Pipeline-Builds
Problem/Symptome
- StackOverflowError wird bei Pipeline-Build-Schritten, insbesondere bei Java-Kompilierungsphasen, wiederholt angezeigt.
- Pipeline-Fehler treten auch bei zuvor erfolgreichen Quell-Code-Commits auf.
- Das Erhöhen oder Verringern der JVM-Stackgröße (
-Xss) wirkt sich auf die Build-Ergebnisse aus. - Erfolgreiche lokale Builds garantieren aufgrund von Infrastrukturressourcenbeschränkungen keinen Erfolg in Cloud Manager-Pipelines.
Auflösung resolution
Gehen Sie wie folgt vor, um dieses Problem zu beheben:
- Identifizieren Sie alle in Ihrem Projekt verwendeten
pom.xml-Dateien, einschließlich Stamm- und Untermodulverzeichnissen. - Aktualisieren Sie die Maven-Compiler-Plug-in-Konfiguration in jeder
pom.xml-Datei, um den JVM-Stack-Größenparameter (-J-Xss) auf 6 M oder 8 M festzulegen. - Speichern und übertragen Sie Änderungen an allen aktualisierten
pom.xml. - Führen Sie die betroffene Cloud Manager-Pipeline erneut aus, nachdem Sie diese Änderungen vorgenommen haben.
- Wenn mehrere Pipelines gleichzeitig ausgelöst werden oder eine hängen bleibt, warten Sie auf den manuellen Abbruch und die Ressourcenbereinigung, bevor Sie neue Ausführungen starten.
- Stellen Sie sicher, dass der Build erfolgreich ohne StackOverflowError abgeschlossen wurde.
Hinweise
- Tiefe Rekursionen in benutzerdefiniertem HTL-Code verwenden mehr Stapelspeicher als die standardmäßige JVM-Zuordnung. Eine Erhöhung der
-Xssist hilfreich, aber wenn die Rekursion zunimmt, kann der Fehler erneut auftreten. - Zur Sicherung der langfristigen Stabilität wird eine Umgestaltung von HTL-Vorlagen mit dem Ziel empfohlen, Rekursionen zu minimieren.
- Die Erhöhung der
-Xssauf 6-8 MB erfolgt innerhalb der standardmäßigen Speicherbeschränkungen von AEM as a Cloud Service Build-Containern. - Vermeiden Sie es, zusätzliche Pipelines auszulösen, während eine hängenbleibt, um Ressourcenkonflikte zu vermeiden, und stellen Sie eine ordnungsgemäße Bereinigung sicher, bevor Sie Builds erneut versuchen.
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f