Problema

Uma instância não reinicia e registra a seguinte mensagem em um sistema Linux:

xx.xx.xxxx xx:xx:xx.xxx *ERRO* org.apache.jackrabbit.core.RepositoryImpl Falha ao iniciar o espaço de trabalho 'crx.default' javax.jcr.RepositoryException: Não é possível criar a instância do gerenciador de persistência com.day.crx.persistence.tar.TarPe
rsistenceManager
em com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.createPersistenceManager(CRXRepositoryImpl.java:1290)
em com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.doInitialize(CRXRepositoryImpl.java:1307)
em org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:2002)
em org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:517)
em com.day.crx.core.CRXRepositoryImpl.initStartupWorkspaces(CRXRepositoryImpl.java:428)
em org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:324)
em com.day.crx.core.CRXRepositoryImpl.(CRXRepositoryImpl.java:283)
em com.day.crx.core.CRXRepositoryImpl.create(CRXRepositoryImpl.java:258)
...
Causado por: java.io.IOException: Descritor de arquivo incorreto
em java.io.RandomAccessFile.writeBytes(método nativo)
em va.io.RandomAccessFile.write(RandomAccessFile.java:469)
em com.day.crx.persistence.tar.file.TarFile.write(TarFile.java:736)
em com.day.crx.persistence.tar.file.TarFile.writeData(TarFile.java:629)
em com.day.crx.persistence.tar.file.TarFile.appendMetaData(TarFile.java:703)
em com.day.crx.persistence.tar.file.TarFile.append(TarFile.java:585)
em com.day.crx.persistence.tar.TarSet.switchDataFile(TarSet.java:443)
em com.day.crx.persistence.tar.TarSet.open(TarSet.java:225)
em com.day.crx.persistence.tar.ClusterTarSet.reopenCopy(ClusterTarSet.java:1413)
em com.day.crx.persistence.tar.ClusterTarSet.open(ClusterTarSet.java:828)
em com.day.crx.persistence.tar.TarPersistenceManager.openTarSet(TarPersistenceManager.java:963)
em com.day.crx.persistence.tar.TarPersistenceManager.init(TarPersistenceManager.java:494)
em com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.createPersistenceManager(CRXRepositoryImpl.java:1286)
... e mais 59
xx.xx.xxxx xx:xx:xx.xxx *ERRO* org.apache.jackrabbit.core.RepositoryImpl Não é possível iniciar o repositório, forçando desligamento...

 

ou em um sistema Windows:

 

xx.xx.xxxx xx:xx:xx.xxx *ERRO* [FelixStartLevel] org.apache.jackrabbit.core.RepositoryImpl Falha ao iniciar o espaço de trabalho 'crx.default' javax.jcr.RepositoryException: Não é possível criar a instância do gerenciador de persistência com.day.crx.persistence.tar.TarPersistenceManager em com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.createPersistenceManager(CRXRepositoryImpl.java:1325) em com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.doInitialize(CRXRepositoryImpl.java:1342) em org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:2002) em org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:517) em com.day.crx.core.CRXRepositoryImpl.initStartupWorkspaces(CRXRepositoryImpl.java:452) em org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:324) em com.day.crx.core.CRXRepositoryImpl.(CRXRepositoryImpl.java:307) em com.day.crx.core.CRXRepositoryImpl.create(CRXRepositoryImpl.java:262) em com.day.crx.core.CRXRepositoryImpl.create(CRXRepositoryImpl.java:245) em com.day.crx.sling.server.impl.jmx.ManagedRepository.activate(ManagedRepository.java:168) ...

Causado por: java.io.IOException: acesso negado em java.io.RandomAccessFile.writeBytes(método nativo) em java.io.RandomAccessFile.write(origem desconhecida) em com.day.crx.persistence.tar.file.TarFile.write(TarFile.java:742) em com.day.crx.persistence.tar.file.TarFile.writeData(TarFile.java:635) em com.day.crx.persistence.tar.file.TarFile.appendMetaData(TarFile.java:709) em com.day.crx.persistence.tar.file.TarFile.append(TarFile.java:591) em com.day.crx.persistence.tar.TarSet.switchDataFile(TarSet.java:445) em com.day.crx.persistence.tar.TarSet.open(TarSet.java:227) em com.day.crx.persistence.tar.ClusterTarSet.reopenCopy(ClusterTarSet.java:1455) em com.day.crx.persistence.tar.ClusterTarSet.open(ClusterTarSet.java:860) em com.day.crx.persistence.tar.TarPersistenceManager.openTarSet(TarPersistenceManager.java:980) em com.day.crx.persistence.tar.TarPersistenceManager.init(TarPersistenceManager.java:500) em com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.createPersistenceManager(CRXRepositoryImpl.java:1321) ... e mais 59

Observação:

Anteriormente nos logs, poderia haver uma mensagem como a abaixo:

*ERRO* com.day.crx.core.backup.LowDiskSpaceMonitor Arquivo(s) ausente(s). O repositório será fechado agora.

Outra mensagem relacionada a "Os arquivos data*.tar agora são somente leitura por motivos de segurança..." também pode aparecer ao mesmo tempo (dependendo da versão do CRX e dos patches).

Solução

As mensagens são lançadas quando há inconsistência detectada entre os arquivos index_*.tar e data_*.tar, e seus arquivos data*.tar são somente leitura.

Defina data_*.tar como leitura/gravação. Para tanto:

- Em sistemas Linux, use o comando chmod para definir corretamente as permissões do arquivo.
- No Windows, basta remover o atributo "somente leitura" nos arquivos.

Em seguida, exclua os arquivos index_*.tar e configure o repositório para iniciar no modo de verificação de consistência/correção (para o repositório e o índice de pesquisa do Lucene). Se nenhum erro for encontrado, remova a verificação de consistência/correção para a próxima inicialização ser mais rápida.

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online