解決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-8 MB仍在AEM as a Cloud Service組建容器的標準記憶體限制內。 - 避免在管道卡住時觸發其他管道,以防止資源競爭,並確保在重試組建之前進行適當的清理。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f