Game Lock Related to JourneyMap
border999 opened this issue ยท 20 comments
The log doesn't actually show any crash, only a warning. Is that what you're reporting or did the game actually crash?
It actually just locks up and doesn't ever unlock after that point. I've waited at least an hour on it one time.
I don't actually know what circumstances caused this issue to emerge. It could be my recent update to RandomPatches. But I'm fairly confident that generating a new world probably won't result in this same soft lock. Also there appears to be something causing a memory leak in my pack now so I will get back to you when I figure out what that is.
In that case, please attach the full game log and remove all unrelated third-party mods so we can be sure it's actually Random Things which triggers the issue.
Under which circumstances does it happen? I.e. what do I need to do to reproduce it?
If you're feeling adventurous, getting a (or multiple) thread dump(s) using e.g. VisualVM while it's frozen will probably also help.
Looks like an issue with JourneyMap (might be related to changes in a new version of JourneyMap as it used to work fine for the most part and there was a second report with the same error just today:
#456). Anyhow, they don't provide any source code for their mod, so I can't look further into this, you'll have to report it to them and hope for the best.
Journeymap dev here
@Johni0702
This looks like it has to do with your ViewEntity.kt being a Fake Player but not being an actual FakePlayer object.
#ref 1.12.2
net.minecraftforge.common.util.FakePlayerFactory
net.minecraftforge.common.util.FakePlayer
@Johni0702 Looking through your code a bit more, I see
You're creating a ViewEntity (EntityPlayerSP) on the server. Just have your ViewEntity extend FakePlayer and I think that will resolve this issue and maybe many more of your other issues.
@mysticdrew BP's fake player must not be an ordinary fake player as it's supposed to receive packets as any normal player does (that's how BP works, it tunnels the packets the fake player receives to the client where they're handled while normal world, player, etc. is temporarily swapped with the ones for the respective world).
Beware there are two ViewEntity
classes, one for the server one for the client. Them having the same name is an historical accident, should probably change that at some point as to be less confusing.
Ahh, ok that makes sense.
It is blowing up when I check if the player has the forge marker.
(player.connection.getNetworkManager().channel().attr(NetworkRegistry.FML_MARKER).get())
I do this so I do not send packets to Vanilla players. Your fake player seems to be missing something. I haven't had time to dig in fully yet.
Ah, makes sense, I'm skipping forge's login handshake for the fake players (cause there's no point in having it and it'd probably even break stuff) and I probably missed the marker while trying to replicate the resulting netty pipeline.
I will apply a fix on my end too, just to be safe.
Though we are in maintenance mode for 1.12.2 so it won't be a release with this fix for some time.
I will say, I was unaware of this mod until this bug was brought to my attention.
This mod is pretty dang cool! Good work!
is there a way to fix this? The incompatibility I mean.
Yes, I'll be releasing a version of journeymap with the a fix this weekend, it's more of a patch, until @Johni0702 updates his code.
and I might suggest looking around on curseforge seeing all the newer mods and checking to make sure the ones that look like they do something similar can have such issues fixed before they are ever reported.