AEM as a Cloud Service-Pipeline steckt aufgrund benutzerdefinierter Oak-/Lucene-Indexprobleme im Status „WIRD AUSGEFÜHRT“ fest
In diesem Artikel wird beschrieben, wie Sie Situationen beheben können, in denen eine Adobe Experience Manager (AEM) as a Cloud Service-Bereitstellungs-Pipeline aufgrund von Problemen mit benutzerdefinierten Oak/Lucene-Indizes im Status WIRD AUSGEFÜHRT feststeckt.
Beschreibung description
Umgebung
Adobe Experience Manager as a Cloud Service (AEMaaCS), alle Versionen mit Cloud Manager-Pipelines.
Problem/Symptome
- Die Cloud Manager-Bereitstellungs-Pipeline verbleibt über einen längeren Zeitraum im Status WIRD AUSGEFÜHRT und wird nicht abgeschlossen.
- Die Bereitschaftsprüfung der Umgebung ist blockiert, was einen Fortschritt der Pipeline verhindert.
- Bei der Indizierung von Vorgangslogs werden Fehler angezeigt, wie etwa:
Error while processing an index write operation java.io.IOException: Invalid byte range request for [ /oak:index/cqPageLucene-custom-1] ...
- Dateisystemfehler wie:
java.nio.file.NoSuchFileException
- Benutzerdefinierte Indexknoten, wie
/oak:index/cqPageLucene-custom-1und/oak:index/damAssetLucene-11-custom-4, werden im Repository angezeigt, auch wenn sie nicht in der aktuellen Codebasis vorhanden sind. - Das manuelle Löschen dieser Indexknoten in CRXDE ist nur vorübergehend, da sie nach der erneuten Bereitstellung wieder angezeigt werden können.
Ursache
Die Pipeline ist blockiert, da die Bereitschaftsprüfung für die Umgebung aufgrund eines beschädigten oder inkonsistenten benutzerdefinierten Oak/Lucene-Index nicht abgeschlossen werden kann. Verhindert, dass der Indizierungsauftrag abgeschlossen wird, sodass die Pipeline im Status WIRD AUSGEFÜHRT feststeckt. Das manuelle Löschen von Indexknoten ist nicht persistent. Eine ordnungsgemäße Entfernung erfordert die Aktualisierung der Codebasis und die Verwendung des unterstützten Ansatzes zur Indexverwaltung.
Lösung resolution
Gehen Sie wie folgt vor, um das Problem zu beheben:
- Überprüfen Sie die Indizierungsauftragsprotokolle und identifizieren Sie Fehler im Zusammenhang mit benutzerdefinierten Indizes, z. B.
/oak:index/cqPageLucene-custom-1. Überprüfen Sie, ob die Indexknoten in der Codebasis unterui.apps/src/main/content/jcr_root/_oak_index/oder in einerdiff.jsonvorhanden sind. - Durchsuchen Sie das Repository nach Definitionen der problematischen Indizes, z. B.
cqPageLucene-custom-1oderdamAssetLucene-11-custom-4. Löschen Sie diese Definitionen aus_oak_indexoder beliebigen Index-Inhaltspaketen und übertragen Sie dann die Änderungen. - Geben Sie mithilfe des vereinfachten Indexverwaltungsmodells alle benutzerdefinierten Indexänderungen in
/oak:index/diff.index/diff.jsonan. Stellen Sie den aktualisierten Code über Cloud Manager bereit. - Nachdem Sie die Codebasis bereinigt und bestätigt haben, dass nur die beabsichtigten Anpassungen in
diff.jsonvorhanden sind, stellen Sie über Cloud Manager erneut bereit. Die Pipeline sollte erfolgreich abgeschlossen werden, wenn kein Indexfehler mehr vorhanden ist. - Wenn das Problem weiterhin besteht, überprüfen Sie die Protokolle auf Dateisystemfehler oder Beschädigungen des Lucene-Segments. Erstellen Sie den betroffenen Index neu, indem Sie den problematischen Laufzeitknoten entfernen und erneut bereitstellen.
- Nach der erneuten Bereitstellung sollte die Pipeline erfolgreich abgeschlossen und die Umgebung als bereit markiert werden.
Hinweise
- Die Plattform generiert bei Bedarf neue
*-custom-*-Knoten und gibt nicht verwendete ältere Versionen im Laufe der Zeit automatisch wieder frei. - Vermeiden Sie es, Indexknoten manuell in CRXDE als permanente Lösung zu löschen, da die Knoten bei späteren Bereitstellungen neu erstellt werden können, wenn die Codebasis oder
diff.jsonnoch auf sie verweist.