Lo standby a freddo genera l'errore "DataStoreException Record non esiste"

Ultimo aggiornamento: 2022-11-15

Descrizione

Ambiente
Adobe Experience Manager

Problema
Lo standby a freddo con archivio file dedicato lancia un avviso sull'ID BLOB mancante simile all'errore qui:

*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
Questo è solo un avviso, non un errore.

Viene dal fatto che il File Datastore non ha modo di verificare se un binario esiste localmente, tranne che provando a caricare l'ID BLOB.
Se l’id viene caricato, i registri non mostrano questo avviso.
Tuttavia, se non viene trovato, lo standby sa che deve sincronizzarlo, quindi ecco perché si vede questo tipo di avviso nei log.

Risoluzione

Soluzione
Questo funziona come progettato e non indica un problema con il File Datastore.

Per confermare che l’ID BLOB non è effettivamente mancante, effettua le seguenti operazioni:

  1. Ad esempio, considera l’ID BLOB di esempio mancante nei registri (ad esempio: cabdc49c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20).
  2. Per questo blob id in questo esempio, l'indirizzo del filesystem deve essere: ca/bd/c4/9c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20.
  3. Cerca il filesystem nell'istanza di standby e controlla se il file denominato è presente nel File Datastore.
  4. Within /repository/datastore, utilizza list (Ad esempio: ls -ald), comando: ls -ald ca/bd/c4/9c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20.
  5. Dovresti essere in grado di visualizzare il file e confermare che l’ID BLOB non è effettivamente mancante.

In questa pagina