Error en el Lucene Index

OpenKM tiene muchas características interesantes, pero es necesario un proceso de configuración para mostrar todo su potencial.
Forum rules
Por favor, antes de preguntar algo consulta el wiki de documentación o utiliza la función de búsqueda del foro. Recuerda que no tenemos una bola de cristal ni poderes mentales, o sea que que para informar sobre un error es necesario que nos indiques tanto la versión de OpenKM que usas como la del navegador y sistema operativo. Para más información consulta Cómo informar de fallos de forma efectiva.
Post Reply
afumega
Fresh Boarder
Fresh Boarder
Posts: 8
Joined: Tue Jan 22, 2019 9:52 am

Error en el Lucene Index

Post by afumega » Mon Dec 16, 2019 4:32 pm

Buenas tardes,

Nuestro Gestor Documental Openkm nos devolvía el siguiente error en el Lucene Index y lo solventamos elmininando la carpeta opt/openkm63/repository/index/ y regenerando los índices desde la consola de administración.

Code: Select all

com.openkm.sdk4j.exception.UnknowException:  Unable to query Lucene index
at com.openkm.sdk4j.impl.SearchImpl.find(SearchImpl.java:283)
at com.openkm.sdk4j.OKMWebservice20.find(OKMWebservice20.java:1154
)

Tras solventar el problema, hemos vuelto a tener el mismo error en menos de 24 horas sin tener un gran volumen de carga de documentos (50 documentos como máximo).

¿A qué se puede deber este error? ¿Se puede desactivar esa indexación?

Muchas gracias!

jllort
Moderator
Moderator
Posts: 10963
Joined: Fri Dec 21, 2007 11:23 am
Location: Sineu - ( Illes Balears ) - Spain
Contact:

Re: Error en el Lucene Index

Post by jllort » Sat Dec 21, 2019 5:37 pm

Veo que estas utilizando el API de OpenKM. En este caso sería más interesante reproducir el mismo tipo de consulta desde la interfaz de OpenKM directamente para tener una mejor traza de el error.

Estas ejecutando la aplicación en windows o linux?
La carpeta repository la tienes en un disco físico verdad?

En el caso de que estes en linux, asegúrate que estas ejecutando la aplicación siempre con el mismo usuario ( a veces los usuarios arrancan esporádicamente con el usuario root y esto hace que los ficheros que se crean nuevos se creen con este usuario y luego al volver a el usuario standard surgen problemas, porque no pueden acceder a los ficheros creados por el usuario root.

Necesitamos ver una traza más larga, por eso te sugiero de generar el error desde el interfaz clásico de OpenKM para tener más claro que puede estar sucediendo ( no es para nada normal ).

afumega
Fresh Boarder
Fresh Boarder
Posts: 8
Joined: Tue Jan 22, 2019 9:52 am

Re: Error en el Lucene Index

Post by afumega » Tue Jan 14, 2020 8:10 am

Hola,

Antes de nada, gracias por responder.

La aplicación está sobre Linux y guarda en disco, así es.
El usuario es el mismo en todo momento, hemos podido comprobarlo.

Por otro lado, adjunto la traza completa (es de log y no de la interfaz porque tras reindexar por segunda vez ya no se ha vuelto a reproducir):

Code: Select all

ERROR 1 --- [nio-8888-exec-7] e.d.o.document.services.OpenkmService:

com.openkm.sdk4j.exception.UnknowException:  Unable to query Lucene index
at com.openkm.sdk4j.impl.SearchImpl.find(SearchImpl.java:283)
at com.openkm.sdk4j.OKMWebservice20.find(OKMWebservice20.java:1154)
at es.xxx.yyyy.document.services.OpenkmService.queryDocuments(OpenkmService.java:685)
at es.xxx.yyyy.document.services.OpenkmService.asociarDocumentacionEntreOperacion(OpenkmService.java:1024)
at es.xxx.yyyy.services.OperacionService.crearNuevaRelacion(OperacionService.java:920)
at es.xxx.yyyy.services.OperacionService$$FastClassBySpringCGLIB$$f76a0c18.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
at es.xxx.yyyy.services.OperacionService$$EnhancerBySpringCGLIB$$993c4b1b.crearNuevaRelacion(<generated>)
at es.xxx.yyyy.controllers.OperacionController.crearNuevaRelacion(OperacionController.java:332)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:901)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.keycloak.adapters.tomcat.AbstractAuthenticatedActionsValve.invoke(AbstractAuthenticatedActionsValve.java:67)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:607)
at org.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve.invoke(AbstractKeycloakAuthenticatorValve.java:181)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Muchas gracias de antemano.
Saludos.

