Actually it does look like the commit for GEOT-6605 includes the fix for GEOT-6603. Not sure why I missed it before. ________________________________________ From: Ruff, Thomas <thomas.r...@saic.com> Sent: Monday, November 16, 2020 4:05:06 PM To: geotools-gt2-users@lists.sourceforge.net Subject: [Geotools-gt2-users] GEOT-6603 ImageMosaic JDBC Index fails when harvesting multiple granules using a SQL Server index
EXTERNAL EMAIL -- This message originates from outside of SAIC This ticket was resolved but unless I'm missing something there were no code changes. I think I'm seeing the same behavior when creating large numbers of postgis jdbc backed imagemosaic stores using the REST APIs. After creating a few hundred imagemosaic coverages I start seeing log entries about undisposed granules in the geoserver log that are noticed during garbage collection. Eventually geoserver stops responding but sometimes it recovers possibly due to Finalizer cleanup of catalogs during garbage collection cycles. I back-ported the fix for GEOT-6039 (#1930) and set the system property "gt2.mosaic.index.trace" for improved logging (below). I've reviewed the code committed for GEOT-6605 but it doesn't appear to address the issue identified by Marco in GEOT-6603. Does anyone know more about this issue and whether there is a fix? I need to patch a system running geotools 17.1/geoserver 2.9.1. 11/11 01:47:39,670 [host] ERROR [org.geotools.jdbc] (Finalizer) There's code using JDBC based datastore and not disposing them. This may lead to temporary loss of database connections. Please make sure all data access code calls DataStore.dispose() before freeing all references to it 11/11 01:47:39,670 [host] WARN [org.geotools.gce.imagemosaic.catalog] (Finalizer) This granule catalog was not properly dispose as it still points to:ServiceInfo description=Features from JDBCDataStore 11/11 01:47:39,670 [host] WARN [org.geotools.gce.imagemosaic.catalog] (Finalizer) The un-disposed granule catalog originated on this stack trace java.lang.Throwable at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.<init>(GTDataStoreGranuleCatalog.java:254) at org.geotools.gce.imagemosaic.catalog.GranuleCatalogFactory.createGranuleCatalog(GranuleCatalogFactory.java:140) at org.geotools.gce.imagemosaic.ImageMosaicReader.initReaderFromURL(ImageMosaicReader.java:609) at org.geotools.gce.imagemosaic.ImageMosaicReader.<init>(ImageMosaicReader.java:479) at org.geotools.gce.imagemosaic.ImageMosaicFormat.getReader(ImageMosaicFormat.java:472) at org.geotools.gce.imagemosaic.ImageMosaicFormat.getReader(ImageMosaicFormat.java:99) at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1441) at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1342) at org.geoserver.catalog.impl.CoverageInfoImpl.getGridCoverageReader(CoverageInfoImpl.java:164) 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.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:147) at com.sun.proxy.$Proxy39.getGridCoverageReader(Unknown Source) at org.geoserver.wms.capabilities.DimensionHelper.handleRasterLayerDimensions(DimensionHelper.java:176) at org.geoserver.wms.capabilities.Capabilities_1_3_0_Transformer$Capabilities_1_3_0_Translator.handleLayer(Capabilities_1_3_0_Transformer.java:968) at org.geoserver.wms.capabilities.Capabilities_1_3_0_Transformer$Capabilities_1_3_0_Translator.handleLayerGroup(Capabilities_1_3_0_Transformer.java:1223) at org.geoserver.wms.capabilities.Capabilities_1_3_0_Transformer$Capabilities_1_3_0_Translator.handleLayerGroups(Capabilities_1_3_0_Transformer.java:1096) at org.geoserver.wms.capabilities.Capabilities_1_3_0_Transformer$Capabilities_1_3_0_Translator.handleLayers(Capabilities_1_3_0_Transformer.java:709) at org.geoserver.wms.capabilities.Capabilities_1_3_0_Transformer$Capabilities_1_3_0_Translator.handleCapability(Capabilities_1_3_0_Transformer.java:467) at org.geoserver.wms.capabilities.Capabilities_1_3_0_Transformer$Capabilities_1_3_0_Translator.encode(Capabilities_1_3_0_Transformer.java:275) at org.geotools.xml.transform.TransformerBase$XMLReaderSupport.parse(TransformerBase.java:1026) at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485) at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:300) at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:133) at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:112) at org.geoserver.wms.capabilities.Capabilities_1_3_0_Response.write(Capabilities_1_3_0_Response.java:49) at org.geoserver.ows.Dispatcher.response(Dispatcher.java:991) at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:272) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:147) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:859) at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) Thanks, Tom ________________________________ This communication (including any attachments) may contain information that is proprietary, confidential or exempt from disclosure. If you are not the intended recipient, please note that further dissemination, distribution, use or copying of this communication is strictly prohibited. Anyone who received this message in error should notify the sender immediately by telephone or by return email and delete it from his or her computer. _______________________________________________ GeoTools-GT2-Users mailing list GeoTools-GT2-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users ________________________________ This communication (including any attachments) may contain information that is proprietary, confidential or exempt from disclosure. If you are not the intended recipient, please note that further dissemination, distribution, use or copying of this communication is strictly prohibited. Anyone who received this message in error should notify the sender immediately by telephone or by return email and delete it from his or her computer. _______________________________________________ GeoTools-GT2-Users mailing list GeoTools-GT2-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users