Correction des incohérences dans le référentiel lorsque SegmentNotFound est signalé dans AEM 6.x
Si vous constatez des incohérences dans le référentiel (référentiel) lors de la SegmentNotFound du rapport, effectuez une vérification de cohérence sur le référentiel, recherchez la dernière révision correcte (é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 :
-
* ERREUR*
[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.SegmentNotFoundException : Segment da5bcb95-d00a-4c04-a9d9-0f10f2b14e5e introuvable) -
**ERREUR*
[pool-6-thread-3]org.apache.sling.commons.scheduler.impl.QuartzScheduler Exception lors de l’exécution du traitement 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 révision correcte (état sain) et revenez-y.
Procédez comme suit :
-
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 un magasin de segments corrompu à son dernier état correct, modifiez-le dans le répertoire de travail de CQ (celui contenant le dossier crx-quickstartfolder) 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/segmentstoreElle effectue une recherche vers le bas dans les révisions jusqu’à ce qu’elle en trouve une cohérente :
Recherchez un message similaire à celui ci-dessous :
[principal]INFO.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 de cette révision en modifiant ./crx-quickstart/repository/segmentstore/journal.log et en supprimant toutes les lignes après la ligne contenant la dernière bonne révision.
-
Supprimez tous les fichiers ./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.