Correggere le incongruenze nell'archivio quando SegmentNotFound è riportato in AEM 6.x

Descrizione

Ambiente
Adobe Experience Manager 6.x

Problema/Sintomi
Osservato SegmentNotFound Eccezioni nei registri. Esempio:

  1. *ERROR* FelixStartLevel org.apache.sling.event org.apache.sling.event.impl.jobs.queue.QueueManager(1431) Il metodo activate ha generato un'eccezione (org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segmento da5bcb95-d00a-4c04-a9d9-0f10f2b14e5e non trovato)

  2. **ERROR* pool-6-thread-3 org.apache.sling.commons.scheduler.impl.QuartzScheduler Eccezione durante l'esecuzione del processo org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate@1dc173f9 : Segmento e669f30b-e886-4b7a-b161-56432601ec6b non trovato

    org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segmento e669f30b-e886-4b7a-b161-56432601ec6b non trovato*

Risoluzione

Esegui un controllo di coerenza sull'archivio e trova l'ultimo stato corretto di revisione e ritorna ad esso. Segui questi passaggi:

  1. Scarica una versione di oak-run che corrisponde alla versione principale di oak attualmente in uso da https://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run

  2. Per ripristinare l’ultimo buono stato di un archivio di segmenti corrotto, passa alla directory di lavoro di CQ (quella contenente la cartella crx-quickstart) ed esegui il backup di tutti i file in ./crx-quickstart/repository/segmentstore/.

  3. Esegui la verifica di coerenza,

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

    Questo esegue una ricerca all'indietro attraverso le revisioni fino a quando non ne trova una coerente:

    Cerca un messaggio come quello qui sotto:

    INFO principale o.a.j.o.p.s.f.t.ConsistencyChecker - Trovata l'ultima buona revisione afdb922d-ba53-4a1b-aa1b-1cb044b535cf:234880

  4. Ripristina l’archivio a questa revisione modificando/crx-quickstart/repository/segmentstore/journal.log ed eliminazione di tutte le righe dopo la riga contenente l'ultima revisione valida.

  5. Rimuovi tutto ./crx-quickstart/repository/segmentstore/*.bak file.

  6. Esegui la pulizia dei punti di controllo per rimuovere quelli scollegati:

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

  7. Infine, compatta l'archivio:

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

Causa
A causa di alcuni vecchi problemi in Oak o di alcune incongruenze nell'archivio, un segmento può mancare e l'archivio potrebbe essere incoerente.

In questa pagina