Corrigir inconsistências no repositório quando SegmentNotFound é relatado no AEM 6.x

Se você tiver inconsistências no repositório (repositório) quando SegmentNotFound for relatado, execute uma verificação de consistência no repositório, localize a última revisão válida (estado íntegro) e reverta para ele.

Descrição description

Ambiente

Adobe Experience Manager (AEM) 6.x

Problema/Sintomas

As exceções para SegmentNotFound são observadas nos logs.

Exemplo:

  1. *ERRO* [ FelixStartLevel] org.apache.sling.event [ org.apache.sling.event.impl.jobs.queues.QueueManager(1431)] O método de ativação gerou uma exceção (org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segment da5bcb95-d00a-4c04-a9d9-0f10f2b14e5e não encontrado)

  2. **ERRO* [ pool-6-thread-3] org.apache.sling.commons.scheduler.impl.QuartzScheduler Exceção durante a execução do trabalho de org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate@1dc173f9 : Segmento e669f30b-e886-4b7a-b161-56432601ec6b não encontrado

    org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segmento e669f30b-e886-4b7a-b161-56432601ec6b não encontrado*

Resolução resolution

Execute uma verificação de consistência no repositório e localize a última revisão válida (estado íntegro) e reverta para ela.

Siga estas etapas:

  1. Baixe uma versão do oak-run que corresponda à sua versão principal do oak emhttps://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run

  2. Para reverter um armazenamento de segmento corrompido para seu último bom estado, altere para o diretório de trabalho do CQ (aquele que contém a pasta crx-quickstartfolder) e faça backup de todos os arquivos no ./crx-quickstart/repository/segmentstore/.

  3. Execute a verificação de consistência.

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

    Ela faz uma pesquisa retroativa nas revisões até encontrar uma consistente:

    Procure uma mensagem como a abaixo:

    [ main] INFO o.a.j.o.p.s.f.t.ConsistencyChecker - Última revisão válida afdb922d-ba53-4a1b-aa1b-1cb044b535cf:234880 encontrada

  4. Reverta o repositório para esta revisão ao editar ./crx-quickstart/repository/segmentstore/journal.log e excluindo todas as linhas após a linha que contém a última revisão válida.

  5. Remover tudo ./crx-quickstart/repository/segmentstore/*.bak arquivos.

  6. Execute a limpeza de pontos de verificação para remover pontos de verificação órfãos:

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

  7. Por fim, compacte o repositório:

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

Causa
Devido a alguns problemas mais antigos no Oak ou a algumas inconsistências no repositório, um segmento pode ficar ausente e o repositório pode estar inconsistente.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f