Error alfresco-search-services 1.4.0

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Member II

Error alfresco-search-services 1.4.0

Buenas, estoy teniendo este error que no consigo solucionar en la versión de alfresco-search-services:1.4.0, debajo de la traza detallo la casuística y las configuraciones.

2020-03-13 09:53:18.857 ERROR (qtp1297978429-20) [   x:alfresco] o.a.s.s.HttpSolrCall null:java.lang.NullPointerException
        at org.alfresco.solr.query.Solr4QueryParser.getContentStore(Solr4QueryParser.java:195)
        at org.alfresco.solr.query.Solr4QueryParser.<init>(Solr4QueryParser.java:168)
        at org.alfresco.solr.query.Lucene4QueryBuilderContextSolrImpl.<init>(Lucene4QueryBuilderContextSolrImpl.java:64)
        at org.alfresco.solr.AlfrescoSolrDataModel.getLuceneQueryBuilderContext(AlfrescoSolrDataModel.java:1401)
        at org.alfresco.solr.AlfrescoSolrDataModel.getFTSQuery(AlfrescoSolrDataModel.java:1456)
        at org.alfresco.solr.query.AlfrescoFTSQParserPlugin$AlfrescoFTSQParser.parse(AlfrescoFTSQParserPlugin.java:105)
        at org.apache.solr.search.QParser.getQuery(QParser.java:168)
        at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:161)
        at org.apache.solr.handler.component.AlfrescoSearchHandler.handleRequestBody(AlfrescoSearchHandler.java:323)
        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:173)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:2477)
        at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:723)
        at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:529)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:361)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:305)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1691)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
        at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
        at org.eclipse.jetty.server.Server.handle(Server.java:534)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
        at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
        at java.base/java.lang.Thread.run(Thread.java:834)

2020-03-13 09:53:47.262 ERROR (qtp1297978429-12) [   x:alfresco] o.a.s.h.RequestHandlerBase java.lang.IllegalArgumentException: value already present: _dummy_
        at com.google.common.collect.HashBiMap.put(HashBiMap.java:241)
        at com.google.common.collect.HashBiMap.put(HashBiMap.java:218)
        at org.alfresco.solr.component.RewriteFacetParametersComponent.rewriteFacetFieldList(RewriteFacetParametersComponent.java:509)
        at org.alfresco.solr.component.RewriteFacetParametersComponent.fixFacetParams(RewriteFacetParametersComponent.java:198)
        at org.alfresco.solr.component.RewriteFacetParametersComponent.prepare(RewriteFacetParametersComponent.java:64)
        at org.apache.solr.handler.component.AlfrescoSearchHandler.handleRequestBody(AlfrescoSearchHandler.java:323)

FIN TRAZA ERROR

 

Estamos actualizando la versión de alfresco-search-services de la versión 1.2.0 hacia la versión 1.4.0, el motivo es un error que se soluciona en esta versión sobre el buscador de personas al realizar el filtro por nombre o apellidos de usuarios sincronizados por ldap.

 

El error que reporto se muestra cuando se realiza la búsqueda de cualquier contenido, tanto la simple como la avanzada.

Este error sólo se produce en el entorno de PRE, funciona correctamente en las pruebas realizadas sobre local.

Analizando las diferencias en las configuraciones e implantación, no encontramos el motivo del error.

Configuración local:

Se realiza mediante docker-compose, configuración:

solr6:
build:
context: ./search
args:
SEARCH_TAG: 1.4.0
SOLR_HOSTNAME: solr6
ALFRESCO_HOSTNAME: alfresco
ALFRESCO_COMMS: none
CROSS_LOCALE: "true"
container_name: solr
restart: "always"
environment:
#Solr needs to know how to register itself with Alfresco
SOLR_ALFRESCO_HOST: "alfresco6"
SOLR_ALFRESCO_PORT: "8080"
#Alfresco needs to know how to call solr
SOLR_SOLR_HOST: "solr6"
SOLR_SOLR_PORT: "8983"
#Create the default alfresco and archive cores
SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive"
SOLR_JAVA_MEM: "-Xms1440m -Xmx1440m"
SOLR_OPTS: "
-XX:NewSize=592m
-XX:MaxNewSize=592m
"
volumes:
- ./volumes/config/solrconfig.xml:/opt/alfresco-search-services/solrhome/templates/rerank/conf/solrconfig.xml
- ./volumes/data/solr-data:/opt/alfresco-search-services/data
- ./volumes/data/solr-backup/alfresco:/usr/local/tomcat/alf_data/solr6Backup/alfresco
- ./volumes/data/solr-backup/archive:/usr/local/tomcat/alf_data/solr6Backup/archive
ports:
- 8083:8983

 

Dockerfile:

ARG SEARCH_TAG
FROM alfresco/alfresco-search-services:${SEARCH_TAG}

