OreCruncher / BetterRain

Based on the BetterRain mod from Wirsbo
20 stars 13 forks source link

Underground Sounds Freeze Client #57

Closed darkphan closed 8 years ago

darkphan commented 8 years ago

Seems there is an issue, and it doesn't log anything when it happens, but on a server that we are testing things on, in one certain area underground, the client will freeze for about 30 seconds.

OreCruncher commented 8 years ago

I haven't experienced anything like that. Does this occur on all clients, or just the one? And which version of the mod are you using?

darkphan commented 8 years ago

In all clients and we have tried the past couple of versions, seems to be any version that has added the under ground sounds. I can try to turn on the debug if you think that might give some clue.

OreCruncher commented 8 years ago

That is really weird. And it only happens in the same general area? This for 1.7.10 or 1.8.9? And what is the Y you are at? Debug - not sure if it would have anything.

darkphan commented 8 years ago

It is in the same area on all clients. We are using the 1.8.9 version, and we are near y 10 or there abouts. I am going live right now if you want to come to the stream and see (twitch.tv/darkphan)

OreCruncher commented 8 years ago

Hmm...I have an idea. Let me check my 1.8.9 first. I have some logic that scans in a region around the player doing the block effects. I wonder if it has a problem with going beneath bedrock.

OreCruncher commented 8 years ago

Do all the clients lock up at the same time? What is the server doing when this happens - does it lock as well? If you could link a client log with the trace when it happens I may be able to see the time gap.

darkphan commented 8 years ago

Only the clients in that area lock up, there is nothing that shows anything odd happening server side, I will see what we can get client side, but not sure what exactly to do there.

OreCruncher commented 8 years ago

I would be looking for unusual time gaps in the log - may point to the issue. Is this pack available somewhere? Can't rule out something from another mod doing something strange.

EDIT: Also, you have the potion overlays enabled? It was new about the time that underground biomes went in. By default it is turned on - you can try turning it off in case it could be the source of the issue.

EDIT2: Which version of Forge are you using? I am using 1722.

OreCruncher commented 8 years ago

@darkphan pinging in case you didn't see the edits of the previous entry. I crawled through the code and nothing stands out An additional question - the lag of 30 seconds. Is the lag the same duration regardless of when it occurs, or is the "30 seconds" more a subjective feel of time? I ask because based on the description it has a feel of a timeout that is being triggered on the main client thread. I am not aware of having anything like that in my code, but I am new to Forge 1.8.9 so something could be hidden down under.

darkphan commented 8 years ago

30 seconds is just a guesstimate, the entire Minecraft client locks up and nothing gets logged etc. I am going through to see what version this first appeared to happen in, I know that it for certain is fine with DynamicSurroundings-1.8.9-2.0.3.2.jar

darkphan commented 8 years ago

Appears to start with DynamicSurroundings-1.8.9-2.0.4.1BETA.jar (I tried 0Beta but that just crashed the client on loading the game, assuming that was patched with 1BETA and beyond). One thing to note the underground/cave sound continues to play while the client is locked up.

OreCruncher commented 8 years ago

OK - I started adding some rendering stuff in the early BETAs. Do you have the potion overlays enabled (the thing that renders potion effects in the upper left corner)? It is on by default but can be turned off.

darkphan commented 8 years ago

I have that disabled.

OreCruncher commented 8 years ago

Forge version?

darkphan commented 8 years ago

11.15.1.1724 (as well as the latest 11.15.1.1732)

OreCruncher commented 8 years ago

OK - I'm using 1722. I will update to see if I can get it to replicate. This is a real baffler - it's not like I do a lot of processing in the client thread.

OreCruncher commented 8 years ago

New test for you. I would like you to add a Json config file turning off dust and steam effects. These effects are new to these BETAs. Create a text file in the dsurround config directory, and then add the name of that file to the "blocks.Config Files" entry in dsurround.cfg. Then start up your client and do what you do.

