Problem Unleashed persistent crash. (CallableLvl2?)

  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord

PhillipeFlop

New Member
Jul 29, 2019
15
0
0
Hi there, we are getting a persistent crash on our Unleashed server (Biomes O'Plenty, Vending, Power Converters, Xeno's all enabled). I understand there is a permgen space issue (I have it all set in the startup), however the crashes seem to be caused preceded by -
INFO java.lang.NoClassDefFoundError: net/minecraft/world/CallableLvl2
Does anybody have an explanation or fix for this? More of the console output below.

Thanks in advance, Phil.

Code:
06.08 22:13:28 [Server] INFO at net.minecraft.server.ServerListenThread.run(ServerListenThread.java:80)
06.08 22:13:28 [Server] INFO at java.net.ServerSocket.accept(Unknown Source)
06.08 22:13:28 [Server] INFO at java.net.ServerSocket.implAccept(Unknown Source)
06.08 22:13:28 [Server] INFO at java.net.AbstractPlainSocketImpl.accept(Unknown Source)
06.08 22:13:28 [Server] INFO at java.net.PlainSocketImpl.socketAccept(Native Method)
06.08 22:13:28 [Server] INFO java.net.SocketException: Socket closed
06.08 22:13:28 [Server] INFO [Minecraft-Server] Saving players
06.08 22:13:28 [Server] INFO [Minecraft-Server] Stopping server
06.08 22:13:27 [Server] INFO Caused by: java.lang.OutOfMemoryError: PermGen space
06.08 22:13:27 [Server] INFO ... 6 more
06.08 22:13:27 [Server] INFO at java.lang.ClassLoader.loadClass(Unknown Source)
06.08 22:13:27 [Server] INFO at java.lang.ClassLoader.loadClass(Unknown Source)
06.08 22:13:27 [Server] INFO at cpw.mods.fml.relauncher.RelaunchClassLoader.findClass(RelaunchClassLoader.java:238)
06.08 22:13:27 [Server] INFO Caused by: java.lang.ClassNotFoundException: net.minecraft.world.CallableLvl2
06.08 22:13:27 [Server] INFO at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
06.08 22:13:27 [Server] INFO at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:470)
06.08 22:13:27 [Server] INFO at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:573)
06.08 22:13:27 [Server] INFO at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:275)
06.08 22:13:27 [Server] INFO at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:648)
06.08 22:13:27 [Server] INFO at net.minecraft.world.World.func_72914_a(World.java:4401)
06.08 22:13:27 [Server] INFO java.lang.NoClassDefFoundError: net/minecraft/world/CallableLvl2
06.08 22:13:17 [Server] WARNING [Minecraft-Server] Can't keep up! Did the system time change, or is the server overloaded?
 

Dingham

New Member
Jul 29, 2019
294
0
0
Amusing, it's like you didn't read previous posts relating to your problem that i linked you to at all.

Yes you may have your permgen set up. But did you do it correctly, maybe allocating more memory to the permgen would help? If you'd looked at the second link google suggested, lexmanos link to the issue with a fix, which suggests increasing permgen from 128 to 256.
 

Vauthil

New Member
Jul 29, 2019
1,491
-14
1
Yeah, can we be a little more polite in here? I would appreciate it.

Generally speaking, the error your get alongside a PermGen space splat is more in the manner of a "this is the straw that broke the camel's back" sort of deal rather than "this is the root cause", which is why you may get some exasperated glances when asking. To really oversimplify this, what's happening is that as your world is running, something is happening that is accumulating used space in your Permanent Generation (hence PermGen) memory. This is the region of memory where the java classes (i.e. the actual code itself) resides while the server is running. When it caps off, it'll then have a problem pulling anything else up into that memory as needed, at which point it'll go "nuh-uh, that just doesn't exist dude" (because you're at the limit of its memory) and boom, crash.

That's the horribly, terribly, massively oversimplified version of what's gone on here. Now, what can be done about it? Well, there's three things, in increasing difficulty:
  • (Easy) Increase the PermSize/MaxPermSize to give it more room before it runs out (you should advance these together; if you don't, you're at the mercy of java's derpiness in dynamic memory allocation).
  • (Difficult) Conjure Garbage Collection voodoo in your initialization script. What this'll do is regularly check to see what's actually getting used and will carry off stuff that isn't. Problem is, it's conjuring voodoo: if you don't know what you're doing, it's pretty easy to screw it up and end up with a stuttering laggy mess of a server. It also works best in conjunction with the previous step in my experience.
  • (Really Difficult) Find and fix what's actually leaking. Now you start invoking profiling voodoo and staring at a screen for four hours or four days. Then you have to fix what's doing it, which usually is a mod somewhere or an interaction of mods somewhere. This is better left to the folks actually making the mods. =)
 

PhillipeFlop

New Member
Jul 29, 2019
15
0
0
Apologies for the reaction, however I didn't see it necessary to post a sarcastic link. Especially as I stated I tried what said link was suggesting the fix was. I understand the whole PermGen space thing, I was trying to find the root cause particularly as the crashes (due to the server reaching the PermGen cap) are always preceded by "INFO java.lang.NoClassDefFoundError: net/minecraft/world/CallableLvl2". Thanks for the helpful response, Vauthil.
 

Vauthil

New Member
Jul 29, 2019
1,491
-14
1
I understand the whole PermGen space thing, I was trying to find the root cause particularly as the crashes (due to the server reaching the PermGen cap) are always preceded by "INFO java.lang.NoClassDefFoundError: net/minecraft/world/CallableLvl2". Thanks for the helpful response, Vauthil.

Yeah, you won't really get a root cause without some profiling work going on. Java's only going to tell you what was going on when the straw broke the camel's back by default. Even then, your most likely solution is reporting it to the mod author and otherwise just disabling it in the interim (not what people want to hear). Another classic way to fight PermGem accrual is, of course, regular scheduled restarts, but that's going to depend on how long you're going before slamming face first into this issue and scheduling it such that it happens before that face slam.
 

PhillipeFlop

New Member
Jul 29, 2019
15
0
0
Scheduled restarts is the solution I went for. Not ideal, but a couple of minute inconvenience every couple of hours is a lot easier than manually stopping and rebooting the server!
 

Eyamaz

New Member
Jul 29, 2019
2,373
0
0
I really need to finish writing my JVM article as I cover this in it. I need to do more server profiling though.
 
  • Like
Reactions: Vauthil