由於自訂Oak/Lucene索引問題,AEM as a Cloud Service管道卡在執行狀態
本文說明如何解決Adobe Experience Manager (AEM) as a Cloud Service部署管道因自訂Oak/Lucene索引問題而停滯於執行狀態的情況。
說明 description
環境
Adobe Experience Manager as a Cloud Service (AEMaaCS),所有版本使用Cloud Manager管道。
問題/症狀
- Cloud Manager部署管道會在很長一段時間內維持在執行中狀態,並且不會完成。
- 環境整備檢查被封鎖,阻止管道進度。
- 索引工作記錄檔顯示錯誤,例如:
Error while processing an index write operation java.io.IOException: Invalid byte range request for [ /oak:index/cqPageLucene-custom-1] ...
- 檔案系統錯誤,例如:
java.nio.file.NoSuchFileException
- 自訂索引節點(例如
/oak:index/cqPageLucene-custom-1和/oak:index/damAssetLucene-11-custom-4)即使不存在於目前的程式碼基底中,也會出現在存放庫中。 - 在CRXDE中手動刪除這些索引節點只是暫時的,因為它們可以在重新部署後重新出現。
原因
由於自訂Oak/Lucene索引損壞或不一致,無法完成環境整備檢查,管道被封鎖。 這會阻止索引工作完成,使管道卡在「執行中」狀態。 手動刪除索引節點無法持續進行;正確移除需要更新程式碼基底,並使用支援的索引管理方法。
解決方法 resolution
請依照下列步驟解決問題:
- 檢閱索引工作記錄檔並識別與自訂索引相關的錯誤,例如
/oak:index/cqPageLucene-custom-1。 確認索引節點存在於ui.apps/src/main/content/jcr_root/_oak_index/下的程式碼基底中或diff.json檔案中。 - 搜尋存放庫以找出有問題的索引(例如
cqPageLucene-custom-1或damAssetLucene-11-custom-4)的定義。 從_oak_index或任何索引內容套件中刪除這些定義,然後認可變更。 - 使用簡化的索引管理模型來表示
/oak:index/diff.index/diff.json中的所有自訂索引變更。 透過Cloud Manager部署更新的程式碼。 - 在清除程式碼基底並確認在
diff.json中只有預期的自訂專案之後,請透過Cloud Manager重新部署。 如果沒有任何索引損毀,則管道應該會成功完成。 - 如果問題仍然存在,請檢閱記錄檔中的檔案系統錯誤或Lucene區段損毀。 移除有問題的執行階段節點並重新部署,以重建受影響的索引。
- 重新部署後,管道應成功完成,環境應標籤為就緒。
附註
- 平台會視需要產生新的
*-custom-*節點,並隨著時間自動淘汰未使用的舊版本。 - 避免在CRXDE中手動刪除索引節點作為永久解決方案,因為如果程式碼基底或
diff.json仍參考節點,則可以在以後的部署中重新建立節點。
experience-cloud-kcs-help-kbarticles