Big Reactors

Big Reactors

11M Downloads

CTD when approaching a Big Reactor (RC4)

mechaet opened this issue · 16 comments

commented

A player on my server was assembling a reactor, when by some other means the server crashed (someone planted a mega rubber tree a long long way away, server relighting issue caused a server crash). When the user who was assembling the reactor tries to log in, now, CTD.

http://pastebin.com/ft2u1Xrs

I also experience this CTD going anywhere near that base, that's a pastebin of my crash report.

commented

Ugh, circular on-neighbor-change for some reason. You've probably got corrupt blocks. You're gonna have to reset the chunk for now. I'll see about adding some protection for this case.

commented

I'm the player in question; I was testing the limits of BR tech by assembling a 15x15x48 reactor. It wasn't quite complete, the top was still off. The inside was a checkerboard arrangement of fuel rods and enderium blocks.

commented

I was able to recover the chunk by wiping the casings and fuel rods out of it using prism and worldedit.

commented

I built the shell of a new big reactor, same dimensions 15x15x48 with front and top missing, warpbooked back to my base to get mats for the inside and warpbooked back and got a near identical crash again. http://pastebin.com/4yt4sTpx There seems to be a bug with the new big reactors and extra large dimensions since it was a completely untouched chunk I started building this one in.

commented

Aaaaand it happened again with only reactor casings this time. Different chunk.

commented

Ok, this is bizarre. It's essentially Minecraft infinite-looping itself.

Something needs to notify a neighbor of a tile change, which causes that tile to load up, which calls my onNeighborChange function, which loads the tile entity, which causes the tile to load up, which calls my onNeighborChange function, which... see the problem here?

commented

Line numbers aren't matching up between my source and yours. Which version of Cauldron are you running and which version of Forge is that based on? I suspect I may need to upgrade to a newer Forge version to fix this.

commented

Cauldron 1.1199.01.162 (based on Forge 1199) on the server

Forge 1205 on the client.

commented

That is actually very likely a problem. Anyway, RC5 requires Forge 1205 on both. Let me know if you see this again with RC5.

commented

Update: In RC5, I reassembled the same BR, 15x15x48 max size in a single chunk, with 4 walls and floor, top missing, and got another crash when warping back to it from my base. http://pastebin.com/qnkNVJV4 I regret to say the problem has not been fixed. The reactor I assembled was just the shell of reactor casing, no other blocks.

commented

Strange. The line numbers don't match up at all, and the callstack makes no sense (probably an artifact of obfuscation, really).

commented

@Ambaire - Quick question for clarity. Do the crashes just happen the moment you stick down one block too many, or do they happen only on login/re-entering the chunk area?

commented

When we went to rc5 I updated the server to the current recommended version of cauldron which is 1207 forge.

Clients are running 1205, and this is a client side crash only.

Sent from my Windows Phone


From: Ambairemailto:[email protected]
Sent: ‎8/‎24/‎2014 11:09 AM
To: erogenousbeef/BigReactorsmailto:[email protected]
Cc: mechaetmailto:[email protected]
Subject: Re: [BigReactors] CTD when approaching a Big Reactor (RC4) (#299)

Update: In RC5, I reassembled the same BR, 15x15x48 max size in a single chunk, with 4 walls and floor, top missing, and got another crash when warping back to it from my base. http://pastebin.com/qnkNVJV4 I regret to say the problem has not been fixed.


Reply to this email directly or view it on GitHub:
#299 (comment)

commented

Re-entry to the chunk. Interestingly it only occurs in SMP, we were unable to replicate in single player.

Sent from my Windows Phone


From: Mr. E. Beefmailto:[email protected]
Sent: ‎8/‎24/‎2014 11:25 AM
To: erogenousbeef/BigReactorsmailto:[email protected]
Cc: mechaetmailto:[email protected]
Subject: Re: [BigReactors] CTD when approaching a Big Reactor (RC4) (#299)

@Ambaire - Quick question for clarity. Do the crashes just happen the moment you stick down one block too many, or do they happen only on login/re-entering the chunk area?


Reply to this email directly or view it on GitHub:
#299 (comment)

commented

@erogenousbeef The crashes only happen after leaving and re-entering the chunk area. I doubt it matters but I was using a creative builder's wand to build the reactor; placed the floor of 15x15, built it up 1 level on the edge then creative builder's wanded it up to 48.

commented

This is looking like a relatively serious problem deeper down in the MC code itself. As I suspected, as a chunk loads up, the first BR TE fires off these change events when it gets set. Each of those then tries to load up their own TEs, which force load events of their own, which cause more neighbor-change calls and so on until your stack explodes.

I either need to short-circuit these calls during chunk loading on the client, or figure out how to defer them somehow.