03-16-2020 11:52 AM
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
03-17-2020 05:39 AM
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?
03-17-2020 05:39 AM
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?
04-16-2020 04:42 AM
Where is this file alfresco-search-services located in Alfresco Community 5.2.
03-17-2020 05:52 AM
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?
03-17-2020 06:40 AM
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
03-17-2020 06:50 AM
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
04-15-2020 05:30 AM
Seguimos desconociendo porque al contruir la imagen directamente en PRE no funciona.
Sin embargo al realizar la exportación e importación de la imagen de docker construida en local, funciona correctamente en PRE. Marco como solucionado
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.