Ambiente
Adobe Experience Manager 6.x
Problema/Sintomas
Observado SegmentNotFound
Exceções nos logs. Exemplo:
*ERRO* FelixStartLevel org.apache.sling.event org.apache.sling.event.impl.jobs.queues.QueueManager(1431) O método de ativação lançou uma exceção (org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segmento da5bcb95-d00a-4c04-a9d9-0f10f2b14e5e não encontrado)
**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*
Execute uma verificação de consistência no repositório e encontre o estado íntegro da última revisão e reverta para ele. Siga estas etapas:
Baixe uma versão do oak-run que corresponda à sua versão principal do oak emhttps://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run
Para reverter um armazenamento de segmento corrompido para o estado correto mais recente, altere para o diretório de trabalho do CQ (aquele que contém a pasta crx-quickstart) e faça backup de todos os arquivos no ./crx-quickstart/repository/segmentstore/.
Execute a verificação de consistência.
java -Xmx6000m -jar oak-run-*.jar check --bin=-1 /path/to/crx-quickstart/repository/segmentstore
Isso pesquisa para trás através das revisões até encontrar uma consistente:
Procure uma mensagem como a abaixo:
INFO principal o.a.j.o.p.s.f.t.ConsistencyChecker - foi encontrada a última revisão válida afdb922d-ba53-4a1b-aa1b-1cb044b535cf:234880
Reverta o repositório para essa revisão ao editar ./crx-quickstart/repository/segmentstore/journal.log e excluir todas as linhas após a linha que contém a última revisão válida.
Remover tudo ./crx-quickstart/repository/segmentstore/*.bak arquivos.
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
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.