Chris Holmes ha scritto:
Finally we have been seeing an increased number of problems with WFS requests. We utilize these to bring in data about things like bus stops, rail stations, etc. in order to populate popup windows. These only get called at close-in zoom levels to minimize the actual numbers of features requested. Initially this seemed to work reasonably well but now we are seeing, upon the initial zoom to the level where the WFS request is made, error messages popping up in the browser saying "Unhandled request return Internal Server Error". This is accompanied by 503 errors in catalina.out (attached).
Most of the stack traces I can see have messages like:
* Caused by: java.net.SocketException: Connection reset
* ClientAbortException: java.net.SocketException: Broken pipe
These are the client closing the connection before GeoServer had
an occasion to write back to it (WMS requests). We should avoid
dumping the full stack trace at the WARN level thought...
The there is this one which looks scary:
java.lang.NoClassDefFoundError: Could not initialize class net.opengis.wfs.WfsPackage$Literals
at net.opengis.wfs.impl.GetFeatureTypeImpl.eStaticClass(GetFeatureTypeImpl.java:193)
at org.eclipse.emf.ecore.impl.EObjectImpl.eClass(EObjectImpl.java:210)
at org.geotools.xml.EMFUtils.feature(EMFUtils.java:111)
at org.geotools.xml.EMFUtils.has(EMFUtils.java:30)
at org.geoserver.wfs.kvp.WFSKvpRequestReader.read(WFSKvpRequestReader.java:80)
at org.geoserver.wfs.kvp.GetFeatureKvpRequestReader.read(GetFeatureKvpRequestReader.java:54)
Eek... it seems one jar is missing or incomplete? Justin?
Then I see this one repeated various time, and it looks very scary:
17 Sep 14:35:08 WARN [geoserver.ows] -
java.lang.OutOfMemoryError: PermGen space
This one triggers in Eclipse too due to the permanent generation not being big enough to host all of the classes GeoServer is using.
Some workarounds for this one here:
http://my.opera.com/karmazilla/blog/2007/03/13/good-riddance-permgen-outofmemoryerror
The usual one is to add -XX:MaxPermSize=128m to the JVM options,
never tried the others.
The error you mentions is even more strange... look here:
java.io.IOException: Server returned HTTP response code: 503 for URL: http://localhost/geoserver/wfs?typename=trimet%3Az_parkride&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&SRS=EPSG%3A2913&BBOX=7671031%2C699234%2C7679343%2C703618
org.codehaus.groovy.runtime.InvokerInvocationException: java.io.IOException: Server returned HTTP response code: 503 for URL: http://localhost/geoserver/wfs?typename=trimet%3Az_parkride&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&SRS=EPSG%3A2913&BBOX=7671031%2C699234%2C7679343%2C703618
at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:77)
at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:694)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:616)
at org.codehaus.groovy.grails.commons.metaclass.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:742)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:506)
at groovy.lang.Closure.call(Closure.java:209)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleAction(SimpleGrailsControllerHelper.java:474)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:288)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:156)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:88)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45)
at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:241)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
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:78)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
I guess you have a web frontend done in grails running in that tomcat?
Anyways, not GeoServer related, but may explain permgen exhaustion, you should be able to get around it by increasing the permgen size.
Going forward, I see this one:
Caused by: org.geotools.data.DataSourceException: An exception occurred while parsing WKB data
at org.geotools.data.postgis.attributeio.PgWKBAttributeIO.WKB2Geometry(PgWKBAttributeIO.java:113)
at org.geotools.data.postgis.attributeio.PgWKBAttributeIO.read(PgWKBAttributeIO.java:184)
at org.geotools.data.jdbc.QueryData.read(QueryData.java:212)
at org.geotools.data.jdbc.JDBCFeatureReader.readFeature(JDBCFeatureReader.java:107)
at org.geotools.data.jdbc.JDBCFeatureReader.next(JDBCFeatureReader.java:88)
at org.geotools.data.store.FeatureReaderIterator.next(FeatureReaderIterator.java:64)
... 54 more
Caused by: java.lang.IllegalArgumentException: points must form a closed linestring
at com.vividsolutions.jts.geom.LinearRing.validateConstruction(LinearRing.java:95)
at com.vividsolutions.jts.geom.LinearRing.<init>(LinearRing.java:90)
at com.vividsolutions.jts.geom.GeometryFactory.createLinearRing(GeometryFactory.java:324)
at com.vividsolutions.jts.io.WKBReader.readLinearRing(WKBReader.java:217)
at com.vividsolutions.jts.io.WKBReader.readPolygon(WKBReader.java:227)
at com.vividsolutions.jts.io.WKBReader.readGeometry(WKBReader.java:173)
at com.vividsolutions.jts.io.WKBReader.readMultiPolygon(WKBReader.java:265)
at com.vividsolutions.jts.io.WKBReader.readGeometry(WKBReader.java:179)
at com.vividsolutions.jts.io.WKBReader.read(WKBReader.java:137)
at com.vividsolutions.jts.io.WKBReader.read(WKBReader.java:118)
at org.geotools.data.postgis.attributeio.PgWKBAttributeIO.WKB2Geometry(PgWKBAttributeIO.java:111)
... 59 more
Ah, here we have an invalid polygon in your db, this may explain some
rendering issue (this polygon won't be rendered).
Going forward, we have this one:
Caused by: java.lang.IllegalArgumentException: The specified dimensional parameter is non-positive.
at javax.media.jai.ImageLayout.setHeight(ImageLayout.java:447)
at com.sun.media.jai.opimage.FilteredSubsampleOpImage.layoutHelper(FilteredSubsampleOpImage.java:424)
at com.sun.media.jai.opimage.FilteredSubsampleOpImage.<init>(FilteredSubsampleOpImage.java:459)
at com.sun.media.jai.opimage.FilteredSubsampleRIF.create(FilteredSubsampleRIF.java:74)
This is a request to render a raster... hum, can we have a look at it?
That's all folks
Cheers
Andrea