Es wurden Inkonsistenzen im Repository behoben, wenn SegmentNotFound in AEM 6.x gemeldet wurde

Wenn Sie Inkonsistenzen im Repository (Repo) haben, wenn SegmentNotFound berichtet haben, eine Konsistenzprüfung für das Repo durchführen, die letzte gute Revision finden (Zustand "gesund") und zu ihr zurückkehren.

Beschreibung description

Umgebung

Adobe Experience Manager (AEM) 6.x

Problem/Symptome

Die Ausnahmen für SegmentNotFound werden in den Logs beobachtet.

Beispiel:

  1. *FEHLER* [ FelixStartLevel] org.apache.sling.event [ org.apache.sling.event.impl.jobs.queues.QueueManager(1431)] Die Methode activate hat eine Ausnahme ausgelöst (org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segment da5bcb95-d00a-4c04-a9d9-0f10f2b14e5e nicht gefunden).

  2. **FEHLER* [ pool-6-thread-3] org.apache.sling.commons.scheduler.impl.QuartzScheduler Ausnahme während der Auftragsausführung von org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate@1dc173f9 : Segment e669f30b-e886-4b7a-b161-56432601ec6b nicht gefunden

    org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segment e669f30b-e886-4b7a-b161-56432601ec6b nicht gefunden*

Auflösung resolution

Führen Sie eine Konsistenzprüfung für das Repo durch, suchen Sie die letzte gute Revision (gesunder Zustand) und kehren Sie zu ihr zurück.

Führen Sie folgende Schritte aus:

  1. Laden Sie von https://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run eine Version von oak-run herunter, die Ihrer Oak-Core-Version entspricht.

  2. Um einen beschädigten Segmentspeicher wieder auf den neuesten guten Zustand zu bringen, wechseln Sie in das Arbeitsverzeichnis von CQ (das Verzeichnis, das den Ordner crx-quickstart enthält) und sichern Sie alle Dateien in ./crx-quickstart/repository/segmentstore/.

  3. Führen Sie die Konsistenzprüfung durch.

    java -Xmx6000m -jar oak-run-*.jar check --bin=-1 /path/to/crx-quickstart/repository/segmentstore

    Dadurch werden die Revisionen rückwärts durchsucht, bis eine konsistente gefunden wird:

    Suchen Sie nach einer Nachricht wie der folgenden:

    [ main] INFO o.a.j.o.p.s.f.t.ConsistencyChecker - Neueste gute Revision afdb922d-ba53-4a1b-aa1b-1cb044b535cf:234880 gefunden

  4. Wiederherstellen des Repo auf diese Revision durch Bearbeiten ./crx-quickstart/repository/segmentstore/journal.log und Löschen aller Zeilen nach der Zeile, die die neueste gute Revision enthält.

  5. Entfernen Sie alle ./crx-quickstart/repository/segmentstore/*.bak-Dateien.

  6. Führen Sie eine Checkpoint-Bereinigung aus, um verwaiste Checkpoints zu entfernen:

    java -Xmx6000m -jar oak-run-*.jar checkpoints /path/to/crx-quickstart/repository/segmentstore rm-unreferenced

  7. Kompilieren Sie schließlich das Repository:

    java -Xmx6000m -jar oak-run-*.jar compact /path/to/crx-quickstart/repository/segmentstore/

Ursache
Aufgrund einiger älterer Probleme in Oak oder einiger Inkonsistenzen im Repository kann ein Segment fehlen und das Repository könnte inkonsistent sein.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f