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
This Warning is now outdated - use build 729 for TT goodness.

Just giving everyone a formal warning:

The latest builds of TT are NOT recommended and I do NOT condone using them! There are quite some game breaking issues with it right now, including all entities being wiped.

Please wait until Nallar says something before trying to use them again! (or follow the GitHub changelog)
 
The entity issue should be fixed now, and with it the deadlock (I think it was related to looping world gen for aura node entities).

Haven't actually confirmed that the deadlock is fixed though, we'll need to wait and see.
 
Just giving everyone a formal warning:

The latest builds of TT are NOT recommended and I do NOT condone using them! There are quite some game breaking issues with it right now, including all entities being wiped.

Please wait until Nallar says something before trying to use them again! (or follow the GitHub changelog)
It's a little bit late to tell you, but it seems that the vanished entities return on loading the world with a working TT.
 
Bumped stable version to 729, fixing an issue where mobs could not be attacked after reloading a chunk.
 
We seem to have a problem with anything that generates or consumes EU, they just flat-out don't work. No errors per se, just the normal console spam of:

Code:
2013-01-31 13:20:43 [WARNING] [IC2] EnergyNet.emitEnergyFrom: ic2.core.block.generator.tileentity.TileEntityGenerator@69601253 x,y,x: 264, 72, -785 is not added to the enet

Running TT 729 and BukkitForge 187. What would be the harm in tossing on the unmodded ic2.jar?


Edit: and I'm still getting this:
http://pastebin.com/JK2wbMmE
 
I'd really like to see some more work done on the client. I can't wait for a release that is singleplayer compatable!
btw nallar, I think this mod you've made is GREAT! I fell in love with it and I can't thank you enough for making it.
 
Tick Threading build #729 appears to put TT back in a usable working state once again. Have not seen any entity issues or errors in general thus far. Take that with a grain of salt :)

The newer version actually brought BACK the entities that disappeared from the horrible builds, so that's a great thing - It didn't bring back the Nodes from ThaumCraft though - but that was easy enough to "regenerate" (thaumcraft.cfg)
 
We seem to have a problem with anything that generates or consumes EU, they just flat-out don't work. No errors per se, just the normal console spam of:

Code:
2013-01-31 13:20:43 [WARNING] [IC2] EnergyNet.emitEnergyFrom: ic2.core.block.generator.tileentity.TileEntityGenerator@69601253 x,y,x: 264, 72, -785 is not added to the enet

Running TT 729 and BukkitForge 187. What would be the harm in tossing on the unmodded ic2.jar?


Edit: and I'm still getting this:
http://pastebin.com/JK2wbMmE

Is IC2 flat out not working on boot or does it happen over time??

I haven't had that bug for quite a while, but my IC2 used to "die" and do the same thing your experiencing - it doesn't happen anymore for me though..

Sounds like a TT + BukkitForge issue
 
IC2 Loads and people can use things, but the EU doesn't flow to or from things like MFSU's.
 
IC2 Loads and people can use things, but the EU doesn't flow to or from things like MFSU's.
Congratulations on an odd bug. If a chunk update ran and caused a chunk to load due to bad mod/plugin code, and some mobs were spawned in that chunk, and at the same time the chest shop plugin tried to load a chunk to check a sign your server had a chance of crashing.

edit: Quoted the wrong post, I meant the one with the deadlock.

edit 2: Bumped the stable version to 732. Try it, if the error happens again report it again - the deadlock detector will now give more information and we can see what caused it.
 
Congratulations on an odd bug. If a chunk update ran and caused a chunk to load due to bad mod/plugin code, and some mobs were spawned in that chunk, and at the same time the chest shop plugin tried to load a chunk to check a sign your server had a chance of crashing.

edit: Quoted the wrong post, I meant the one with the deadlock.

edit 2: Bumped the stable version to 732. Try it, if the error happens again report it again - the deadlock detector will now give more information and we can see what caused it.

Got it, trying now. That was an awesome bug though!
 
Congratulations on an odd bug. If a chunk update ran and caused a chunk to load due to bad mod/plugin code, and some mobs were spawned in that chunk, and at the same time the chest shop plugin tried to load a chunk to check a sign your server had a chance of crashing.

edit: Quoted the wrong post, I meant the one with the deadlock.

edit 2: Bumped the stable version to 732. Try it, if the error happens again report it again - the deadlock detector will now give more information and we can see what caused it.

