Exceptions au problème « SegmentNotFound » observées dans l’historique.

Problème

Exceptions au problème « SegmentNotFound » observées dans l’historique. Par exemple :

[1]
*ERROR* [FelixStartLevel] org.apache.sling.event [org.apache.sling.event.impl.jobs.queues.QueueManager(1431)] The activate method has thrown an exception (org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segment da5bcb95-d00a-4c04-a9d9-0f10f2b14e5e not found)

[2] 
*ERROR* [pool-6-thread-3] org.apache.sling.commons.scheduler.impl.QuartzScheduler Exception during job execution of org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate@1dc173f9 : Segment e669f30b-e886-4b7a-b161-56432601ec6b not found
org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segment e669f30b-e886-4b7a-b161-56432601ec6b not found

Environnement

AEM 6.*

Cause

En raison d’anciens problèmes dans Oak ou d’incohérences dans le référentiel, il se peut qu’il manque un segment et que le référentiel soit incohérent.

Résolution

Lancez une vérification de la cohérence sur le référentiel pour trouver la dernière bonne modification [état sain] et repartez de ce point. Procédez comme suit :

  1. Télécharger une version sous Oak correspondant à votre version de base depuis https://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run

  2. Pour rétablir une mémoire de segments corrompue à son dernier bon statut, modifiez-la dans le répertoire de travail CQ (celui contenant CRX-quickstartfolder) et sauvegardez l’ensemble des fichiers dans ./crx-quickstart/repository/segmentstore/.

  3. Exécutez la vérification de la cohérence
    java -Xmx6000m -jar oak-run-*.jar check --bin=-1 /path/to/crx-quickstart/repository/segmentstore

    Cette procédure repasse en revue les modifications apportées jusqu’à ce qu’elle en trouve une cohérente :
    Recherchez un message semblable à celui-ci :
    [main] INFO o.a.j.o.p.s.f.t.ConsistencyChecker - Found latest good revision afdb922d-ba53-4a1b-aa1b-1cb044b535cf:234880

  4. Rétablissez le référentiel à partir de cette révision en modifiant le fichier ./crx-quickstart/repository/segmentstore/journal.log et en supprimant toutes les lignes qui suivent celle contenant la dernière bonne modification.

  5. Tout supprimerfichiers /crx-quickstart/repository/segmentstore/*.bak

  6. Lancez le nettoyage du point 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

  7. Enfin, compressez le référentiel :

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

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne