3 minute read

En ocasiones, alguna máquina puede sufrir un apagado no controlado. Las cabinas de discos a veces te la juegan y te regalan un corte imprevisto.

No pasa nada… hasta que intentas levantar Pentaho y resulta que no funciona… Los backups están bien, siempre y cuando no necesites los datos que cargaste la noche anterior y que te costó varias horas procesarlos… En estos casos, tirar de backup no es una opción.

Empezamos mirando logs…

Miramos el catalina.out (ladrillo complejo de leer en ocasiones):

usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help | start | stop }
ene 18, 2016 1:09:36 PM org.apache.catalina.core.AprLifecycleListener init
INFORMACIÓN: La biblioteca nativa de Apache Tomcat basada en ARP que permite un rendimiento óptimo en entornos de desarrollo no ha sido hallada en java.library.path: /usr/java/
packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
ene 18, 2016 1:09:37 PM org.apache.coyote.http11.Http11Protocol init
INFORMACIÓN: Inicializando Coyote HTTP/1.1 en puerto http-8080
ene 18, 2016 1:09:37 PM org.apache.catalina.startup.Catalina load
INFORMACIÓN: Initialization processed in 551 ms
ene 18, 2016 1:09:37 PM org.apache.catalina.core.StandardService start
INFORMACIÓN: Arrancando servicio Catalina
ene 18, 2016 1:09:37 PM org.apache.catalina.core.StandardEngine start
INFORMACIÓN: Starting Servlet Engine: Apache Tomcat/6.0.41
ene 18, 2016 1:09:37 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFORMACIÓN: Desplieque del descriptor de configuración pentaho.xml
[Server@3f998f38]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@3f998f38]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@3f998f38]: Initiating startup sequence...
[Server@3f998f38]: Server socket opened successfully in 0 ms.
[Server@3f998f38]: Database [index=0, id=0, db=file:../../data/hsqldb/sampledata, alias=sampledata] opened sucessfully in 1148 ms.
[Server@3f998f38]: Database [index=1, id=1, db=file:../../data/hsqldb/hibernate, alias=hibernate] opened sucessfully in 9 ms.
[Server@3f998f38]: Database [index=2, id=2, db=file:../../data/hsqldb/quartz, alias=quartz] opened sucessfully in 15 ms.
[Server@3f998f38]: Startup sequence completed in 1173 ms.
[Server@3f998f38]: 2016-01-18 13:09:40.030 HSQLDB server 1.8.0 is online
[Server@3f998f38]: To close normally, connect and execute SHUTDOWN SQL
[Server@3f998f38]: From command line, use [Ctrl]+[C] to abort abruptly
13:09:57,459 ERROR [RepositoryImpl] Failed to initialize workspace 'default'
javax.jcr.RepositoryException: Unable to initialize query handler: org.apache.jackrabbit.core.query.lucene.SearchIndex@350d6b8a
at org.apache.jackrabbit.core.config.RepositoryConfigurationParser$1.getQueryHandler(RepositoryConfigurationParser.java:658)
at org.apache.jackrabbit.core.config.WorkspaceConfig.getQueryHandler(WorkspaceConfig.java:251)
at org.apache.jackrabbit.core.SearchManager.(SearchManager.java:171)
at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.getSearchManager(RepositoryImpl.java:1862)
at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.doPostInitialize(RepositoryImpl.java:2098)
at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:2004)
at org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:517)
at org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:324)
at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:589)
at org.springframework.extensions.jcr.jackrabbit.RepositoryFactoryBean.createRepository(RepositoryFactoryBean.java:68)
at org.springframework.extensions.jcr.RepositoryFactoryBean.afterPropertiesSet(RepositoryFactoryBean.java:61)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
Parece que el fallo radica en el jackrabbit, donde se albergan todos los reports.

13:09:57,459 ERROR [RepositoryImpl] Failed to initialize workspace 'default'
javax.jcr.RepositoryException: Unable to initialize query handler: org.apache.jackrabbit.core.query.lucene.SearchIndex@350d6b8a

Lo curioso es que jackrabbit en nuestro caso está en base de datos Postgres, la cual está funcionando correctamente…

Solución

La solución es fácil aunque da cierto respeto. Borrar contenido de ciertos directorios index… Si… guarda índices en el sistema de archivos aunque use una base de datos, y al cerrarse mal se pueden quedar corruptos.

En mi caso, el afectado es workspace ‘default’, con lo que procedo a parar Pentaho, borrar el contenido del directorio /opt/biserver-ce/pentaho-solutions/system/jackrabbit/repository/workspaces/default/index, y volver a arrancar Pentaho. Pentaho se da cuenta y vuelve a construir los índices.

Asunto resuelto.

La pista la encontré aquí:

https://issues.apache.org/jira/browse/JCR-3071

comments powered by Disqus