webbukkit/dynmap — Issue #568: Two Issues on .30 update. Error and CPU% spike
Author: LigerXT5
Created: 2012-01-26 23:44:28+00:00
State: open

I recently updated to Dynmap .30 and noticed a couple issues.
When a user accesses the dynmap via the url, a couple errors appear in the server log.

2012-01-26 14:56:07 [SEVERE] [dynmap] Exception occured:
java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: -326655
at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at org.dynmap.MapManager$FullWorldRenderState.run(MapManager.java:552)
at org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1.run(MapManager.java:177)
at org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$2.run(MapManager.java:193)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ArrayIndexOutOfBoundsException: -326655
at org.dynmap.hdmap.TexturePack.biomeLookup(TexturePack.java:1397)
at org.dynmap.hdmap.TexturePack.readColor(TexturePack.java:1371)
at org.dynmap.hdmap.TexturePackHDShader$ShaderState.processBlock(TexturePackHDShader.java:153)
at org.dynmap.hdmap.IsoHDPerspective$OurPerspectiveState.visit_block(IsoHDPerspective.java:611)
at org.dynmap.hdmap.IsoHDPerspective$OurPerspectiveState.raytrace(IsoHDPerspective.java:632)
at org.dynmap.hdmap.IsoHDPerspective$OurPerspectiveState.access$400(IsoHDPerspective.java:92)
at org.dynmap.hdmap.IsoHDPerspective.render(IsoHDPerspective.java:1107)
at org.dynmap.hdmap.HDMapTile.render(HDMapTile.java:96)
at org.dynmap.MapManager$FullWorldRenderState.processTile(MapManager.java:625)
at org.dynmap.MapManager$FullWorldRenderState.access$800(MapManager.java:210)
at org.dynmap.MapManager$FullWorldRenderState$1.call(MapManager.java:541)
at org.dynmap.MapManager$FullWorldRenderState$1.call(MapManager.java:539)
... 7 more
2012-01-26 15:12:05 [SEVERE] [dynmap] Unable read the file '/home/hgs883/plugins/dynmap/web/js/leaflet.js' or respond to the HTTP-request.
org.eclipse.jetty.io.EofException
at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:919)
at org.eclipse.jetty.http.AbstractGenerator.blockForOutput(AbstractGenerator.java:536)
at org.eclipse.jetty.http.AbstractGenerator.flush(AbstractGenerator.java:456)
at org.eclipse.jetty.server.HttpOutput.flush(HttpOutput.java:90)
at org.eclipse.jetty.server.HttpConnection$Output.flush(HttpConnection.java:1001)
at org.eclipse.jetty.server.HttpConnection$Output.sendContent(HttpConnection.java:1108)
at org.eclipse.jetty.server.handler.ResourceHandler.handle(ResourceHandler.java:414)
at org.dynmap.servlet.FileLockResourceHandler.handle(FileLockResourceHandler.java:33)
at org.dynmap.web.HandlerRouter.handle(HandlerRouter.java:51)
at org.dynmap.web.FilterHandler$1.doFilter(FilterHandler.java:56)
at org.dynmap.web.CustomHeaderFilter.doFilter(CustomHeaderFilter.java:32)
at org.dynmap.web.FilterHandler$1.doFilter(FilterHandler.java:54)
at org.dynmap.web.BanIPFilter.doFilter(BanIPFilter.java:33)
at org.dynmap.web.FilterHandler$1.doFilter(FilterHandler.java:54)
at org.dynmap.web.FilterHandler.handle(FilterHandler.java:60)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
at org.eclipse.jetty.server.Server.handle(Server.java:350)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:442)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:910)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:565)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:217)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:46)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:545)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:43)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(Unknown Source)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
at sun.nio.ch.IOUtil.write(Unknown Source)
at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
at org.eclipse.jetty.io.nio.ChannelEndPoint.flush(ChannelEndPoint.java:230)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.flush(SelectChannelEndPoint.java:292)
at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:858)
... 26 more

After doing some checking, I noticed the server is using around 100% CPU. I purged the render queue, still have the issue. Currently no one on while checking this. /dynmap stats shows clear and all 0.

Thoughts?