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.0, AEM 6.1, AEM 6.2

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

    Remarque :

    En ce qui concerne l’AEM 6,0, utilisez une version sous Oak (1.1.7.jar ou ultérieure) comportant le nouveau système de vérification du mode d’exploitation https://github.com/apache/jackrabbit-oak/blob/trunk/oak-run/README.md#check
    Cela permet de de vérifier les incohérences dans la mémoire des nœuds de segments.

  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 -d1 -p /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 supprimer fichiers ./crx-quickstart/repository/segmentstore/*.bak

  6. Lancez le nettoyage de point de reprise pour supprimer les points isolés :

    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