jllort
Moderator
Moderator
Posts: 10963
Joined: Fri Dec 21, 2007 11:23 am
Location: Sineu - ( Illes Balears ) - Spain
Contact:

Re: Error en el Lucene Index

Post by jllort » Sat Jan 18, 2020 10:45 am

El buscador te funciona desde la interfaz de openkm?
Puedes compartir la traza de el servidor, catalina.log?

afumega
Fresh Boarder
Fresh Boarder
Posts: 8
Joined: Tue Jan 22, 2019 9:52 am

Re: Error en el Lucene Index

Post by afumega » Fri Jan 24, 2020 10:09 am

Hola,

El buscador funciona cuando borramos la carpeta "index" y reiniciamos el OpenKM, sino no.
El log de catalina no te lo puedo enviar, ya que no lo tenemos con el error.

Por otro lado, ¿sería posible apagar la indexación? realmente no es necesario. Hemos visto varias propiedades pero no sigue realizando la indexación de los documentos:

- 2020-01-23 14:33:24,174 [localhost-startStop-1] [] INFO com.openkm.core.Config - LOAD - hibernate.search.index.exclusive=true

No vemos esta propiedad en el OpenKM.cfg pero, ¿valdría ponerla a false para desactivar la indexación?

Tras 1 semana y media trabajando, nos ha vuelto a dar problemas de indexación y hemos tenido que borrarlos y reconstruirlos, no parece algo normal entiendo para un volumen de unos 2000 documentos.

Muchas gracias de antemano,
Saludos.

jllort
Moderator
Moderator
Posts: 10963
Joined: Fri Dec 21, 2007 11:23 am
Location: Sineu - ( Illes Balears ) - Spain
Contact:

Re: Error en el Lucene Index

Post by jllort » Sat Jan 25, 2020 11:29 am

El indice de el lucene no se corrompe por si solo. O bien estais apagando incorrectamente el equipo ( y eso puede dañar el indice si esta transaccionando ) o bien teneis problemas con el disco ( posible aunque también daría otras señales de alarma ) o estais haciendo alguna cosa que no estais olvidando de decir.

Sobre la indexación si la desactivais, el buscador dejará de funcionar completamente. Otra historia es que no querais indexar por el contenido ( que esto se puede hacer de varias maneras, lo mas fácil es parar la tarea de la cola de indexación en el crontab ).

En la version professional tenemos una opción para parar el servicio de indexación totalmente ( "hibernate.search=off" ) pero esto he comprobado que no lo tenemos disponible en la version community. El parámetro hibernate.search.index.exclusive realiza otra función y con eso no vas a desactivar nada.

Efectivamente 2K ficheros es un repositorio muy pequeño, nosotros hasta los 500K - 1 millon no consideramos que sea un repositorio mediano - grande, con estos volumenes que manejas no deberías tener absolutamente ningún problema.

afumega
Fresh Boarder
Fresh Boarder
Posts: 8
Joined: Tue Jan 22, 2019 9:52 am

Re: Error en el Lucene Index

Post by afumega » Mon Jan 27, 2020 7:36 am

Hola,

¿A qué te refieres con "el buscador deja de funcionar"?
- Es decir, ¿el buscador de la consola de administración?
- Por otro lado, ¿se podrían realizar búsquedas a través del API con la indexación desactivada?

En nuestro caso, la instalación se encuentra en un docker sobre Openshift, entiendo que no debería afectar en nada. No es un equipo que se reinicie continuamente y, a priori, el disco está correcto ya que no se han detectado problemas en él.

Por último, ¿es posible que el nombre de los documentos afecte a la indexación? Por longitud muy grande o caracteres no habituales, etc.

Muchas gracias nuevamente!
Saludos.

Post Reply