Open MaelREBOUX opened 7 years ago
La réponse est (comme toujours) probablement dans ton log geoserver...
tu es un dieu @landryb
2016-09-08 12:16:04,146 INFO [geoserver.wfs] -
Request: getServiceInfo
2016-09-08 12:16:04,162 INFO [geoserver.wfs] -
Request: getFeature
service = wfs
version = 1.0.0
baseUrl = https://testgeorchestra.mutu.local:8443/geoserver/
query[0]:
filter = [ id_parc = 350047000AS0310 ]
typeName[0] = {https://portail.sig.rennesmetropole.fr/ref_cad}app_cadastrapp_parcelle
outputFormat = application/json
resultType = results
2016-09-08 12:16:04,163 INFO [wfs.json] - about to encode JSON
2016-09-08 12:16:04,178 WARN [geotools.jdbc] - Error occurred closing connection
2016-09-08 12:16:04,178 ERROR [geoserver.ows] -
java.lang.RuntimeException: java.io.IOException
at org.geotools.data.store.ContentFeatureCollection.size(ContentFeatureCollection.java:259)
at org.geotools.feature.collection.DecoratingSimpleFeatureCollection.size(DecoratingSimpleFeatureCollection.java:113)
at org.geotools.data.crs.ReprojectFeatureResults.size(ReprojectFeatureResults.java:124)
at org.geoserver.wfs.CountExecutor.getCount(CountExecutor.java:45)
at org.geoserver.wfs.GetFeature$1.loadObject(GetFeature.java:636)
at $java.math.BigInteger$$EnhancerByCGLIB$$f5e5b2f.CGLIB$LOAD_PRIVATE_0(<generated>)
at $java.math.BigInteger$$EnhancerByCGLIB$$f5e5b2f.longValue(<generated>)
at org.geoserver.wfs.json.GeoJSONGetFeatureResponse.write(GeoJSONGetFeatureResponse.java:116)
at org.geoserver.wfs.WFSGetFeatureOutputFormat.write(WFSGetFeatureOutputFormat.java:196)
at org.geoserver.ows.Dispatcher.response(Dispatcher.java:996)
at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:279)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)
at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)
at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)
at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.geoserver.security.filter.GeoServerPreAuthenticationFilter.doFilter(GeoServerPreAuthenticationFilter.java:75)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:135)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:87)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:42)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:612)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:503)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException
at org.geotools.jdbc.JDBCDataStore.getAggregateValue(JDBCDataStore.java:1469)
at org.geotools.jdbc.JDBCDataStore.getCount(JDBCDataStore.java:1389)
at org.geotools.jdbc.JDBCFeatureSource.getCountInternal(JDBCFeatureSource.java:465)
at org.geotools.data.store.ContentFeatureSource.getCount(ContentFeatureSource.java:485)
at org.geotools.jdbc.JDBCFeatureStore.getCountInternal(JDBCFeatureStore.java:183)
at org.geotools.data.store.ContentFeatureSource.getCount(ContentFeatureSource.java:485)
at org.geotools.data.store.ContentFeatureCollection.size(ContentFeatureCollection.java:236)
... 92 more
Caused by: org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:283)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:209)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:209)
at org.geotools.jdbc.JDBCDataStore.getAggregateValue(JDBCDataStore.java:1449)
... 98 more
Caused by: java.net.SocketException: Connection reset
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:118)
at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at org.postgresql.core.PGStream.flush(PGStream.java:523)
at org.postgresql.core.v3.QueryExecutorImpl.sendSync(QueryExecutorImpl.java:1143)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:256)
... 104 more
A voir si c'est le serveur pgsql qui est saturé - voir ses logs, eventuellement le nb de connections maximum qu'il accepte, etc...
le pb persite ce matin sur test le pb c que un utilisateur en prod a rencontré ce même pb -> @catmorales ?
On va considérer que c'était un pb de perf de la PF de test. Je ferme.
Je me permet de rouvrir cette issue car nous rencontrons parfois ce message d'erreur à la toute première utilisation de cadastrapp le matin.
1 utilisateur vient de nous le faire remonter.
Possibilité de catcher ça pour enrober l’erreur et afficher qqch de plus « user friendly » ? Genre : service momentanément indisponible : réessayer dans qqs secondes après avoir rechargé le visualiseur ?
ou plutot regarder dans tes logs pour voir si c'est un timeout ou une erreur geoserver, et en fonction ajouter des indexes pour corriger les timeout ou augmenter les limites de timeout..
C'est effectivement mieux de corriger la cause, mais oui on doit pouvoir gérer le retour d'erreur pour mettre un message plus simple sans pour autant perdre le contenu.
Un utilisateur nous remonte un message d'erreur sur l'add-on après avoir fait une recherche par référence parcelle : java.lang.RuntimeException: java.io.IOException java.io.IOExceptionAn I/O error occured while sending to the backend. Connection reset
Mais dessous la parcelle apparaît bien listée. Sauf que si on veut zoomer dessus : on obtient le message d'information "Impossible de retrouver la géometrie, veuillez en sélectionner au moins une. Si c'est déjà le cas, ceci peut être dû à une incomplétude du fichier EDIGEO." qui indique qu'il ne trouve pas d'objet WFS et suppose (mal ici) que la parcelle graphique n'existe pas.
En regardant la requête de l'addon : https://portail-test.sig.rennesmetropole.fr/geoserver/wfs?_dc=1473329807383&request=getfeature&version=1.0.0&service=wfs&typename=ref_cad%3Aapp_cadastrapp_parcelle&outputFormat=application%2Fjson&cql_filter=id_parc%3D%27350047000AS0310%27
On obtient bien une erreur sur le GeoServer :
j'en déduis que le GeoServer n'arrive pas à founir l'objet / la couche en WFS. Maintenant : quelle peut être la cause de ça ? Latence accès à la base ?