NPE: (SMP) Reactors refuse to work and client crash when trying to interact with the server (NPE)
jalapeno777 opened this issue ยท 18 comments
This is beginning to happen with a lot of reactors on the server.
- MCPC+ with Async turned off. Chunks containing reactors have been loaded non-stop since the last restart with players there (ie no chunkloaders)
- Is happening on reactors that are in multiple chunks and reactors that are in a single chunk
Pastebin: http://pastebin.com/7a7JsDvC
I checked both the server and the forge logs...that's the only error being provided. There's no hint or indication why the reactors initially broke down.
I should mention, this NPE and client kick only occurs when attempting to access the control panel or any other interface bare handed. With an item in hand...control panel is completely unresponsive however all other interfaces are accessible and manipulatable.
Breaking the reactor structure and refixing it does not resolve the problem. A server restart will
Breaking the control panel and replacing it stops the client kicks...now it reports that the reactor I'm testing with requires at least one control rod...the build has 9 fuel rods in it with a control rod at the top of each one. The reactor had worked fine for days in it's current setup.
A short while later (about 2-3m) after the replacing of the control panel...the client kicks start again trying to access it.
Okay, I can fix the crash/kick. However, the problem is deeper than that - for some reason, the blocks are becoming disconnected from the object tracking the reactor. This is why the control panel becomes unresponsive.
What's strange is that this appears to be client-only. Will these broken reactors still produce/output power to connected energy cables?
Would it be possible to get a modlist/modpack link and a copy of that part of your server world, to see if I can reproduce it locally?
I don't know if power is being produced at all as I can't access the reactor at all, but I do know that no power transmits out of the reactor when this bug is occurring. It's my builds running out of energy that brings to my attention the reactor acting like this.
Ok, if the reactor isn't transmitting power out to cables, then the problem is both server- and client-side. The server-side reactor is breaking as well. That's rather concerning.
Might I get a modpack link? I expect this is an interaction with another mod, and I'd like to try reproducing this locally.
http://www.sailus.com/files/1.6.4test.zip
That is our current modpack build...it's intended to run with the technic launcher. If you prefer simply to use the launcher you can use the modpack api link http://www.technicpack.net/api/modpack/eaveecraft-lite-pack within the launcher.
As for a portion of the server maps...I can provide it but the issue is the issue seems to resolve itself after a restart and then creep back sometime later...I'm not sure I could provide a map copy where you'd see the issue instantly...it might take a while to trigger.
On a side note, if you would like my assistance in obtaining more information...if you could add a command into the mod where if I use the command and then maybe click the reactor it can produce a logfile for you with any information that would be helpful to you...I could be certain to provide you logs when the reactors are acting up.
That's a good idea, except I don't think it will work in this circumstance. The interesting point is whenever the reactor "breaks" - part of it seems to disconnect or disable.
Quick other question - when a reactor breaks like this, does it still look whole? i.e. It has the fancy frame graphics, the controller is red or green, etc.? Or does it look like a broken reactor, with unconnected textures and a black controller screen?
When it "breaks", it looks perfectly fine...the control panel is usually green and it only ever seems to break down while in operation.
Breaking the control panel and replacing it usually comes back showing black and then producing the control rod missing error I mentioned previously...with a restart though it all magically fixes.
I will provide a screenshot next time it happens.
While it may be unrelated, I normally use ender energy cables from enderIO to draw power from the reactors. Usually when the reactor breaks those cables look "unconnected" from the reactor although they were fine earlier.
I should point out though that same unconnected effect happens many times after a restart too although they still function correctly afterwards. It's another one of those oddities I can't always reproduce but thought I would mention it.
Ok. Let me try to come up with some debugging tools that will help us here.
There. Uploaded a new one - small oversight in the debug code could crash the server. This one passes my smoketests.
Same file name, so just redownload it: https://dl.dropboxusercontent.com/u/436028/BigReactors-0.2.15X1.jar
Okay, I'm going to make a special debug build for you. If you right-click a reactor with a vanilla-Minecraft arrow in your hand, the reactor will be put into "debug mode" until it unloads. It will log a huge amount of spam every time a block disconnects from this reactor - normally, that should only happen when a player breaks a block, or a chunk unloads.
It will also log whenever a reactor disassembles, internally. This should happen when a reactor is whole (whether or not it's operating), and should appear shortly after a block is removed from the reactor. Again, either due to chunk unloads or parts being removed.
I suspect something is causing a part to get removed from the reactor somehow.
Here is an experimental version of BR 0.2.15: https://dl.dropboxusercontent.com/u/436028/BigReactors-0.2.15X1.jar
This contains both a fix for the client crash and the rightclick-a-reactor-while-holding-an-arrow debug code.
I suggest only switching debug mode on for a single reactor (e.g. the one in your base that you've mentioned is acting up) and then ensuring that that reactor remains loaded the entire time. Chunkloaders or players, either way. When it breaks, please check your server logs. You should see something like this:
2014-01-10 23:14:08 [INFO] [ForgeModLoader] [SERVER] Machine 483387077 is disassembling. Check above here for stacktraces indicating why this reactor broke.
Look above there for any stacktraces, which should be preceded by something like this:
2014-01-10 23:14:08 [INFO] [ForgeModLoader] [SERVER] -85, 6, -371 - Block detaching from machine due to user action
2014-01-10 23:14:08 [INFO] [ForgeModLoader] --- DUMPING STACK ----
If you can paste all that debug information over to me, we may be able to uncover something. On the other hand, if the reactor breaks and we don't see anything like that, we're officially in Very Very Weird territory.