TickThreading - concurrent entity/tile entity ticks and other optimisations

  • 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

TruculentMC

New Member
Jul 29, 2019
130
0
0
Also getting this exception rather frequently in the logs with #1006 :
03-02 18:05:40 [SEVERE] [TickThreading] Exception while updating block neighbours
java.lang.NullPointerException
at buildcraft.transport.BlockGenericPipe.a(BlockGenericPipe.java:352)
at yc.m(World.java:124)
at yc.h(World.java:802)
at dan200.computer.shared.NetworkedComputerHelper.update(NetworkedComputerHelper.java:122)
at dan200.turtle.shared.TileEntityTurtle.g(TileEntityTurtle.java:2350)
at me.nallar.tickthreading.minecraft.tickregion.TileEntityTickRegion.doTick(TileEntityTickRegion.java:99)
at me.nallar.tickthreading.minecraft.tickregion.TickRegion.run(TickRegion.java:42)
at me.nallar.tickthreading.minecraft.ThreadManager$2.run(ThreadManager.java:90)
at me.nallar.tickthreading.minecraft.ThreadManager$1.run(ThreadManager.java:41)
at me.nallar.tickthreading.minecraft.ThreadManager$ServerWorkThread.run(ThreadManager.java:157)
 

nallar

New Member
Jul 29, 2019
270
0
0
TT now works with MCPC+!

By works, I mean I tested it for 2 minutes and everything is probably broken, please test it. :p
 

DZCreeper

New Member
Jul 29, 2019
1,469
0
1
Herm, do I test this on my server and risk fucking up weeks worth of weeks, at the benefit of performance?

Tempting, but I think this is for someone else to test.
 

Haruchai

New Member
Jul 29, 2019
73
0
0
Our intention is to install aPerf on our server to improve performance. aPerf requires PermissionsEx and this mod be installed first. I've read a few dozen posts in this thread over the past few days and the only remaining concern I have is the Pactchme step. We rent space from a commercial host that uses McMyAdmin as the command interface. This is not a virtual server, rather, a shared environment using E5620 (quad core) machines. Looking at their file manager, I'm going to guess they're running Windows. What I am curious about is what is the best way to run the Patchme file with my setup? They do not grant access to bat files. Thanks.
 

nallar

New Member
Jul 29, 2019
270
0
0
Our intention is to install aPerf on our server to improve performance. aPerf requires PermissionsEx and this mod be installed first. I've read a few dozen posts in this thread over the past few days and the only remaining concern I have is the Pactchme step. We rent space from a commercial host that uses McMyAdmin as the command interface. This is not a virtual server, rather, a shared environment using E5620 (quad core) machines. Looking at their file manager, I'm going to guess they're running Windows. What I am curious about is what is the best way to run the Patchme file with my setup? They do not grant access to bat files. Thanks.
aperf doesn't require tickthreading - there are now instructions for patching your server jar manually in aperf's main post. In a shared environment, your host may not be very happy with you if you run TickThreading. If you still want to, you would just patch it locally and copy the server jar, mods, coremods and patchedMods folder to the remote server.
Nallar, any update on the IDSU loss of power issue?
Sorry, forgot about this. Will try to fix it soon.

If you take a backup first, there's no risk...
And it's probably also good to run it as a test server on a different port first to avoid downtime if it doesn't work.
 

Haruchai

New Member
Jul 29, 2019
73
0
0
aperf doesn't require tickthreading - there are now instructions for patching your server jar manually in aperf's main post. In a shared environment, your host may not be very happy with you if you run TickThreading. If you still want to, you would just patch it locally and copy the server jar, mods, coremods and patchedMods folder to the remote server.

heh...well I filed a support ticket to ask them about installing TT and they don't understand the purpose of TT and therefore (at least right now) don't have an opinion. Is there something similar to your mod for bukkit servers? They are very familiar with bukkit, but not so much with Forge. Maybe if they have some point of reference they will come to a decision. Thanks!
 

HaoSs

New Member
Jul 29, 2019
290
0
0
well the aperf team did a nice job with there mods. but they are not the friendlest moders i have seen
 

Haruchai

New Member
Jul 29, 2019
73
0
0
aperf doesn't require tickthreading - there are now instructions for patching your server jar manually in aperf's main post. In a shared environment, your host may not be very happy with you if you run TickThreading. If you still want to, you would just patch it locally and copy the server jar, mods, coremods and patchedMods folder to the remote server.

