EDIT: Figured it out. Didn't know I had to use Minecraft v1.4.2 with Forge v6.0.1: DynmapForge v1.2 instead of the Minecraft v1.4.5 with Forge v6.4.1: DynmapForge v1.2.
Hello all! I'm having a little issue and not entirely sure why. I've skimmed through this thread and haven't seen it specifically yet, and I'm no computer guru by far. I've recently got interested in FTB. Well I liked Amidst. Dynmap is the ONLY thing that I've heard of that would let me essentially do the same thing (view the biomes in a multiplayer map and then use that seed for a single-player, or just simply play on the multiplayer server by myself).
So I dl'd the recommended build for forge. I extracted the files, then took the file labeled "dynmap" and threw it in the "FTB-Beta-A" folder like I've seen/heard to do. I went into the "mods" folder that was extracted from the dl, and put the zip file into the "mods" folder of the FTB server. When I run the server everything seems to load fine until the last second, in which I get the following error.
---- Minecraft Crash Report ----
// Ooh. Shiny.
Time: 12/29/12 6:41 PM
Description: Exception in server tick loop
cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: org/dynmap/forge/DynmapPlugin$WorldUpdateTracker
at cpw.mods.fml.common.LoadController.transition(LoadController.java:117)
at cpw.mods.fml.common.Loader.serverStarted(Loader.java:701)
at cpw.mods.fml.common.FMLCommonHandler.handleServerStarted(FMLCommonHandler.java:311)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:456)
at fp.run(SourceFile:818)
Caused by: java.lang.NoClassDefFoundError: org/dynmap/forge/DynmapPlugin$WorldUpdateTracker
at org.dynmap.forge.Proxy.startServer(Proxy.java:12)
at org.dynmap.forge.mod_Dynmap.serverStarted(mod_Dynmap.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:440)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
at com.google.common.eventbus.EventBus.post(EventBus.java:268)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:140)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
at com.google.common.eventbus.EventBus.post(EventBus.java:268)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:83)
at cpw.mods.fml.common.Loader.serverStarted(Loader.java:700)
... 3 more
Caused by: java.lang.ClassNotFoundException: org.dynmap.forge.DynmapPlugin$WorldUpdateTracker
at cpw.mods.fml.relauncher.RelaunchClassLoader.findClass(RelaunchClassLoader.java:141)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 30 more
Caused by: java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at cpw.mods.fml.relauncher.RelaunchClassLoader.findClass(RelaunchClassLoader.java:134)
... 32 more
Relevant Details:
- Minecraft Version: 1.4.2
- Operating System: Windows XP (x86) version 5.1
- Java Version: 1.7.0_10, Oracle Corporation
- Java VM Version: Java HotSpotâ„¢ Client VM (mixed mode), Oracle Corporation
- Memory: 463164224 bytes (441 MB) / 519110656 bytes (495 MB) up to 1037959168 bytes (989 MB)
- JVM Flags: 2 total; -Xms512M -Xmx1G
- AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
- FML: ~ERROR~ NullPointerException: null
- Is Modded: Definitely; 'forge,fml'
- Profiler Position: N/A (disabled)
- Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
- Player Count: 0 / 25; []
- World FTB-Beta-A Entities: 0 total; []
- World FTB-Beta-A Players: 0 total; []
- World FTB-Beta-A Chunk Stats: ServerChunkCache: 0 Drop: 0
- Type: Dedicated Server
I know my description is a little long, and I'm probably missing something simple and small, but alas, help is needed. So what am I doing wrong here? Thanks in advance for the help!!
I opened a ticket on Github for this; sorry if I'm being redundant, just wondering if anyone else has seen anything similar.
After some searching (using NoLagg's examiner) I've found that JsonFileClientUpdateComponent has been occasionally freezing the main thread, causing the server to report "Can't keep up!" even when the server is completely empty. Leaving the server running idle overnight and completely empty has shown that this is occurring once every 30 minutes to 2 hours.
Here's a piece of my log file, with the server online and idle overnight:
I had been trying to catch one of these freezes during an examiner capture for a while. As you can see from the log, I finally managed to do so. That exam is linked below.
The included exam log shows that around tick 17000, JsonFileClientUpdateComponent took over 2000ms to complete one tick. Not sure whether it's being caused by something in the plugin or poor disk performance on the host (my KVM host has had to disable virtual drive access for my instance and give me direct drive access, so this could be from the plugin waiting for disk access so it can write to the json file).
I'm not sure if it's possible, but if this is in fact just waiting for disk access, can JSON writes possibly be done in another thread? That way long write times wouldn't freeze the main thread. Just an idea!
Ive been using this mod for bukkit for a long time now. My friends wanted to try this feed the beast server set up so Ive been messing around with that. And for some reason I am having a heck of a time getting dynmap to work right.
Its not updating the map automatically, meaning when I first make a new world, just the area around spawn is mapped (though some chunks arent on the map) and when I move away nothing new gets mapped. I can run a full render, but it takes forever on the Surface (I dont remember it taking that long on bukkit). Also when I ran just the flat map full render a couple times not only did that seem to take longer or maybe even stop working, and the clock at the top went into a loop of like 3 seconds.
As im writing this im doing the first full render of a newly made world, and every update its taking longer. Surface times are at 330 msec/tile and 137 msec per render, and each update adds a few more msecs to that.
Not really sure whats causing this, and since there arent any other posts about it, its not a widespread problem. Everything is up to date, using the 1.3 alpha 2 version of dynmap.
Hey Mike, Using 1.3 Alpha 2, on my server and loving it for the most part. Than ks so much for fixing the nether rendering.
One small request? In the update text for a fullrender, would it be possible to have it show a percentage as well as the number of tiles rendered? It would be nice to have an estimate of how much is remaining.
Hey Mike, Using 1.3 Alpha 2, on my server and loving it for the most part. Than ks so much for fixing the nether rendering.
One small request? In the update text for a fullrender, would it be possible to have it show a percentage as well as the number of tiles rendered? It would be nice to have an estimate of how much is remaining.
Thanks.
Tricky part with percentage is knowing the full chunk population - I need to see if there is a safe way to scan see all the chunks that exist cheaply, short of loading all of them...
I have some problems viewing my map. I get this on the website:
Directory: /tiles/ 4096 bytes Dec 20, 2012 8:57:09 PM
If I go into /tiles/ then /faces/ then e.g. /32x32/, theres pictures of 13 users which I have never seen before. It's like I'm getting info from another server. If I'm not mistaken, this worked fine before 1.4.6. It might be because I'm renting a server and not hosting myself, but I have no idea why that would be the case. Every server has its own IP.
(Btw, you can forget our previous chat. Everything got fixed when I changed server provider etc)
Edit: Cant access the website now.
Edit 2: I get this when starting the server:
28.12 13:07:06 [Server] SEVERE [dynmap] Failed to start WebServer on address 0.0.0.0:8123 : Address already in use
This means someone else is already on that port - a lot of folks use dynmap, so its likely that if you are on a hosted server, another MC is using the port already. Just reassign the webserver port setting in configuration.txt to another port number: you MAY also need to have your hosting folks open the port for you, depending on how they handle firewalling.
I moved my server to another server without the tiles folder (too big), the resources of the new server are shared with other games. I used the fullrender command, but the rendering takes more than one day and the players of the other games then got high pings.
Because a fullrender always starts from the beginning, is there a way to do a fullrender who starts where the previous half-done fullrender stopped (stopped via cancelrender) ?
I'm running the Minecraft server with McMyAdmin (I can schedule the renders).
I tried the updaterender, but it renders/updates only tiles where blocs were moved/broken/etc
Btw, your plugin is an awesome tool
Updaterender is the best option - but you need to start it at a point that hasn't been rendered yet. Basically, its the same as fullrender except that it stops rendering in a given direction when it hits tiles that, when rendered, don't change. So, if you start it from a point that is in an area that is unrendered, it will 'flood fill' (like a paint program might) until it hits the edges or the world OR tiles that are already correctly rendered.
Strange that you switched from a .zip to a .jar
for the mod itself.
EDIT : You might want to change the directory structure in the zip or change the installation instructions
Should the "dynmap.jar" not be placed in /mods/ in the forge installation ?
Edit 2 : downgrading to alpha 1 again, i cannot get the alpha 2 version to run at all,
no errors and no problems in the log. it is just not loading = no commands, and the webpage just
shows a blackpage.
Edit 3 : hmm now the server wont run, removing it, waiting for a full release.
Error : http://pastebin.com/A9LuNm0c
Install is as mentioned in the OP - just extract the ZIP in the base directory for the server: it will put the mod ZIP in 'mods' and add/update the needed files under the dynmap/ directory. EVERYTHING from the ZIP is needed - both for initial installs and for updates. The configuration files are not replaced, so nothing will be lost by doing this. With Forge, you will also need to zap the older mods/dynmap-*.zip from the mods directory to avoid having duplicate (and obsolete) code running.
I opened a ticket on Github for this; sorry if I'm being redundant, just wondering if anyone else has seen anything similar.
After some searching (using NoLagg's examiner) I've found that JsonFileClientUpdateComponent has been occasionally freezing the main thread, causing the server to report "Can't keep up!" even when the server is completely empty. Leaving the server running idle overnight and completely empty has shown that this is occurring once every 30 minutes to 2 hours.
Here's a piece of my log file, with the server online and idle overnight:
I had been trying to catch one of these freezes during an examiner capture for a while. As you can see from the log, I finally managed to do so. That exam is linked below.
The included exam log shows that around tick 17000, JsonFileClientUpdateComponent took over 2000ms to complete one tick. Not sure whether it's being caused by something in the plugin or poor disk performance on the host (my KVM host has had to disable virtual drive access for my instance and give me direct drive access, so this could be from the plugin waiting for disk access so it can write to the json file).
I'm not sure if it's possible, but if this is in fact just waiting for disk access, can JSON writes possibly be done in another thread? That way long write times wouldn't freeze the main thread. Just an idea!
All the disk I/O for JSONFileUpdateComponent is done 'off thread', so it cannot be the source of that. It does do calls to permissions and the like, so any issue with those calls lagging would impact us. What is done on-thread is what has to be (since the MC and bukkit APIs are almost universally unsafe to use from off the server thresd). I'll give the examine a look.
Would it be possible to put this on the web server i currently host my website on instead of adding a webserver to my main machine?
It's been done by folks, but isn't formally supported (mostly because its a huge pain to talk folks through that don't know enough about running web servers to make it work ). Basically, what folks will do is configure Dynmap for JSON file mode (no internal server, everything done via generated files in the 'webpath' and 'tilespath' directory trees), and they then implement a periodic synchronization process for those trees to a remote web server - running rsync every minute or few minutes, whatever. Basically, our tree kept in sync with a copy on the web server. From there, its just a matter of configuring the external web server to serve the duplicated tree. If the other web server is another machine, but still on the local LAN, you could try using a shared network drive for the web and tiles.
I hope the player locations are fixed soon, it's one of the most used features of our instance of Dynmap.
I just wanted to remind you that vanilla walls still don't show up on Dynmap
Still not seeing either of these problems - not on my servers, not on several other customer servers that I routinely monitor. I use player location continuously during development, as does everyone else that uses this. Ditto for the walls - they're rendering fine in 1.2 and 1.3 on all versions. Be 100% sure that you've updated ALL the files from our ZIP - AND any copies you may have made for an external web server (e.g. if the HTML, javascript, and CSS files under the 'webpath' were copied to another directory under an external web server's paths). Running mixed file sets is a sure fire way to not get a functional configuration.
Still not seeing either of these problems - not on my servers, not on several other customer servers that I routinely monitor. I use player location continuously during development, as does everyone else that uses this. Ditto for the walls - they're rendering fine in 1.2 and 1.3 on all versions. Be 100% sure that you've updated ALL the files from our ZIP - AND any copies you may have made for an external web server (e.g. if the HTML, javascript, and CSS files under the 'webpath' were copied to another directory under an external web server's paths). Running mixed file sets is a sure fire way to not get a functional configuration.
This is a clean install, the 1.4.5mc 1.3 works for player locations. The 1.4.6mc 1.3 has no player locations, no images are ever placed in the faces folder either.
These are all brand new files with a new server instance (although it also doesn't work with my existing server either)
Here is a quote from another person with this problem:
I have the same problem as noted a couple posts above - player faces are not rendering on the map. I've checked the directory and the faces folders (8x8,16x16,etc) are not updating with any images at all - so players are therefore not visible on the map.
I am running version 1.4.6 of minecraft with lots of mods.
I am using dynmap 1.3 alpha 2.
Had dynmap working fine on 1.4.5, but since updating to 1.4.6 player faces will not show upon death, but I am using the new 1.3 alpha 1 that claims to fix this problem. I've determined that the 'face' folder in web doesn't appear to be loading any player faces at all, so perhaps this is the problem?
EDIT: I stumbled upon the fix by accident, you may want to mention this somewhere:
Then they MUST be using the Forge Server version of the LoginMessage and NOT the vanilla server version. This not only breaks Dynmap locations, but it also breaks the Twilight Forest portal.
Sorry for all the trouble mikeprimm. I still want vanilla walls though
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
When I uploaded the files to install dynamap. (Sorry I am a noob to this plugin) It told me to go to (myserverip:8123) Yes, I know to replace the "myserverip" part with the actual IP. When I do that it just brings me to a directory listing. I wasn't sure if that was normal or not? I did a full render with in game commands thinking that I needed to render it before I was able to see anything. I was still unable to see anything though other then the Directory listing. Is there something that I may have missed?
Even with the new version you just released, Im still having an issue. Just rendering the flat map bogs the server down after a bit. The avg tick went all the way up to 2500. Time on the server starts to loop. I can watch the sun spring back after a few seconds of rising.
Like I said before, I never had a single problem with Dynmap when I ran a bukkit server. So any help figuring out why its running so bad now would be wonderful. Id like to keep using dynmap. Just let me know what info you need from me.
Quick update: I took out all mods except for dynmap. The server handled it much better as to be expected, but Dynmap still isn't updating the map anywhere near as fast as it did or does on bukkit. I can move into a non mapped area and wait 10 minutes or more before tiles begin to appear on the map. So really im not sure if this is just a forge issue or something.
It's been done by folks, but isn't formally supported (mostly because its a huge pain to talk folks through that don't know enough about running web servers to make it work ). Basically, what folks will do is configure Dynmap for JSON file mode (no internal server, everything done via generated files in the 'webpath' and 'tilespath' directory trees), and they then implement a periodic synchronization process for those trees to a remote web server - running rsync every minute or few minutes, whatever. Basically, our tree kept in sync with a copy on the web server. From there, its just a matter of configuring the external web server to serve the duplicated tree. If the other web server is another machine, but still on the local LAN, you could try using a shared network drive for the web and tiles.
Still a bit of a novice with webservers so maybe dynmap is not a good idea :/
Even with the new version you just released, Im still having an issue. Just rendering the flat map bogs the server down after a bit. The avg tick went all the way up to 2500. Time on the server starts to loop. I can watch the sun spring back after a few seconds of rising.
Like I said before, I never had a single problem with Dynmap when I ran a bukkit server. So any help figuring out why its running so bad now would be wonderful. Id like to keep using dynmap. Just let me know what info you need from me.
Quick update: I took out all mods except for dynmap. The server handled it much better as to be expected, but Dynmap still isn't updating the map anywhere near as fast as it did or does on bukkit. I can move into a non mapped area and wait 10 minutes or more before tiles begin to appear on the map. So really im not sure if this is just a forge issue or something.
Having similar issues as this poster. I remember in the bukkit version, being able to control the render triggers and having that make a difference. In the Forge version config file under update triggers, it simply has []. Adding in the triggers from the example config in the wiki seems to have no effect.
What logic does the Forge version use for triggering update renders? It almost seems to be any event triggers an update render, for instance, a Forestry tree farm seems to update realtime, and if someone decides to go exploring on the server, it gets brought to its knees, if we set it on hires resolution. Setting it to vlowres makes the server playable, but I miss the hires quality views, especially on the surface map.
I have 2 suggestions: Either re-add the render trigger configuration so that we can limit the updates, or allow us to disable update renders altogether, so that we can do weekly fullrenders.
yeah unfortunately i have to agree with both of you guys, if someone goes exploring and new chunks are generated the server is crippled for a few hours, it would be nice to be able to control it a bit more too.
Rollback Post to RevisionRollBack
24 hours gone again, wasted in futility, welcome to minecraft modding, that is (unfortunately) our community.
(an ode to minecraft modding)
i keep making the same mistake, i think "oh, i've given them a few months, surely it'll be fixed by now" THAT is why i seem to ALWAYS be angry to some of you, my advice is to get the lead out.
there were nice things here, until the mod author threw a tantrum.
Even with the new version you just released, Im still having an issue. Just rendering the flat map bogs the server down after a bit. The avg tick went all the way up to 2500. Time on the server starts to loop. I can watch the sun spring back after a few seconds of rising.
Like I said before, I never had a single problem with Dynmap when I ran a bukkit server. So any help figuring out why its running so bad now would be wonderful. Id like to keep using dynmap. Just let me know what info you need from me.
Quick update: I took out all mods except for dynmap. The server handled it much better as to be expected, but Dynmap still isn't updating the map anywhere near as fast as it did or does on bukkit. I can move into a non mapped area and wait 10 minutes or more before tiles begin to appear on the map. So really im not sure if this is just a forge issue or something.
I've been working on 1.4-alpha-1, specifically for 1.4.6, and specifically to try to improve the update rendering performance Forge lacks the update hooks that Bukkit has, so having the 'fine grained' triggers we have in the Bukkit version isn't currently practical - we know when something changes, or may have changed, but not why. Essentially, we're hooked in to the path used by the server to notify the client of block changes and chunk updates - unfortunately, some mods are overly generous about using these notifications, and the fact that the block was 'updated' doesn't necessarily mean it needs to be repainted by us: but we don't, in general, know without redrawing the tile. BuildCraft Pipes are particularly nasty this way - truckloads of updates from pipes that are moving stuff, none of which really calls for a redraw on our part. The 1.4-alpha-1 will include a mechanism for ignoring updates to 'chatty' blocks like these - at the expense of possibly not redrawing the block some times that may call for it. I've added the 'ignore-updates' setting on a number of particularly nasty offenders, and it has dramatically improved the routine update rate I see on my industrial server. The alpha will also include some render-trigger controls - and some more optimizations on the use of those triggers. I'll probably not do alpha-1 for all Forge platforms: I want to look at doing some more spins on this tuning before propagating it across the older Forge versions.
Hello all! I'm having a little issue and not entirely sure why. I've skimmed through this thread and haven't seen it specifically yet, and I'm no computer guru by far. I've recently got interested in FTB. Well I liked Amidst. Dynmap is the ONLY thing that I've heard of that would let me essentially do the same thing (view the biomes in a multiplayer map and then use that seed for a single-player, or just simply play on the multiplayer server by myself).
So I dl'd the recommended build for forge. I extracted the files, then took the file labeled "dynmap" and threw it in the "FTB-Beta-A" folder like I've seen/heard to do. I went into the "mods" folder that was extracted from the dl, and put the zip file into the "mods" folder of the FTB server. When I run the server everything seems to load fine until the last second, in which I get the following error.
---- Minecraft Crash Report ----
// Ooh. Shiny.
Time: 12/29/12 6:41 PM
Description: Exception in server tick loop
cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: org/dynmap/forge/DynmapPlugin$WorldUpdateTracker
at cpw.mods.fml.common.LoadController.transition(LoadController.java:117)
at cpw.mods.fml.common.Loader.serverStarted(Loader.java:701)
at cpw.mods.fml.common.FMLCommonHandler.handleServerStarted(FMLCommonHandler.java:311)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:456)
at fp.run(SourceFile:818)
Caused by: java.lang.NoClassDefFoundError: org/dynmap/forge/DynmapPlugin$WorldUpdateTracker
at org.dynmap.forge.Proxy.startServer(Proxy.java:12)
at org.dynmap.forge.mod_Dynmap.serverStarted(mod_Dynmap.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:440)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
at com.google.common.eventbus.EventBus.post(EventBus.java:268)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:140)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
at com.google.common.eventbus.EventBus.post(EventBus.java:268)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:83)
at cpw.mods.fml.common.Loader.serverStarted(Loader.java:700)
... 3 more
Caused by: java.lang.ClassNotFoundException: org.dynmap.forge.DynmapPlugin$WorldUpdateTracker
at cpw.mods.fml.relauncher.RelaunchClassLoader.findClass(RelaunchClassLoader.java:141)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 30 more
Caused by: java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at cpw.mods.fml.relauncher.RelaunchClassLoader.findClass(RelaunchClassLoader.java:134)
... 32 more
Relevant Details:
- Minecraft Version: 1.4.2
- Operating System: Windows XP (x86) version 5.1
- Java Version: 1.7.0_10, Oracle Corporation
- Java VM Version: Java HotSpotâ„¢ Client VM (mixed mode), Oracle Corporation
- Memory: 463164224 bytes (441 MB) / 519110656 bytes (495 MB) up to 1037959168 bytes (989 MB)
- JVM Flags: 2 total; -Xms512M -Xmx1G
- AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
- FML: ~ERROR~ NullPointerException: null
- Is Modded: Definitely; 'forge,fml'
- Profiler Position: N/A (disabled)
- Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
- Player Count: 0 / 25; []
- World FTB-Beta-A Entities: 0 total; []
- World FTB-Beta-A Players: 0 total; []
- World FTB-Beta-A Chunk Stats: ServerChunkCache: 0 Drop: 0
- Type: Dedicated Server
I know my description is a little long, and I'm probably missing something simple and small, but alas, help is needed. So what am I doing wrong here? Thanks in advance for the help!!
I opened a ticket on Github for this; sorry if I'm being redundant, just wondering if anyone else has seen anything similar.
After some searching (using NoLagg's examiner) I've found that JsonFileClientUpdateComponent has been occasionally freezing the main thread, causing the server to report "Can't keep up!" even when the server is completely empty. Leaving the server running idle overnight and completely empty has shown that this is occurring once every 30 minutes to 2 hours.
Here's a piece of my log file, with the server online and idle overnight:
http://pastebin.com/PaGaj1yX
I had been trying to catch one of these freezes during an examiner capture for a while. As you can see from the log, I finally managed to do so. That exam is linked below.
The included exam log shows that around tick 17000, JsonFileClientUpdateComponent took over 2000ms to complete one tick. Not sure whether it's being caused by something in the plugin or poor disk performance on the host (my KVM host has had to disable virtual drive access for my instance and give me direct drive access, so this could be from the plugin waiting for disk access so it can write to the json file).
I'm not sure if it's possible, but if this is in fact just waiting for disk access, can JSON writes possibly be done in another thread? That way long write times wouldn't freeze the main thread. Just an idea!
Exam log is here:
http://goo.gl/4A7Rn
Let me know if you need any more info.
Thanks in advance!
Its not updating the map automatically, meaning when I first make a new world, just the area around spawn is mapped (though some chunks arent on the map) and when I move away nothing new gets mapped. I can run a full render, but it takes forever on the Surface (I dont remember it taking that long on bukkit). Also when I ran just the flat map full render a couple times not only did that seem to take longer or maybe even stop working, and the clock at the top went into a loop of like 3 seconds.
As im writing this im doing the first full render of a newly made world, and every update its taking longer. Surface times are at 330 msec/tile and 137 msec per render, and each update adds a few more msecs to that.
Not really sure whats causing this, and since there arent any other posts about it, its not a widespread problem. Everything is up to date, using the 1.3 alpha 2 version of dynmap.
Here is a list of the other mods we are using.
I just wanted to remind you that vanilla walls still don't show up on Dynmap
One small request? In the update text for a fullrender, would it be possible to have it show a percentage as well as the number of tiles rendered? It would be nice to have an estimate of how much is remaining.
Thanks.
You've got a specific problem of some sort - I can't produce this, and haven't gotten reports from anyone else.
Tricky part with percentage is knowing the full chunk population - I need to see if there is a safe way to scan see all the chunks that exist cheaply, short of loading all of them...
This means someone else is already on that port - a lot of folks use dynmap, so its likely that if you are on a hosted server, another MC is using the port already. Just reassign the webserver port setting in configuration.txt to another port number: you MAY also need to have your hosting folks open the port for you, depending on how they handle firewalling.
Updaterender is the best option - but you need to start it at a point that hasn't been rendered yet. Basically, its the same as fullrender except that it stops rendering in a given direction when it hits tiles that, when rendered, don't change. So, if you start it from a point that is in an area that is unrendered, it will 'flood fill' (like a paint program might) until it hits the edges or the world OR tiles that are already correctly rendered.
Install is as mentioned in the OP - just extract the ZIP in the base directory for the server: it will put the mod ZIP in 'mods' and add/update the needed files under the dynmap/ directory. EVERYTHING from the ZIP is needed - both for initial installs and for updates. The configuration files are not replaced, so nothing will be lost by doing this. With Forge, you will also need to zap the older mods/dynmap-*.zip from the mods directory to avoid having duplicate (and obsolete) code running.
All the disk I/O for JSONFileUpdateComponent is done 'off thread', so it cannot be the source of that. It does do calls to permissions and the like, so any issue with those calls lagging would impact us. What is done on-thread is what has to be (since the MC and bukkit APIs are almost universally unsafe to use from off the server thresd). I'll give the examine a look.
It's been done by folks, but isn't formally supported (mostly because its a huge pain to talk folks through that don't know enough about running web servers to make it work ). Basically, what folks will do is configure Dynmap for JSON file mode (no internal server, everything done via generated files in the 'webpath' and 'tilespath' directory trees), and they then implement a periodic synchronization process for those trees to a remote web server - running rsync every minute or few minutes, whatever. Basically, our tree kept in sync with a copy on the web server. From there, its just a matter of configuring the external web server to serve the duplicated tree. If the other web server is another machine, but still on the local LAN, you could try using a shared network drive for the web and tiles.
Still not seeing either of these problems - not on my servers, not on several other customer servers that I routinely monitor. I use player location continuously during development, as does everyone else that uses this. Ditto for the walls - they're rendering fine in 1.2 and 1.3 on all versions. Be 100% sure that you've updated ALL the files from our ZIP - AND any copies you may have made for an external web server (e.g. if the HTML, javascript, and CSS files under the 'webpath' were copied to another directory under an external web server's paths). Running mixed file sets is a sure fire way to not get a functional configuration.
Have you been reading the thread? many people are reporting this problem.
This is a clean install, the 1.4.5mc 1.3 works for player locations. The 1.4.6mc 1.3 has no player locations, no images are ever placed in the faces folder either.
These are all brand new files with a new server instance (although it also doesn't work with my existing server either)
Here is a quote from another person with this problem:
and another:
EDIT: I stumbled upon the fix by accident, you may want to mention this somewhere:
If the server is running LoginMessage for rei's minimap located here: http://www.minecraftforum.net/topic/482147-
Then they MUST be using the Forge Server version of the LoginMessage and NOT the vanilla server version. This not only breaks Dynmap locations, but it also breaks the Twilight Forest portal.
Sorry for all the trouble mikeprimm. I still want vanilla walls though
Lower your resolution.
High res does exactly as you describe. I think a res of 4 works well enough (2 is almost well enough), and keeps the disk space somewhat reasonable.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Like I said before, I never had a single problem with Dynmap when I ran a bukkit server. So any help figuring out why its running so bad now would be wonderful. Id like to keep using dynmap. Just let me know what info you need from me.
Quick update: I took out all mods except for dynmap. The server handled it much better as to be expected, but Dynmap still isn't updating the map anywhere near as fast as it did or does on bukkit. I can move into a non mapped area and wait 10 minutes or more before tiles begin to appear on the map. So really im not sure if this is just a forge issue or something.
Still a bit of a novice with webservers so maybe dynmap is not a good idea :/
Having similar issues as this poster. I remember in the bukkit version, being able to control the render triggers and having that make a difference. In the Forge version config file under update triggers, it simply has []. Adding in the triggers from the example config in the wiki seems to have no effect.
What logic does the Forge version use for triggering update renders? It almost seems to be any event triggers an update render, for instance, a Forestry tree farm seems to update realtime, and if someone decides to go exploring on the server, it gets brought to its knees, if we set it on hires resolution. Setting it to vlowres makes the server playable, but I miss the hires quality views, especially on the surface map.
I have 2 suggestions: Either re-add the render trigger configuration so that we can limit the updates, or allow us to disable update renders altogether, so that we can do weekly fullrenders.
Thanks
24 hours gone again, wasted in futility, welcome to minecraft modding, that is (unfortunately) our community.
(an ode to minecraft modding)
i keep making the same mistake, i think "oh, i've given them a few months, surely it'll be fixed by now" THAT is why i seem to ALWAYS be angry to some of you, my advice is to get the lead out.
there were nice things here, until the mod author threw a tantrum.
I've been working on 1.4-alpha-1, specifically for 1.4.6, and specifically to try to improve the update rendering performance Forge lacks the update hooks that Bukkit has, so having the 'fine grained' triggers we have in the Bukkit version isn't currently practical - we know when something changes, or may have changed, but not why. Essentially, we're hooked in to the path used by the server to notify the client of block changes and chunk updates - unfortunately, some mods are overly generous about using these notifications, and the fact that the block was 'updated' doesn't necessarily mean it needs to be repainted by us: but we don't, in general, know without redrawing the tile. BuildCraft Pipes are particularly nasty this way - truckloads of updates from pipes that are moving stuff, none of which really calls for a redraw on our part. The 1.4-alpha-1 will include a mechanism for ignoring updates to 'chatty' blocks like these - at the expense of possibly not redrawing the block some times that may call for it. I've added the 'ignore-updates' setting on a number of particularly nasty offenders, and it has dramatically improved the routine update rate I see on my industrial server. The alpha will also include some render-trigger controls - and some more optimizations on the use of those triggers. I'll probably not do alpha-1 for all Forge platforms: I want to look at doing some more spins on this tuning before propagating it across the older Forge versions.