# COMMON
ARG ALFRESCO_HOSTNAME
ARG SOLR_HOSTNAME
ENV ALFRESCO_HOSTNAME $ALFRESCO_HOSTNAME
ENV SOLR_HOSTNAME $SOLR_HOSTNAME

# Configure Alfresco Service Name
RUN sed -i '/^bash.*/i sed -i "'"s/alfresco.host=localhost/alfresco.host=${ALFRESCO_HOSTNAME}/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \
${DIST_DIR}/solr/bin/search_config_setup.sh && \
sed -i '/^bash.*/i sed -i "'"s/solr.host=localhost/solr.host=${SOLR_HOSTNAME}/g"'" ${DIST_DIR}/solrhome/conf/shared.properties\n' \
${DIST_DIR}/solr/bin/search_config_setup.sh

# Cross Locale
ARG CROSS_LOCALE
ENV CROSS_LOCALE $CROSS_LOCALE

# Enable Cross Locale SOLR Configuration
RUN if [ "$CROSS_LOCALE" == "true" ] ; then \
sed -i '/^bash.*/i sed -i "'"/alfresco.cross.locale.datatype/s/^#//g"'" $DIST_DIR/solrhome/conf/shared.properties\n' \
${DIST_DIR}/solr/bin/search_config_setup.sh; \
fi

# COMMS
ARG ALFRESCO_COMMS
ENV ALFRESCO_COMMS $ALFRESCO_COMMS

# Configure SOLR cores to run in HTTPs mode from template
RUN if [ "$ALFRESCO_COMMS" == "https" ] ; then \
sed -i '/^bash.*/i sed -i "'"s/alfresco.secureComms=none/alfresco.secureComms=https/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \
${DIST_DIR}/solr/bin/search_config_setup.sh; \
else \
sed -i '/^bash.*/i sed -i "'"s/alfresco.secureComms=https/alfresco.secureComms=none/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \
${DIST_DIR}/solr/bin/search_config_setup.sh; \
fi

 

Configuración de PRE:

Se realiza directamente en docker:

solr6:

image: 100.000.000.000:5000/solr6:200311

container_name: solr

restart: "always"

depends_on:

- alfresco6

networks:

- aaaa-net

environment:
#Solr needs to know how to register itself with Alfresco
SOLR_ALFRESCO_HOST: "alfresco6"
SOLR_ALFRESCO_PORT: "8080"
#Alfresco needs to know how to call solr
SOLR_SOLR_HOST: "solr6"
SOLR_SOLR_PORT: "8983"
#Create the default alfresco and archive cores
SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive"
SOLR_JAVA_MEM: "-Xms1440m -Xmx1440m"
SOLR_OPTS: "
-XX:NewSize=592m
-XX:MaxNewSize=592m

volumes:

- /opt/docker/nfs/alfresco/volumes/data/solr-data:/opt/alfresco-search-services/data

- /opt/docker/nfs/alfresco/volumes/data/solr-backup/alfresco:/usr/local/tomcat/alf_data/solr6Backup/alfresco

- /opt/docker/nfs/alfresco/volumes/data/solr-backup/archive:/usr/local/tomcat/alf_data/solr6Backup/archive

- /opt/docker/nfs/alfresco/volumes/config/solrconfig.xml:/opt/alfresco-search-services/solrhome/templates/rerank/conf/solrconfig.xml

ports:

- 8983:8983 #Browser port

 

El dockerfile es el mismo.

 

Los pasos al realizar la implantación:

- Parar todos los servicios.

- Borrar la carpeta del volumen solr-data para la reindexación.

- Arrancar todos los servicios.

 

¿Es un error conocido? Gracias

4 Replies
Highlighted

Re: Error alfresco-search-services 1.4.0

Lo único que veo es que la imagen Docker para solr6 es diferente. ¿Habéis probado a usar exactamente la misma imagen Docker para PRE que la que usáis en local?

Software Engineer in Alfresco Search Team.
Highlighted
Member II

Re: Error alfresco-search-services 1.4.0

En teoría la imagen es la misma, por un lado en local está configurado en el docker-compose que realice el build del dockerfile, y en PRE primero se contruye el dockerfile, dicha imagen se le hace el pull y luego se referencia a ella.

¿Podría ser algún parámetro mal referenciado?

Highlighted
Member II

Re: Error alfresco-search-services 1.4.0

La forma de construir el docker en PRE es la siguiente:

docker build --build-arg SEARCH_TAG=1.4.0 --build-arg SOLR_HOSTNAME=solr6 --build-arg ALFRESCO_HOSTNAME=alfresco --build-arg ALFRESCO_COMMS=none --build-arg CROSS_LOCALE=true -t solr6:200311

Highlighted

Re: Error alfresco-search-services 1.4.0

Parece un buen método. ¿Podrías comprobar que los cambios del Dockerfile está efectivamente aplicados cuando arrancas el container?

Puedes entrar al container con algo así cómo:

docker exec -it solr6 sh
Software Engineer in Alfresco Search Team.