AEM as a Cloud Service 파이프라인 빌드에서 StackOverflowError 해결
AEM as a Cloud Service에서 파이프라인 빌드 중에 StackOverflowError가 반복적으로 발생합니다. 깊이 재귀 사용자 지정 HTL 코드를 컴파일할 때 충분하지 않은 JVM 스택 크기 설정으로 오류가 추적됩니다. Maven 구성에서 JVM 스택 크기 매개 변수를 조정하면 파이프라인을 성공적으로 완료할 수 있습니다.
설명 description
환경
- 제품: Adobe Experience Manager as a Cloud Service(AEMaaCS) - 사이트
- 관련 제약 조건: 파이프라인 빌드 중 복잡 재귀 HTL 코드 컴파일
문제/증상
- StackOverflowError은(는) 파이프라인 빌드 단계(특히 Java 컴파일 단계) 중에 반복적으로 나타납니다.
- 이전에 성공한 소스 코드 커밋에도 파이프라인 오류가 발생합니다.
- JVM 스택 크기(
-Xss)를 늘리거나 줄이면 빌드 결과에 영향을 줍니다. - 성공적인 로컬 빌드는 인프라 리소스 제한으로 인해 Cloud Manager 파이프라인에서의 성공을 보장하지 않습니다.
해결 방법 resolution
이 문제를 해결하려면 다음 단계를 수행합니다.
- 루트 및 하위 모듈 디렉터리를 포함하여 프로젝트에서 사용되는 모든
pom.xml파일을 식별합니다. - 각
pom.xml파일에서 Maven 컴파일러 플러그인 구성을 업데이트하여 JVM 스택 크기 매개 변수(-J-Xss)를 6M 또는 8M으로 설정합니다. - 업데이트된 모든
pom.xml개 파일에 변경 내용을 저장하고 커밋합니다. - 이러한 변경 작업을 수행한 후 영향을 받는 Cloud Manager 파이프라인을 다시 실행합니다.
- 여러 파이프라인이 동시에 트리거되거나 한 파이프라인이 중단된 경우 새 실행을 시작하기 전에 수동 취소 및 리소스 정리를 기다립니다.
- StackOverflowError 없이 빌드가 성공적으로 완료되는지 확인하십시오.
참고
- 사용자 지정 HTL 코드의 심층 재귀는 기본 JVM 할당보다 더 많은 스택 메모리를 사용합니다.
-Xss을(를) 늘리는 것이 도움이 되지만 재귀가 커지면 오류가 반환될 수 있습니다. - 장기적인 안정성을 위해서는 재귀를 최소화하기 위해 HTL 템플릿을 리팩터링하는 것이 좋습니다.
-Xss에서 6-8MB로 늘리는 것은 AEM as a Cloud Service 빌드 컨테이너의 표준 메모리 제한 내에 남아 있습니다.- 리소스 경합을 방지하고 빌드를 다시 시도하기 전에 적절한 정리를 위해 파이프라인이 중단된 동안 추가 파이프라인을 트리거하지 마십시오.
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f