Falha na tarefa DataStore GarbageCollection com erro

Última atualização em 2024-02-04

Descubra como superar os erros da tarefa DataStore GarbageCollection removendo a ID do repositório registrado.

Descrição

Ambiente

Adobe Experience Manager (AEM)

Problema/Sintomas

Falha de DataStoreGarbageCollectionTask com o erro abaixo:

*ERROR* [ sling-oak-observation-19]  org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector Not all repositories have marked
references available : [ e0fb2a15-d5d5-4013-9607-0fb89cf87c94]
26.07.2022 20:56:50.737 *ERROR* [ sling-oak-observation-19]  org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector Blob garbage collection error
java.io.IOException: Not all repositories have marked references available
        at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector$GarbageCollectionType$1.mergeAllMarkedReferences(MarkSweepGarbageCollector.java:7
22) [ org.apache.jackrabbit.oak-blob-plugins:1.8.21]
        at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.sweep(MarkSweepGarbageCollector.java:384) [ org.apache.jackrabbit.oak-blob-plugins
:1.8.21]
        at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.markAndSweep(MarkSweepGarbageCollector.java:284) [ org.apache.jackrabbit.oak-blob-
plugins:1.8.21]
        at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.collectGarbage(MarkSweepGarbageCollector.java:191) [ org.apache.jackrabbit.oak-blo
b-plugins:1.8.21]
        at org.apache.jackrabbit.oak.plugins.blob.BlobGC$1.call(BlobGC.java:87) [ org.apache.jackrabbit.oak-blob-plugins:1.8.21]
        at org.apache.jackrabbit.oak.plugins.blob.BlobGC$1.call(BlobGC.java:83) [ org.apache.jackrabbit.oak-blob-plugins:1.8.21]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
26.07.2022 20:56:51.620 *ERROR* [ pool-20-thread-1]  org.apache.jackrabbit.oak.commons.jmx.ManagementOperation Blob garbage collection failed
java.io.IOException: Not all repositories have marked references available
        at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector$GarbageCollectionType$1.mergeAllMarkedReferences(MarkSweepGarbageCollector.java:7
22) [ org.apache.jackrabbit.oak-blob-plugins:1.8.21]
        at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.sweep(MarkSweepGarbageCollector.java:384) [ org.apache.jackrabbit.oak-blob-plugins
:1.8.21]
        at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.markAndSweep(MarkSweepGarbageCollector.java:284) [ org.apache.jackrabbit.oak-blob-
plugins:1.8.21]
        at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.collectGarbage(MarkSweepGarbageCollector.java:191) [ org.apache.jackrabbit.oak-blo
b-plugins:1.8.21]
        at org.apache.jackrabbit.oak.plugins.blob.BlobGC$1.call(BlobGC.java:87) [ org.apache.jackrabbit.oak-blob-plugins:1.8.21]
        at org.apache.jackrabbit.oak.plugins.blob.BlobGC$1.call(BlobGC.java:83) [ org.apache.jackrabbit.oak-blob-plugins:1.8.21]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
26.07.2022 20:56:51.628 *INFO* [ pool-20-thread-1]  com.adobe.granite.maintenance.impl.MaintenanceJobsManagerImpl Name='DataStoreGarbageCollectionTask', Status
='ERROR', Result='Data store GC: Operation failed Blob garbage collection failed: Not all repositories have marked references available', Details='{"created"
:1658858205603,"started":1658858205603,"finished":1658858211620,"duration":6017}'

Resolução

Esse problema pode ocorrer se você tiver uma instância anterior usando o armazenamento de dados, que foi destruído e uma nova instância criada para usar o armazenamento de dados.

O problema pode ser resolvido após a remoção da ID do repositório registrada no armazenamento de dados. O GC do armazenamento de blob deve ser concluído com êxito.

Guia passo a passo:

1)Ir para o caminho do armazenamento de dados  < aem-install-folder> /crx-quickstart/repository/datastore e procure pela id do repositório e0fb2a15-d5d5-4013-9607-0fb89cf87c94 (deve ser igual ao mencionado no error.log ERRO* [ sling-oak-observe-19] org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector Nem todos os repositórios têm referências marcadas disponíveis: [ e0fb2a15-d5d5-4013-9607-0fb89cf87c94] ), você terá um arquivo de referência com esse nome, basta excluir esse arquivo de referência (repita essas etapas se houver vários arquivos).

​2) Execute o GC novamente e verifique se ele resolve o problema.

Nesta página