O Cold Standby lança o erro "O registro DataStoreException não existe"

Última atualização em 2022-11-16

Descrição

Ambiente
Adobe Experience Manager

Problema
O Cold Standby com o File Datastore dedicado lança aviso sobre a ID de blob ausente, semelhante ao erro aqui:

*WARN* standby-run-1 org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore Error occurred while loading bytes from steam while fetching for id f68a92b34779bbd194184251ec916370f3ebd301d6e32a8980aad070d57a1845#25522

java.util.concurrent.ExecutionException: java.io.IOException: org.apache.jackrabbit.core.data.DataStoreException: Record f68a92b34779bbd194184251ec916370f3ebd301d6e32a8980aad070d57a1845 does not exist

    at org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.load(CacheLIRS.java:1017) org.apache.jackrabbit.oak-core-spi:1.10.3

...

Caused by: org.apache.jackrabbit.core.data.DataStoreException: Record cabdc49c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20 does not exist

    at org.apache.jackrabbit.core.data.AbstractDataStore.getRecord(AbstractDataStore.java:59)

Causa
Isto é apenas um aviso, não um erro.

Isso vem do fato de que o File Datastore não tem como verificar se um binário existe localmente, exceto ao tentar carregar a id de blob.
Se a id for carregada, os logs não exibirão esse aviso.
No entanto, se não for encontrado, o standby sabe que precisa sincronizá-lo, então é por isso que você vê esse tipo de aviso nos logs.

Resolução

Solução
Isso está funcionando como projetado e não indica um problema com o Armazenamento de dados de arquivo.

Para confirmar que a id de blob realmente não está ausente, siga estas etapas:

  1. Por exemplo, tome sua ID de blob de amostra que está sendo exibida como ausente nos logs (por exemplo: cabdc49c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20).
  2. Para essa id de blob neste exemplo, o endereço do sistema de arquivos deve ser: ca/bd/c4/9c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20.
  3. Pesquise o sistema de arquivos na instância stand-by e verifique se o arquivo nomeado está presente no Armazenamento de dados do arquivo.
  4. Within /repository/datastore, use o list (Por exemplo: ls -ald) comando: ls -ald ca/bd/c4/9c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20.
  5. Você deve conseguir ver o arquivo e confirmar que a id de blob realmente não está ausente.

Nesta página