Hi, we are using a batch program to update GeoServer with the REST API. Every hour a couple of new GeoTIFFs are registered as new image mosaic layers, and old layers and coverage stores are deleted. This works well, but after a couple of days we get this exception while registering new GeoTIFFs, and GeoServer stops working properly: 08 Aug 13:50:05 ERROR [imagemosaic.ImageMosaicUtils] - Too many open files java.io.IOException: Too many open files (full stacktrace see below) Each image mosaic has only one GeoTIFF (only used for transparent background), and the Server had virtually no load while the error appeared, so the problem seems to be due to our updates. In the log output, you can also see that there still is a lock on some mosaic's shape file.
What can we do to release the lock? Will that solve our problem? Best regards, Udo This is our environment: Java 1.6.0_24 No native JAI Tomcat 6.0.18 GeoServer 2.0.2 OS: 32 bit Linux (CentOS 5.8) Here is a log output when we delete a layer / coverage store with the REST API: 08 Aug 13:50:04 INFO [catalog.rest] - DELETE layer WMS_MSG-RGB-natural_RGB-3-2-1_1208031115 08 Aug 13:50:04 INFO [gwc.GWCCleanser] - Deleting GWC cache for MET9_RGB-3-2-1_msg:WMS_MSG-RGB-natural_RGB-3-2-1_1208031115 08 Aug 13:50:04 INFO [file.FileBlobStore] - /mnt/eumetsat/data/data_dir/gwc/MET9_RGB-3-2-1_msg_WMS_MSG-RGB-natural_RGB-3-2-1_1208031115 does not exist or is not writable 08 Aug 13:50:04 INFO [gwc.GWCCleanser] - GWC cache for MET9_RGB-3-2-1_msg:WMS_MSG-RGB-natural_RGB-3-2-1_1208031115 deleted successfully 08 Aug 13:50:04 INFO [catalog.rest] - DELETE coverage WMS_MSG-RGB-natural_RGB-3-2-1_1208031115,WMS_MSG-RGB-natural_RGB-3-2-1_1208031115 08 Aug 13:50:04 INFO [catalog.rest] - DELETE coverage store MET9_RGB-3-2-1_msg,WMS_MSG-RGB-natural_RGB-3-2-1_1208031115 Here is a log output when we register a new GeoTIFF with the REST API: 08 Aug 13:50:04 INFO [catalog.rest] - PUT file, mimetype: text/plain 08 Aug 13:50:04 INFO [catalog.rest] - Auto-configuring coverage store: WMS_MSG-RGB-natural_RGB-3-2-1_1208081030 08 Aug 13:50:04 INFO [org.geoserver] - Loaded store 'null', enabled 08 Aug 13:50:04 INFO [catalog.rest] - PUT coverage store MET9_RGB-3-2-1_msg,WMS_MSG-RGB-natural_RGB-3-2-1_1208081030 08 Aug 13:50:04 INFO [org.geoserver] - Loaded coverage 'WMS_MSG-RGB-natural_RGB-3-2-1_1208081030', enabled 08 Aug 13:50:04 INFO [catalog.rest] - PUT coverage WMS_MSG-RGB-natural_RGB-3-2-1_1208081030,WMS_MSG-RGB-natural_RGB-3-2-1_1208081030 Here is a log output with the error: 08 Aug 13:50:04 INFO [catalog.rest] - PUT file, mimetype: text/plain 08 Aug 13:50:04 INFO [catalog.rest] - Auto-configuring coverage store: WMS_MSG-RGB-natural_RGB-3-2-1_1208081115 08 Aug 13:50:05 ERROR [imagemosaic.ImageMosaicUtils] - Too many open files java.io.IOException: Too many open files at java.io.UnixFileSystem.createFileExclusively(Native Method) at java.io.File.checkAndCreate(File.java:1704) at java.io.File.createTempFile(File.java:1792) at java.io.File.createTempFile(File.java:1828) at org.geotools.data.shapefile.ShpFiles.getStorageFile(ShpFiles.java:943) at org.geotools.data.shapefile.ShapefileFeatureWriter.<init>(ShapefileFeatureWriter.java:118) at org.geotools.data.shapefile.ShapefileDataStore.createFeatureWriter(ShapefileDataStore.java:614) at org.geotools.data.AbstractDataStore.getFeatureWriter(AbstractDataStore.java:486) at org.geotools.data.AbstractDataStore.getFeatureWriter(AbstractDataStore.java:525) at org.geotools.gce.imagemosaic.IndexBuilder$MosaicDirectoryWalker.handleFile(IndexBuilder.java:729) at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:367) at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:335) at org.geotools.gce.imagemosaic.IndexBuilder$MosaicDirectoryWalker.<init>(IndexBuilder.java:880) at org.geotools.gce.imagemosaic.IndexBuilder.run(IndexBuilder.java:1099) at org.geotools.gce.imagemosaic.ImageMosaicUtils.createMosaic(ImageMosaicUtils.java:314) at org.geotools.gce.imagemosaic.ImageMosaicUtils.checkSource(ImageMosaicUtils.java:416) at org.geotools.gce.imagemosaic.ImageMosaicReader.<init>(ImageMosaicReader.java:171) at org.geotools.gce.imagemosaic.ImageMosaicFormat.getReader(ImageMosaicFormat.java:272) at org.geotools.gce.imagemosaic.ImageMosaicFormat.getReader(ImageMosaicFormat.java:186) at org.geotools.gce.imagemosaic.ImageMosaicFormat.getReader(ImageMosaicFormat.java:87) at org.geoserver.catalog.rest.CoverageStoreFileResource.handlePut(CoverageStoreFileResource.java:132) at org.restlet.Finder.handle(Finder.java:298) at org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38) at org.restlet.Filter.doHandle(Filter.java:105) at org.restlet.Filter.handle(Filter.java:134) at org.restlet.Router.handle(Router.java:444) at com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129) at org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:79) 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:875) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:521) at javax.servlet.http.HttpServlet.service(HttpServlet.java:640) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149) at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98) 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:73) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183) 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:47) 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:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:662) 08 Aug 13:50:05 ERROR [data.shapefile] - The following locker still has a lock� read on file:/mnt/eumetsat/data/work/MET9_RGB-3-2-1_msg/WMS_MSG-RGB-natural_RGB-3-2-1_1208081115.tiff/WMS_MSG-RGB-natural_RGB-3-2-1_1208081115.tiff.shp by org.geotools.data.shapefile.shp.ShapefileReader it was created with the following stack trace org.geotools.data.shapefile.ShpFilesLocker$Trace: Locking file:/mnt/eumetsat/data/work/MET9_RGB-3-2-1_msg/WMS_MSG-RGB-natural_RGB-3-2-1_1208081115.tiff/WMS_MSG-RGB-natural_RGB-3-2-1_1208081115.tiff.shp for read by org.geotools.data.shapefile.shp.ShapefileReader in thread http-80-32 at org.geotools.data.shapefile.ShpFilesLocker.setTraceException(ShpFilesLocker.java:72) at org.geotools.data.shapefile.ShpFilesLocker.<init>(ShpFilesLocker.java:36) at org.geotools.data.shapefile.ShpFiles.acquireRead(ShpFiles.java:365) at org.geotools.data.shapefile.ShpFiles.getReadChannel(ShpFiles.java:813) at org.geotools.data.shapefile.shp.ShapefileReader.<init>(ShapefileReader.java:213) at org.geotools.data.shapefile.ShapefileDataStore.openShapeReader(ShapefileDataStore.java:453) at org.geotools.data.shapefile.ShapefileDataStore.getAttributesReader(ShapefileDataStore.java:439) at org.geotools.data.shapefile.ShapefileDataStore.createFeatureWriter(ShapefileDataStore.java:600) at org.geotools.data.AbstractDataStore.getFeatureWriter(AbstractDataStore.java:486) at org.geotools.data.AbstractDataStore.getFeatureWriter(AbstractDataStore.java:525) at org.geotools.gce.imagemosaic.IndexBuilder$MosaicDirectoryWalker.handleFile(IndexBuilder.java:729) at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:367) at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:335) at org.geotools.gce.imagemosaic.IndexBuilder$MosaicDirectoryWalker.<init>(IndexBuilder.java:880) at org.geotools.gce.imagemosaic.IndexBuilder.run(IndexBuilder.java:1099) at org.geotools.gce.imagemosaic.ImageMosaicUtils.createMosaic(ImageMosaicUtils.java:314) at org.geotools.gce.imagemosaic.ImageMosaicUtils.checkSource(ImageMosaicUtils.java:416) at org.geotools.gce.imagemosaic.ImageMosaicReader.<init>(ImageMosaicReader.java:171) at org.geotools.gce.imagemosaic.ImageMosaicFormat.getReader(ImageMosaicFormat.java:272) at org.geotools.gce.imagemosaic.ImageMosaicFormat.getReader(ImageMosaicFormat.java:186) at org.geotools.gce.imagemosaic.ImageMosaicFormat.getReader(ImageMosaicFormat.java:87) at org.geoserver.catalog.rest.CoverageStoreFileResource.handlePut(CoverageStoreFileResource.java:132) at org.restlet.Finder.handle(Finder.java:298) at org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38) at org.restlet.Filter.doHandle(Filter.java:105) at org.restlet.Filter.handle(Filter.java:134) at org.restlet.Router.handle(Router.java:444) at com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129) at org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:79) 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:875) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:521) at javax.servlet.http.HttpServlet.service(HttpServlet.java:640) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149) at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98) 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:73) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183) 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:47) 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:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:662) ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Geoserver-users mailing list Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users