We have an interesting scenario with one of our layers being served via GeoServer 2.2.3. The data is stored in a PostGIS DB. Certain GetMap requests were returning empty tiles, but only at certain zoom levels. In the end, we discovered a work-around that is more confusing than enlightening. The original SLD contained some simple rules, each of which had a filter and a symbolizer. The symbolizer simply defined a fill color. By modifying the symbolizer to include a stroke value as well as the fill color the issue was resolved. At no point during debugging this did the GeoServer or Tomcat logs show any kind of error. My question is, WHY!!!
Here is a tile request using the new SLD that returns what one would expect: http://mapservices.nrel.gov/wms?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&LAYERS=re_atlas%3Aus_solar_all_120512&STYLES=reatlas_us_tilt_total_old&FORMAT=image%2Fpng&TRANSPARENT=true&HEIGHT=256&WIDTH=256&SRS=EPSG%3A3857&BBOX=-15028131.257091932,5009377.085697316,-10018754.171394622,10018754.171394628
And here is the same tile request with the original stroke-less SLD specified... notice that the corner of Washington state is missing from the response to this one: http://mapservices.nrel.gov/wms?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&LAYERS=re_atlas%3Aus_solar_all_120512&STYLES=reatlas_us_tilt_total&FORMAT=image%2Fpng&TRANSPARENT=true&HEIGHT=256&WIDTH=256&SRS=EPSG%3A3857&BBOX=-15028131.257091932,5009377.085697316,-10018754.171394622,10018754.171394628
Here are some additional tidbits:
- All GetMap requests in the layer's native 4326 was always succeeding perfectly, regardless of zoom
- The data is a simple grid covering the US, incl. Alaska and Hawaii
- Zoom levels 0,1,2 were at fault, all closer zooms were fine. Of course the GetMap request doesn't know anything about zoom levels, but this essentially expresses the fact that the tile was being generated for a bbox of a greater extent.
- The missing tiles were basically the upper half of the continental US. Alaska and Hawaii always showed up. When zoomed all the way out to a global extent, the entire continental US was blank. Again Alaska and Hawaii just fine.
- Even a super simple SLD (no filters, just a single symbolizer to paint all polygons) would exhibit the same strange behavior until a stroke component is added in