Working great so far. If that arises again I will probably pull ChestShop and pass along the crash report to you.

Do you have any idea about the ic2 problem? Solars for example gain EU, but nothing is transferred out (tried replacing cable). You could use internal power on something like a macerator, but once that runs out we get nothing.


Edit:
Code:
2013-02-01 09:27:44 [INFO] [STDERR] Exception in thread "Deadlock Detector" java.lang.NullPointerException
2013-02-01 09:27:44 [INFO] [STDERR]    at me.nallar.tickthreading.minecraft.DeadLockDetector.toString(DeadLockDetector.java:184)
2013-02-01 09:27:44 [INFO] [STDERR]    at me.nallar.tickthreading.minecraft.DeadLockDetector.checkForDeadlocks(DeadLockDetector.java:118)
2013-02-01 09:27:44 [INFO] [STDERR]    at me.nallar.tickthreading.minecraft.DeadLockDetector$2.run(DeadLockDetector.java:52)
2013-02-01 09:27:44 [INFO] [STDERR]    at java.lang.Thread.run(Thread.java:722)
2013-02-01 09:28:51 [SEVERE] [ForgeModLoader] Failed to handle packet from unknown
java.net.SocketTimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:150)
        at java.net.SocketInputStream.read(SocketInputStream.java:121)
        at java.net.SocketInputStream.read(SocketInputStream.java:203)
        at java.io.FilterInputStream.read(FilterInputStream.java:83)
        at ef.a(Packet.java:142)
        at cg.i(TcpConnection.java:324)
        at cg.c(TcpConnection.java:544)
        at ch.run(SourceFile:93)
 
Working great so far. If that arises again I will probably pull ChestShop and pass along the crash report to you.

Do you have any idea about the ic2 problem? Solars for example gain EU, but nothing is transferred out (tried replacing cable). You could use internal power on something like a macerator, but once that runs out we get nothing.


Edit:
Code:
2013-02-01 09:27:44 [INFO] [STDERR] Exception in thread "Deadlock Detector" java.lang.NullPointerException
2013-02-01 09:27:44 [INFO] [STDERR]    at me.nallar.tickthreading.minecraft.DeadLockDetector.toString(DeadLockDetector.java:184)
2013-02-01 09:27:44 [INFO] [STDERR]    at me.nallar.tickthreading.minecraft.DeadLockDetector.checkForDeadlocks(DeadLockDetector.java:118)
2013-02-01 09:27:44 [INFO] [STDERR]    at me.nallar.tickthreading.minecraft.DeadLockDetector$2.run(DeadLockDetector.java:52)
2013-02-01 09:27:44 [INFO] [STDERR]    at java.lang.Thread.run(Thread.java:722)
2013-02-01 09:28:51 [SEVERE] [ForgeModLoader] Failed to handle packet from unknown
java.net.SocketTimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:150)
        at java.net.SocketInputStream.read(SocketInputStream.java:121)
        at java.net.SocketInputStream.read(SocketInputStream.java:203)
        at java.io.FilterInputStream.read(FilterInputStream.java:83)
        at ef.a(Packet.java:142)
        at cg.i(TcpConnection.java:324)
        at cg.c(TcpConnection.java:544)
        at ch.run(SourceFile:93)
I... what?!

Somehow a thread was null... added a workaround in latest, will need tested with that to get the error report, because the error reporting crashed. :(
 
Build 739 includes an attempt at fixing the deadlock, as well as a fix for the comodification exception.

edit: I derped, fix is in 739.

So far it's running great after a few hours of uptime. Our issue with IC2 power is resolved after several restarts too. If it's broke, we get that incessant console spam I pasted earlier. If it works, it's clean.

And as soon as I typed this: http://pastebin.com/EpPGRSg5

Ah, I'll try 739.
 
Are you following MCPC-Plus dev nallar?
Yes. TT will support it eventually, but it needs many changes because of some bukkit silliness - the handling of many events is not threadsafe, due to the use of fields on the world when extra parameters should've been added, for example with block placing it breaks the block with a field set to make it not actually place, runs the event using info from that, sets the field false again then places it if the event wasn't cancelled.

Also, the chunk provider and chunk loader implementations aren't compatible with TT's patches.
 
There were deadlock issues in some of the testing builds, when player movement was made asynchronous. This is fixed as of 752.