Hello list.
I'm using Geoserver 1.5.4 on a Linux box (Ubuntu 7.10), JRE 1.6 (Sun), Tomcat 5.5. On the client side, I have an OpenLayers client.
Sometime I see in my map a missing tile (it's white). Digging into the log (level FINE), I see this (one for every missing tile):
Nov 20, 2007 7:06:06 PM org.vfny.geoserver.servlets.AbstractService doService
FINE: Error writing out I/O error writing PNG file!
javax.imageio.IIOException: I/O error writing PNG file!
at com.sun.imageio.plugins.png.PNGImageWriter.write(PNGImageWriter.java:1135)
at org.geotools.image.ImageWorker.writePNG(ImageWorker.java:2715)
at org.vfny.geoserver.wms.responses.map.png.PNGMapProducer.formatImageOutputStream(PNGMapProducer.java:70)
at org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.writeTo(DefaultRasterMapProducer.java:126)
at org.vfny.geoserver.wms.responses.GetMapResponse.writeTo(GetMapResponse.java:495)
at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:592)
at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:315)
at org.geoserver.request.Dispatcher.dispatch(Dispatcher.java:192)
at org.geoserver.request.Dispatcher.handleRequestInternal(Dispatcher.java:52)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java
:44)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:347)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:103)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
Caused by: ClientAbortException: java.net.SocketException: Broken pipe
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:327)
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)
at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
at org.vfny.geoserver.util.PartialBufferedOutputStream2.flush(PartialBufferedOutputStream2.java:185)
at javax.imageio.stream.MemoryCacheImageOutputStream.flushBefore(MemoryCacheImageOutputStream.java:177)
at com.sun.imageio.plugins.png.IDATOutputStream.finishChunk(PNGImageWriter.java:177)
at com.sun.imageio.plugins.png.IDATOutputStream.finish(PNGImageWriter.java:234)
at com.sun.imageio.plugins.png.PNGImageWriter.write_IDAT(PNGImageWriter.java:913)
at com.sun.imageio.plugins.png.PNGImageWriter.write(PNGImageWriter.java:1125)
... 33 more
Caused by: java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:747)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)
at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:305)
at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:996)
at org.apache.coyote.Response.action(Response.java:183)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:322)
... 41 more
Nov 20, 2007 7:06:06 PM org.vfny.geoserver.wms.responses.GetMapResponse abort
FINE: asking delegate for aborting the process
Nov 20, 2007 7:06:06 PM org.vfny.geoserver.servlets.PartialBufferStrategy2 abort
INFO: OutputStream was successfully aborted.
It seems the client closes the connection, but it's a nonsense: why OpenLayers should do that? I mean: 99% of tiles are downloaded correctly. And when I get a missing tile, I try to zoom in then out, and the missing tile gets downloaded, so it seems a random event.
Does anyone have any clue?
Thanks in advance for any feedback.
Cheers,
Fabio Da Soghe