Correction des incohérences dans le référentiel lorsque SegmentNotFound était signalé dans AEM 6.x
Si vous constatez des incohérences dans le référentiel (repo) lorsque SegmentNotFound
est signalé, exécutez une vérification de cohérence sur le référentiel, recherchez la dernière bonne révision (état sain) et revenez-y.
Description description
Environnement
Adobe Experience Manager (AEM) 6.x
Problème/Symptômes
Les exceptions pour SegmentNotFound
sont observées dans les journaux.
Exemple :
-
*ERROR*
[
FelixStartLevel]
org.apache.sling.event[
org.apache.sling.event.impl.jobs.queues.QueueManager(1431)]
La méthode activate a généré une exception (org.apache.jackrabbit.oak.plugins.segment.SegmentNot FoundException : segment da5bcb95-d00a-4c04-a9d9-0f10f2b14e5e introuvable) -
**ERROR*
[
pool-6-thread-3]
org.apache.sling.commons.scheduler.impl.QuartzScheduler Exception lors de l’exécution de la tâche de org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate@1dc173f9 : Segment e669f30b-e886-4b7a-b161-56432601ec6b introuvableorg.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException : segment e669f30b-e886-4b7a-b161-56432601ec6b introuvable*
Résolution resolution
Exécutez une vérification de cohérence sur le référentiel, recherchez la dernière bonne révision (état sain) et revenez-y.
Procédez de la façon suivante :
-
Téléchargez une version de oak-run correspondant à votre version oak principale depuis https://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run.
-
Pour rétablir le dernier bon état d’un magasin de segments corrompu, accédez au répertoire de travail de CQ (celui contenant le dossier crx-quickstart) et sauvegardez tous les fichiers dans ./crx-quickstart/repository/segmentstore/.
-
Effectuez la vérification de cohérence.
java -Xmx6000m -jar oak-run-*.jar check --bin=-1 /path/to/crx-quickstart/repository/segmentstore
Cette option effectue une recherche vers l’arrière par rapport aux révisions jusqu’à ce qu’elle en trouve une cohérente :
Recherchez un message comme celui-ci :
[
main]
INFO o.a.j.o.p.s.f.t.ConsistencyChecker - Dernière bonne révision afdb922d-ba53-4a1b-aa1b-1cb044b535cf:234880 -
Rétablissez le référentiel à cette révision en modifiant ./crx-quickstart/repository/segmentstore/journal.log et supprimer toutes les lignes après la ligne contenant la dernière bonne révision.
-
Tout supprimer ./crx-quickstart/repository/segmentstore/*.bak .
-
Exécutez le nettoyage des points de contrôle pour supprimer les points de contrôle orphelins :
java -Xmx6000m -jar oak-run-*.jar checkpoints /path/to/crx-quickstart/repository/segmentstore rm-unreferenced
-
Enfin, compactez le référentiel :
java -Xmx6000m -jar oak-run-*.jar compact /path/to/crx-quickstart/repository/segmentstore/
Cause
En raison de problèmes plus anciens dans Oak ou de certaines incohérences dans le référentiel, un segment peut être manquant et le référentiel peut être incohérent.