Problema
Una instancia no se reinicia, y registra el siguiente mensaje en un sistema Linux:
xx.xx.xxxx xx:xx:xx.xxx *ERROR* org.apache.jackrabbit.core.RepositoryImpl Falla en inicializar espacio de trabajo 'crx.default' javax.jcr.RepositoryException: No se puede iniciar el administrador de persistencia com.day.crx.persistence.tar.TarPe
rsistenceManager
en com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.createPersistenceManager(CRXRepositoryImpl.java:1290)
en com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.doInitialize(CRXRepositoryImpl.java:1307)
en org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:2002)
en org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:517)
en com.day.crx.core.CRXRepositoryImpl.initStartupWorkspaces(CRXRepositoryImpl.java:428)
en org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:324)
en com.day.crx.core.CRXRepositoryImpl.(CRXRepositoryImpl.java:283)
en com.day.crx.core.CRXRepositoryImpl.create(CRXRepositoryImpl.java:258)
...
Causado por: java.io.IOException: Descripción errónea del archivo
en java.io.RandomAccessFile.writeBytes(Native Method)
en java.io.RandomAccessFile.write(RandomAccessFile.java:469)
en com.day.crx.persistence.tar.file.TarFile.write(TarFile.java:736)
en com.day.crx.persistence.tar.file.TarFile.writeData(TarFile.java:629)
en com.day.crx.persistence.tar.file.TarFile.appendMetaData(TarFile.java:703)
en com.day.crx.persistence.tar.file.TarFile.append(TarFile.java:585)
en com.day.crx.persistence.tar.TarSet.switchDataFile(TarSet.java:443)
en com.day.crx.persistence.tar.TarSet.open(TarSet.java:225)
en com.day.crx.persistence.tar.ClusterTarSet.reopenCopy(ClusterTarSet.java:1413)
en com.day.crx.persistence.tar.ClusterTarSet.open(ClusterTarSet.java:828)
en com.day.crx.persistence.tar.TarPersistenceManager.openTarSet(TarPersistenceManager.java:963)
en com.day.crx.persistence.tar.TarPersistenceManager.init(TarPersistenceManager.java:494)
en com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.createPersistenceManager(CRXRepositoryImpl.java:1286)
... 59 más
xx.xx.xxxx xx:xx:xx.xxx *ERROR* org.apache.jackrabbit.core.RepositoryImpl Imposible iniciar el repositorio, forzar apagado...
o en un sistema Windows:
xx.xx.xxxx xx:xx:xx.xxx *ERROR* [FelixStartLevel] org.apache.jackrabbit.core.RepositoryImpl Falla al iniciar el espacio de trabajo 'crx.default' javax.jcr.RepositoryException: No se puede iniciar el administrador de persistencia com.day.crx.persistence.tar.TarPersistenceManager en com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.createPersistenceManager(CRXRepositoryImpl.java:1325) en com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.doInitialize(CRXRepositoryImpl.java:1342) en org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:2002) en org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:517) en com.day.crx.core.CRXRepositoryImpl.initStartupWorkspaces(CRXRepositoryImpl.java:452) en org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:324) en com.day.crx.core.CRXRepositoryImpl.(CRXRepositoryImpl.java:307) en com.day.crx.core.CRXRepositoryImpl.create(CRXRepositoryImpl.java:262) en com.day.crx.core.CRXRepositoryImpl.create(CRXRepositoryImpl.java:245) en com.day.crx.sling.server.impl.jmx.ManagedRepository.activate(ManagedRepository.java:168) ...
Causado por: java.io.IOException: Acceso denegado en java.io.RandomAccessFile.writeBytes(Native Method) en java.io.RandomAccessFile.write(Unknown Source) en com.day.crx.persistence.tar.file.TarFile.write(TarFile.java:742) en com.day.crx.persistence.tar.file.TarFile.writeData(TarFile.java:635) en com.day.crx.persistence.tar.file.TarFile.appendMetaData(TarFile.java:709) en com.day.crx.persistence.tar.file.TarFile.append(TarFile.java:591) en com.day.crx.persistence.tar.TarSet.switchDataFile(TarSet.java:445) en com.day.crx.persistence.tar.TarSet.open(TarSet.java:227) en com.day.crx.persistence.tar.ClusterTarSet.reopenCopy(ClusterTarSet.java:1455) en com.day.crx.persistence.tar.ClusterTarSet.open(ClusterTarSet.java:860) en com.day.crx.persistence.tar.TarPersistenceManager.openTarSet(TarPersistenceManager.java:980) en com.day.crx.persistence.tar.TarPersistenceManager.init(TarPersistenceManager.java:500) en com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.createPersistenceManager(CRXRepositoryImpl.java:1321) ... 59 más
Anteriormente en los registros, podía haber un mensaje como el de abajo:
*ERROR* com.day.crx.core.backup.LowDiskSpaceMonitor Faltan archivos. El repositorio se cerrará ahora.
Otro mensaje relacionado con “Los archivos data*.tar son ahora de solo lectura por razones de seguridad...”. también puede aparecer más o menos al mismo tiempo (dependiendo de la versión CRX y los parches).
Solución
Los mensajes aparecen cuando se detecta una incoherencia entre index_*.tar y data_*.tar, y sus archivos data*.tar son de solo lectura.
Vuelva a poner el data_*.tar en lectura/escritura. Para hacer esto:
- En sistemas Linux, use el comando chmod para establecer los permisos de los archivos de nuevo.
- En Windows, simplemente elimine el atributo solo-lectura de los archivos.
A continuación, elimine los archivos index_*.tar, y configure el repositorio para que se inicie en modo de revisión de consistencia/reparación (tanto para el repositorio como para el índice de búsqueda de Lucene). Si no se encuentran errores, elimine la verificación de consistencia/reparación para que el siguiente inicio sea más rápido.