Response from the host: no. :( which was not unexpected, I guess. I'll consider your alternative option.

well the aperf team did a nice job with there mods. but they are not the friendlest moders i have seen

Yes, in reading through *every* post in that thread, she/he has one serious attitude problem. We were really only interested in aPerf, as the MyTown thing doesn't interest us. Unfortunately, aPerf proved only minimally effective (at best) in helping with CPU load. The entity limiting feature sounds like an excellent idea, but in practice it really doesn't work. Which reminds me...does Forge Essentials or some bukkitForge plugin have the capability to limit entity spawning?

Thanks guys.
 

Codec

New Member
Jul 29, 2019
80
0
0
Anyone have an issues with red power frames? Ive tried a few different versions and turned off the variable region tick rate and they always mess up, http://puu.sh/2bTG8 is what seems to happen most often. It will move about 5-15 times then one or more place end up like that. I dont see anything in any of the logs other than is complaining about thermal expansion stuff. http://pastebin.com/NTLw3dv2
 

Jared Frane

New Member
Jul 29, 2019
6
0
0
Anyone have an issues with red power frames? Ive tried a few different versions and turned off the variable region tick rate and they always mess up, http://puu.sh/2bTG8 is what seems to happen most often. It will move about 5-15 times then one or more place end up like that. I dont see anything in any of the logs other than is complaining about thermal expansion stuff. http://pastebin.com/NTLw3dv2
Im having the same issue, I couldnt for the life of me figure out what the problem was
 

nallar

New Member
Jul 29, 2019
270
0
0
Anyone have an issues with red power frames? Ive tried a few different versions and turned off the variable region tick rate and they always mess up, http://puu.sh/2bTG8 is what seems to happen most often. It will move about 5-15 times then one or more place end up like that. I dont see anything in any of the logs other than is complaining about thermal expansion stuff. http://pastebin.com/NTLw3dv2
Can you try latest? Should be fixed now, if the issue was due to scheduled block ticks being lost sometimes.
 

Codec

New Member
Jul 29, 2019
80
0
0

DZCreeper

New Member
Jul 29, 2019
1,469
0
1
2 minor bugs to report. Buildcraft gates will not continue working after a server restart, they need a block update to resume working, even if the area is chunk loaded. I tried every chunk loader in MindCrack. The other bug is Gregtech machine casings will show as incomplete when the entire thing is not within 1 chunk. Once again, tried chunk loaders, no fix.
 

Haruchai

New Member
Jul 29, 2019
73
0
0
Likely the the dumbest question in the thread...but, in follow up to my earlier post (371)

We decided to wipe the server of Mindcrack and start a new Ultimate server. I loaded everything on my local machine (i7 3820), installed TT, used your command line suggestion, gave the server 8Gs and pre-loaded the world. A few guys hopped on, we ran around in quantum suits, threw down a bunch of machines and wow...the game ran much better than we've seen from our commercial host (shared server, one core, etc). Sadly, we will upload to that server without 4 cores enabled. Despite that limitation, would it harm anything to upload with TT set to one core (leave the server command line unchanged)? I know it won't perform as well as 4 (if it works at all), but I'd like to have the ability to do CPU/tps analysis and at the same time not get spanked.

Well done, btw.
 

TruculentMC

New Member
Jul 29, 2019
130
0
0
I get errors when patching a clean Mindcrack v8.1.1 server with #1077, and when starting I get the same exception as with #1025


Startup error:
Exception in thread "main" java.lang.ClassFormatError: Duplicate interface name in class file in
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:787)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:447)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
at java.lang.Class.getMethod0(Class.java:2694)
at java.lang.Class.getMethod(Class.java:1622)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)


Exceptions from patcher.log
03-07 14:15:38 [FINE] [TickThreading] Patching any with addMethod(return:java.lang.String,name:toString,code:return super.toString() + " x,y,z: " + l + ", " + m + ", " + n;)
03-07 14:15:38 [SEVERE] [TickThreading] Error patching any with addMethod
javassist.bytecode.DuplicateMemberException: duplicate method: toString in any
at javassist.bytecode.ClassFile.testExistingMethod(ClassFile.java:674)
at javassist.bytecode.ClassFile.addMethod(ClassFile.java:650)
at javassist.CtClassType.addMethod(CtClassType.java:1344)
at me.nallar.tickthreading.patcher.Patches.addMethod(Patches.java:392)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at me.nallar.tickthreading.patcher.PatchManager$PatchMethodDescriptor.run(PatchManager.java:311)
at me.nallar.tickthreading.patcher.PatchManager$PatchMethodDescriptor.run(PatchManager.java:293)
at me.nallar.tickthreading.patcher.PatchManager.runPatches(PatchManager.java:218)
at me.nallar.tickthreading.patcher.PatchMain.patcher(PatchMain.java:107)
at me.nallar.tickthreading.patcher.PatchMain.main(PatchMain.java:32)


03-07 14:15:39 [SEVERE] [TickThreading] Error patching ic2.core.EnergyNet with replaceInitializer
javassist.NotFoundException: field: worldToEnergyNetMap in ic2.core.EnergyNet
at javassist.CtClassType.checkGetField(CtClassType.java:920)
at javassist.CtClassType.getDeclaredField(CtClassType.java:969)
at javassist.CtClassType.getDeclaredField(CtClassType.java:964)
at me.nallar.tickthreading.patcher.Patches.replaceInitializer(Patches.java:108)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at me.nallar.tickthreading.patcher.PatchManager$PatchMethodDescriptor.run(PatchManager.java:311)
at me.nallar.tickthreading.patcher.PatchManager$PatchMethodDescriptor.run(PatchManager.java:293)
at me.nallar.tickthreading.patcher.PatchManager.runPatches(PatchManager.java:218)
at me.nallar.tickthreading.patcher.PatchMain.patcher(PatchMain.java:107)
at me.nallar.tickthreading.patcher.PatchMain.main(PatchMain.java:32)
 

Haruchai

New Member
Jul 29, 2019
73
0
0
Started getting this error on a New Ultimate server. Actually started last night after going into the Nether for the first time. Anyone going in gets kicked with a end-of-stream error. As you can see, the errors will severely spam the console until the server can restart. Let me know if I need to send this to anyone else. Thanks

http://pastebin.com/9Xb2hKfa

I'll add another paste. My folks are getting hammered with "Moved Wrongly" messages while in 0, and if they go into another dimension (-1, 5, 10, you name it) the error codes start to fly. Hopefully these pastes will help.

Thanks.

http://pastebin.com/Dgq1Z7KK