{
    "entries":[
        {
            "blocks":[
                "minecraft:stone",
                "minecraft:dirt",
                "minecraft:gravel",
                "minecraft:sand"
            ],
            "effectReset":true
        },
        {
            "blocks":[
                "minecraft:water"
            ],
            "effectReset":true
        }

    ]
}
darkphan commented 8 years ago

Still happens, even if I remove all mods except the Dynamic Surroundings mod. I think what I will do is create a new world, and see if we run into issues. Could be something strange with this one area in our world.

OreCruncher commented 8 years ago

I had that thought as well, but it bothers me not knowing specifically what is going on. In my career I experienced enough "it's this other things fault reinstall it" without anyone understanding the root cause. :)

darkphan commented 8 years ago

For now we are probably just going to avoid that one spot. I can also see about zipping up the world file and put that up for you to test with (I made a copy of our server, removed all mods, and still have the issue there, but who knows what could be lingering around, since forge doesn't really remove everything from the world save when mods are removed)

OreCruncher commented 8 years ago

Getting me a zip of the world would be great since it replicates with no other mods. Other thing is to create a new world with the same world seed and go to that spot. It could have been something strange during world gen. From what I understand you have a couple of mods in an early/WIP stage so things may not be as squeak clean as they should.

darkphan commented 8 years ago

I have tested that world file in an instance that only has the dynamicsurroundings mod in it and replicate the issue. You will need to TP to 141, 14, 12 and walk into the cave in front of you, you will see some obsidian and in a few seconds you should experience the lock up.

OreCruncher commented 8 years ago

Got it, thanks! I will let you know what I find.

OreCruncher commented 8 years ago

OK - you ready for this? You know how water/lava drops from under a block if liquid is above it? Well, Minecraft spawns those particles beneath the lowest bedrock layer if the liquid conditions are meant. You don't see these drops and they fall into the void. It's a waste. In terms of Dynamic Surroundings I have logic that tries to determine where the drop is going to land to see if should worry about handling the sound for the "plop". Well, in the void it is WAY down there, and while it processes the client locks up because trying to find the bottom of the Void is an Aegean task.

I will have to make some fixes to detect this condition. In fact, I may add additional code to kill these particles as they aren't needed.

darkphan commented 8 years ago

Thank goodness you were able to figure out what it was!

O13SC3N3 commented 8 years ago

Is this an issue with 1.7.10? Imma gonna have to try by pouring lava on bedrock lol

OreCruncher commented 8 years ago

No, the logic was a bit different. But I reinforced it anyways. :)

O13SC3N3 commented 8 years ago

Yeah ive been playing with it under bedrock. No client crash or lockups, there is a performance drop and is noticeable. When I remove the lava from the bedrock layer performance is back. But whos to say its not with all or any other forms of lava in the area

O13SC3N3 commented 8 years ago

stumbled upon a ravine just now, and the water meeting the lava (steam effect) is like over excessive. cool, but pauls sound code crashed and had to F3+S to reboot.

OreCruncher commented 8 years ago

@O13SC3N3 Can you manage to get a screen shot so I can get an idea of scale? In my testing I have not tripped over something like that, so I may not have the right conditions.

O13SC3N3 commented 8 years ago

yeah ill try I just locked up lol

O13SC3N3 commented 8 years ago

http://i.imgur.com/LycZIWQ.png not as intense as when I crashed, seems there is some randomization with it a bit. But that is the spot where It was literally a blanket of steam particles. Maybe a rare occasion?

OreCruncher commented 8 years ago

Yeah - looks to be pretty intense. Something like that is pretty rare. Still, it crashes and that isn't good. I will have to take a look at the sound system to see what the limits are.

OreCruncher commented 8 years ago

For the next BETA I am putting in some logic to thottle sounds. Goal is to not fill up the sound queue. Also, there are some config options for modifying the number of sound channels, though I think that would be last resort.

OreCruncher commented 8 years ago

BETAs have been posted to CurseForge: http://minecraft.curseforge.com/projects/dynamic-surroundings/files