Rather foolishly I yesterday renamed a reference to an SLD in the XML file but forgot to rename the SLD itself.
GeoServer 2.5.2
To replicate this issue, just rename a SLD file using your file manager of choice (I know that’s not best practice, but I’m going to be distributing the SLD’s shortly and wanted to fix a typo).
That SLD should be used as part of a layer that’s in a LayerGroup that GWC uses for TMS requests.
The result of this is that everything works, except GWC won’t respond to any tile requests once the a request for the layergroup with the missing SLD has been made (they’ll work until then).
So the following request fails with a 503 (Service unavailable):
http://compass/geoserver/gwc/service/tms/1.0.0/z_OS_Vector_Basemap/11/1196/751.png8
And that’s for a layergroup that doesn’t use that SLD file at all.
GWC itself was running fine and responding to the home-page query just fine (the one with "Runtime statistics on it).
WMS/WFS getcapabilities are fine (though a WMS request for a layergroup with that bad layer in will obviously fail).
==============
So these issues are raised:
-
Is it supposed to “infect” other GWC requests when this issue is triggered (GWC responds fine until the bad layergroup is called)?
-
Is it supposed to fail this badly? The tile requested was cached by GWC and wouldn’t need re-rendering - it could just have served it with no need of the SLD. I can understand it failing for un-rendered tiles, but this is different. (in theory this seems like scope for optimisation - why check for that stuff in the first place if the file exists?)
The error in the logs is:
> 2014-08-14 10:41:58,399 ERROR [geoserver.ows] -
> java.io.IOException: No such file: OS Strategi - Polygon - Lakes - Neutral.sld
> at org.geoserver.catalog.ResourcePool.getStyle(ResourcePool.java:1609)
> at org.geoserver.catalog.impl.StyleInfoImpl.getStyle(StyleInfoImpl.java:84)
> at org.geoserver.wms.map.GetMapKvpRequestReader.read(GetMapKvpRequestReader.java:340)
> at org.geoserver.wms.map.GetMapKvpRequestReader.read(GetMapKvpRequestReader.java:80)
> at org.geoserver.ows.Dispatcher.parseRequestKVP(Dispatcher.java:1428)
> at org.geoserver.ows.Dispatcher.dispatch(Dispatcher.java:626)
> at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:263)
> at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
> at org.geoserver.gwc.GWC.dispatchOwsRequest(GWC.java:1162)
> at org.geoserver.gwc.layer.GeoServerTileLayer.dispatchGetMap(GeoServerTileLayer.java:572)
> at org.geoserver.gwc.layer.GeoServerTileLayer.getMetatilingReponse(GeoServerTileLayer.java:517)
> at org.geoserver.gwc.layer.GeoServerTileLayer.getTile(GeoServerTileLayer.java:466)
> at org.geowebcache.GeoWebCacheDispatcher.handleServiceRequest(GeoWebCacheDispatcher.java:363)
> at org.geowebcache.GeoWebCacheDispatcher.handleRequestInternal(GeoWebCacheDispatcher.java:254)
> at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
> at org.geoserver.gwc.dispatch.GwcServiceProxy.dispatch(GwcServiceProxy.java:97)
> at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:790)
> at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:272)
> 2014-08-14 10:41:58,414 ERROR [geowebcache.GeoWebCacheDispatcher] - Problem communicating with GeoServer http://compass/geoserver/gwc/service/tms/1.0.0/z_OS_Vector_Basemap_Neutral/12/2394/1298.png8
|