Résolution de l’erreur StackOverflowError dans les versions du pipeline AEM as a Cloud Service
Dans AEM as a Cloud Service, une erreur StackOverflowError récurrente se produit lors des créations de pipeline. L’erreur est attribuée à des paramètres de taille de pile JVM insuffisants lors de la compilation de code HTL personnalisé profondément récursif. L’ajustement du paramètre de taille de la pile JVM dans la configuration Maven permet la réussite de l’achèvement du pipeline.
Description description
Environnement
- Produit : Adobe Experience Manager as a Cloud Service (AEMaaCS) - Sites
- Contraintes pertinentes : compilation de code HTL récursif complexe pendant les versions de pipeline
Problème/Symptômes
- StackOverflowError apparaît à plusieurs reprises lors des étapes de création du pipeline, en particulier lors des phases de compilation Java.
- Les échecs de pipeline se produisent même avec les validations de code source réussies précédemment.
- L’augmentation ou la diminution de la taille de la pile JVM (
-Xss) a un impact sur les résultats de création. - Les versions locales réussies ne garantissent pas le succès dans les pipelines Cloud Manager en raison des limites des ressources d’infrastructure.
Résolution resolution
Pour résoudre ce problème, procédez comme suit :
- Identifiez tous les fichiers
pom.xmlutilisés dans votre projet, y compris les répertoires racine et de sous-module. - Mettez à jour la configuration du plug-in du compilateur Maven dans chaque fichier
pom.xmlpour définir le paramètre de taille de pile JVM (-J-Xss) sur 6 ou 8 Mo. - Enregistrez et validez les modifications dans tous les fichiers
pom.xmlmis à jour. - Réexécutez le pipeline Cloud Manager affecté après avoir effectué ces modifications.
- Si plusieurs pipelines sont déclenchés simultanément ou si un pipeline est bloqué, attendez l’annulation manuelle et le nettoyage des ressources avant de démarrer de nouvelles exécutions.
- Vérifiez que la version se termine correctement sans StackOverflowError.
Notes
- La récursivité profonde dans le code HTL personnalisé utilise plus de mémoire de pile que l’allocation JVM par défaut. Augmenter la
-Xssaide, mais si la récursivité augmente, l’erreur peut revenir. - La refactorisation des modèles HTL pour minimiser la récursivité est recommandée pour la stabilité à long terme.
- L’augmentation de la
-Xssà 6-8 Mo reste dans les contraintes de mémoire standard des conteneurs de création AEM as a Cloud Service. - Évitez de déclencher d’autres pipelines lorsqu’un pipeline est bloqué afin d’éviter la contention de ressources et d’assurer un nettoyage correct avant de retenter des versions.
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f