Error de incoherencia del almacén de datos al obtener "InputStream para blobId"

Obtenga información sobre cómo resolver el error del almacén de datos al obtener InputStream. Compile una lista de rutas y restáurelas a los archivos que faltan y vuelva a indexar.

Descripción description

Entorno

  • Experience Manager 6.4
  • Experience Manager 6.5

Problema/Síntomas

Tiene FileDataStore configurado en su sistema Adobe Experience Manager 6.x / Oak 1.x y en el error.log puede ver lo siguiente:

Error al obtener InputStream para blobId.

10.09.2015 10:38:04.220 *ERROR* [ pool-9-thread-3]  org.apache.sling.commons.scheduler.impl.QuartzScheduler
Exception during job execution of org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate@7fe7e8fa :
Error occurred while obtaining InputStream for blobId [ add1dd8fc5093b27b1fae1b753cb48b24ef3231f#101983]
java.lang.RuntimeException: Error occurred while obtaining InputStream for blobId [ add1dd8fc5093b27b1fae1b753cb48b24ef3231f#101983]

Resolución resolution

Este error significa que posiblemente falten archivos del directorio del almacén de datos de Adobe Experience Manager.  La pérdida de archivos del almacén de datos puede deberse a un error de la recolección de basura de Oak Blob, a una interrupción del espacio en disco, a una inestabilidad del disco o del recurso compartido de red. O bien, podría deberse a que un usuario ha eliminado archivos del servidor por error.

Para recuperar los archivos que faltan, siga los pasos a continuación.

  1. Instale el último CFP/SP.

    Puede encontrar las correcciones rápidas más recientes en Uso compartido de paquetes de Adobe.

  2. Ejecutar comprobación de consistencia del almacén de datos.

    Con oak-run jar 1.6.6 y versiones posteriores, ejecute el siguiente comando:

    code language-none
    java -jar oak-run-*.jar datastorecheck --consistency -ref --id --fds crx-quickstart/install/org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.config --repoHome crx-quickstart/repository --store crx-quickstart/repository/datastore --dump temp --verbose --track
    
  3. Crear una lista de rutas de acceso de los archivos que faltan.

    El siguiente paso para recuperar los archivos que faltan es compilar una lista completa de las rutas de los archivos que faltan.

    Buscar en el resultado de comprobación de coherencia todas las ocurrencias de error Registro no encontrado

    a. En Linux o Unix: Use este comando para generar la lista de archivos que faltan en un archivo missing_ds_files.txt:

    code language-none
    grep "blobId" consistency_check_output.txt | grep -Eo "[ 0-9a-f] {40,200}" | awk '{ print
    substr($1, 0,2) "/" substr($1, 3,2) "/" substr($1, 5,2) "/" $1 }' | sort -u >
    missing_ds_files.txt
    

    Nota - Si su instancia de Adobe Experience Manager no se está iniciando debido a los errores de blobId, busque en sus archivos de registro en crx-quickstart/logs todas las ocurrencias del error 'Error occurred while obtaining InputStream for blobId' en su lugar:

    code language-none
    grep "Error occurred while obtaining InputStream for blobId" error.log* | grep -Eo "[ 0-9a-f] {40,200}" | awk '{ print substr($1, 0,2) "/" substr($1, 3,2) "/" substr($1, 5,2) "/" $1 }' | sort -u > missing_ds_files.txt
    

    Si el comando funcionara correctamente, el contenido de missing_ds_files.txt tendría un aspecto similar al siguiente:

    code language-none
    12/92/04/129204a6dd0ce2cd5ca19c721b6f52ee2b3630e2
    9f/d8/38/9fd8386d20cf55e7e0024e18d0c7d4e8400454ee
    7a/13/15/7a1315788f45dafd6630454f04183601682a9f80
    28/37/d2/2837d24aed3ff223cd40e90222226c4ef2e2a0c6
    

    b. En Windows: usa un editor de texto como Textpad o Notepad++ para buscar todas las ocurrencias de Registro no encontrado. A continuación, después de buscar todos estos casos, extraiga los nombres de archivo con una macro, escribiendo una secuencia de comandos o copiando y construyendo manualmente los nombres de archivo en un nuevo archivo de texto.

    Las rutas de acceso a archivos de DataStore se construyen a partir del nombre del registro con este formato: {los dos primeros caracteres del id. de registro}/{los dos segundos caracteres del id. de registro}/{los dos terceros caracteres del id. de registro}/{id. de registro}

    Por ejemplo, en este error:

    code language-none
    java.lang.RuntimeException: Error occurred while obtaining InputStream for blobId
    [ add1dd8fc5093b27b1fae1b753cb48b24ef3231f#101983]
    

    el id. de registro es add1dd8fc5093b27b1fae1b753cb48b24ef3231f y la ruta de acceso de archivo es ad/d1/dd/add1dd8fc5093b27b1fae1b753cb48b24ef3231f

  4. Recuperar los archivos que faltan.

    Ahora utilice el resultado del último paso para buscar los mismos archivos en otras instancias de Adobe Experience Manager de su entorno. Dado que los archivos del almacén de datos se almacenan de forma exclusiva, puede copiarlos de otras instancias de Adobe Experience Manager de su entorno.

    Si no encuentra algunos de los archivos en otras instancias, busque las copias de seguridad y restáurelas desde allí, si es posible.

    En Linux, puede iniciar sesión en cada una de las instancias de Adobe Experience Manager en funcionamiento y utilizar un comando como rsync para copiar sobre cualquiera de los archivos que faltan en ellas. Por ejemplo, ejecutándolo desde el directorio del almacén de datos en el servidor que tiene los archivos que faltan:

    code language-none
    rsync -avR --files-from=missing_ds_files.txt . user@hostname-of-server-missing-files:/path/to/crx-quickstart/repository/repository/datastore/
    

    El comando ejecuta un rsync que copia sobre cualquier archivo listado en missing_ds_files.txt que exista en el servidor.

  5. Limpiar referencias de archivos no recuperables.

    Si no pudo recuperar algunos de los archivos de la copia de seguridad o de otras instancias de Adobe Experience Manager, limpie o corrija las referencias del almacén de datos incorrectas. Vuelva a ejecutar la comprobación de coherencia del DataStore cuando la ejecutemos en el paso 4. Obtendrá una lista actual de los archivos que faltan.

    Revise cada una de las rutas de nodos enumeradas que hacen referencia a los archivos del almacén de datos que faltan. Revise los recursos DAM o archivos cargados en las páginas con el usuario que faltan. Haga que vuelvan a cargar los que falten. Los que no necesiten se pueden eliminar de forma segura mediante la interfaz de usuario de Adobe Experience Manager. Si falta algo en /var/audit o /var/eventing, se puede eliminar sin problemas. AEM Para cualquier archivo que no esté seguro, vaya a aquí y comuníquese con el equipo de soporte técnico de la para obtener ayuda.

  6. Reindexe todos los índices Oak asincrónicos.

    Dado que los archivos de índice se almacenan en el repositorio de Oak, también es posible que falten algunos archivos en los índices basados en /oak:index lucene.

    Los archivos que faltan no se registrarán en la comprobación de coherencia /system/console/repositorycheck, ya que están ocultos en los recorridos del repositorio. AEM Desafortunadamente, estos archivos no coincidirán en diferentes instancias de la.

    Para corregir estas incoherencias, reindexe los índices asíncronos de Oak afectados.

    ADVERTENCIA: Esta operación es extremadamente costosa y requerirá un tiempo de inactividad prolongado, entre 10 minutos y varios días para completarse, según el volumen de contenido del sistema.

    Para reindexar los índices asíncronos:

    1. Descargue oak-run 1.0.x que coincida con la versión que ha instalado en su entorno de Oak: https://repo1.maven.org/maven2/org/apache/jackrabbit/oak-run/

    2. Cargue el oak-run al servidor de Adobe Experience Manager.

    3. Detenga todas las instancias de Adobe Experience Manager.

    4. Ejecute el siguiente comando, correspondiente al almacenamiento de Oak de la instancia de Adobe Experience Manager:

      Comando TarMK:

      code language-none
      java -Xmx4096m -jar /apps/staging/oak-run-*-*.jar checkpoints crx-quickstart/repository/segmentstore rm-all
      

      Comando MongoMK:

      code language-none
      java -Xmx4096m -jar oak-run-*-*.jar checkpoints mongodb://localhost/aem-author rm-all
      
    5. Inicie Adobe Experience Manager de nuevo y supervise los archivos de registro en busca de mensajes de registro INFO de org.apache.jackrabbit.oak.plugins.index. Si desea ver más detalles sobre la indexación, vaya a la interfaz de usuario /system/console/slinglog y habilite el registro de nivel de depuración para org.apache.jackrabbit.oak.plugins.index.

      Debería ver mensajes de registro como estos:

      code language-none
      23.06.2015 14:26:23.070 *INFO* [ FelixStartLevel]  org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes: [ /oak:index/cqAcUUID, /oak:index/nodetype, /oak:index/deviceIdentificationMode, /oak:index/campaignpath, /oak:index/active, /oak:index/jcrFrozenMixinTypes]
      
      23.06.2015 14:26:23.517 *INFO* [ FelixStartLevel]  org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing Traversed #10000 /jcr:system/jcr:versionStorage/c8/5f
      ...
      23.06.2015 14:28:51.999 *INFO* [ pool-8-thread-1]  org.apache.jackrabbit.oak.plugins.index.IndexUpdate Indexing report
          - /oak:index/counter*(708)
          - /oak:index/authorizables*(159)
          - /oak:index/cqPageLucene*(1913)
          - /oak:index/ntBaseLucene*(444)
          - /oak:index/cqTagLucene*(512)
          - /oak:index/workflowDataLucene*(116)
      ...
      
      23.06.2015 14:28:52.009 *INFO* [ pool-8-thread-1]  org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate Reindexing (async) completed for indexes: [ /oak:index/counter*(708), /oak:index/authorizables*(159), /oak:index/cqPageLucene*(1913), /oak:index/ntBaseLucene*(444), /oak:index/cqTagLucene*(512), /oak:index/workflowDataLucene*(116)]  in 30.36 s
      
    6. Si la indexación falla por alguna razón, lo vería en bucle, repitiendo este mensaje de registro:

      code language-none
      23.06.2015 14:26:23.070 *INFO* [ FelixStartLevel]  org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes: [ /oak:index/cqAcUUID, /oak:index/nodetype, /oak:index/deviceIdentificationMode, /oak:index/campaignpath, /oak:index/active, /oak:index/jcrFrozenMixinTypes]
      
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f