I need advice/help on tracing something down. Water blocks are not always updating to the client on a dedicated server.
The repeat-by is simple: Turn off the water flow, and place a bucket on the ground. The same world (copied from SMP to single player) works just fine in single player -- all placements of water show up, and all removals of water (empty bucket) go away.
But in SMP, I can place a bucket, and nothing shows; log out, log back in, and the water is there. And, I suspect that there are occasions where water is removed but still shows. I know that when water flow is on, Reika's machines can trigger exactly that.
I have no clue how to begin tracing this, or looking for the cause.
All I can say for certain is that it works in single player, and fails in dedicated multiplayer.
I am having a issue kinda like this in single player . The water is not always flowing even when water flow is turned on . Its like sometimes not all the time the water stops flowing ,but if I toggle water flowing with the command to false and back to true I will see it flowing again .
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
First question: What do you have the update ranges set to in the config file? I strongly recommend keeping them identical, and lower them if necessary. I personally have to put them down to 3 if I am near an ocean.
There is a bug if they have different values, then the "backlogged queue" just grows and grows. I don't think it's from anything I did, but I don't know if that behavior is in 4Head's release.
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
I'm trying to understand how the equalization tasks were actually supposed to work in the old version.
I'm looking at your DoRandomTicks (FluidManager.java, line 358). It looks like, instead of making three random updates, it will add at most 3 things to the equalize task list, but only if the blocks it finds are fluid, and if the total number of things added to the equalizer list for that minichunk is less than the NEAR/FAR limit.
So, if the NEAR and FAR limit default to 1 and 16 (yes, I triple checked that!), then it will basically ignore the FAR setting, and not do much in the NEAR setting. Worse, the config file mentions that NEAR and FAR are chunk distance -- so it looks like you're supposed to do NEAR equalizations so many chunks out, but it's actually being used as a limit count.
Basically: Am I completely off-base? How was this supposed to work?
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
I'm trying to understand how the equalization tasks were actually supposed to work in the old version.
I'm looking at your DoRandomTicks (FluidManager.java, line 358). It looks like, instead of making three random updates, it will add at most 3 things to the equalize task list, but only if the blocks it finds are fluid, and if the total number of things added to the equalizer list for that minichunk is less than the NEAR/FAR limit.
So, if the NEAR and FAR limit default to 1 and 16 (yes, I triple checked that!), then it will basically ignore the FAR setting, and not do much in the NEAR setting. Worse, the config file mentions that NEAR and FAR are chunk distance -- so it looks like you're supposed to do NEAR equalizations so many chunks out, but it's actually being used as a limit count.
Basically: Am I completely off-base? How was this supposed to work?
Honestly? I don't remember.
Probably it was supposed to use a separate near/far range, and a separate near/far quota. At least, that's probably broadly what I was thinking of at the time... Is it possible that I simply muddled up the range and quota fields or something?
Rollback Post to RevisionRollBack
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
The Meaning of Life, the Universe, and Everything.
Location:
My Mind Palace
Join Date:
3/15/2014
Posts:
120
Minecraft:
Patrick13542
Member Details
Hey 4Head, do you have any plans for updating to 1.8 just yet? Don't get me wrong, I totally get that modding takes time... That's the reason I don't do it much, that and I'm not that great with java.
The stack traces point to vanilla code, at the endSection() calls. There is no sign of any of this code in the stack trace. Additionally, all of the profiling done here is from the root at the top -- so if I did pop twice by mistake, it should crash me.
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
With no other mods, just this broken one, here's the stack trace
[22:27:51] [Client thread/FATAL]: Unreported exception thrown!
java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:400) ~[?:1.7.0_72]
at java.util.ArrayList.remove(ArrayList.java:477) ~[?:1.7.0_72]
at net.minecraft.profiler.Profiler.endSection(Profiler.java:66) ~[Profiler.class:?]
at net.minecraft.profiler.Profiler.endStartSection(Profiler.java:173) ~[Profiler.class:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1042) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_72]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_72]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_72]
at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_72]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
at GradleStart.main(Unknown Source) [start/:?]
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Oh, that's really weird... Just to clarify; this is only being caused by the profiler graph?
It seems to think that there's an item in an empty list. It's possibly some kind of race condition... maybe some extra code fails to add an item to the list or flags something that shouldn't be flagged. I'll try and find time to play around tomorrow evening, but if it's not a problem in the rewrite then you are on your own with this one.
Rollback Post to RevisionRollBack
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
If I'm reading this right, then as soon as it goes into this section, it has one more profiler endSection() call than there is a corresponding startSection().
This is where I'm crashing vanilla code from my code. My code is no-where to be seen in the stacktrace, but I seem to be triggering this.
So:
1. Am I reading this as a vanilla/forge bug correctly, and
2. WTN did I do to trigger this control flow?
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
So, I detest doing this, and I'm extremely dissatisfied with how strict they're being regarding 'inappropriate' language, but I just happened to feel like rereading your signature, and then by a similar stroke of fate, I so happened to spot that abbreviation at the end of your previous post. I do so hope I'm not drawing unwanted attention (Such that may provoke the wrath of all-too-sensitive and reserved people) to it, but I do feel that you should change it to avoid an incident.
Again, I really dislike having to do this and how they're treating the situation, but I would rather at least try and help rather than sit by and have you possibly be banned (An overly-harsh punishment for something that shouldn't have a punishment to begin with) for an indeterminate amount of time.
My guess is that your code does something to mess up the profiler (or triggers a hidden bug deep inside the game). I'm really not sure why that would be happening. First I would try to eliminate the environment as the problem (so, test with and without your RFO build in exactly the same environment - you probably already did this when you tested my concept mod).
If that doesn't help, I would start by figuring out the ways in which the profiler could end up calling #remove on an empty list (so, checking all references to the list, figure out which methods would need to be called/not called, etc). Once you figure out how the crash could be happening, it should be much easier to figure out how/whether your code is causing it.
As for the Chunk.rebuild being expensive. Yep. Re-rendering the chunks can cost more than the actual flow algorithm
This is because the chunks need to get converted into a mesh before they can be drawn on the screen. If the blocks change, we need to regenerate this mesh. I call this 're-rendering', but that's probably not the best word for it (the vanilla game refers to it as lots of things - building, tessellating, etc).
Anyway, since RFO causes lots of block changes, we need to rebuild lots of chunks. The rewrite makes this a little bit better by deferring client updates, but that's the best I can do without rewriting basically the entire game :'(
Rollback Post to RevisionRollBack
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
So, I detest doing this, and I'm extremely dissatisfied with how strict they're being regarding 'inappropriate' language, but I just happened to feel like rereading your signature, and then by a similar stroke of fate, I so happened to spot that abbreviation at the end of your previous post. I do so hope I'm not drawing unwanted attention (Such that may provoke the wrath of all-too-sensitive and reserved people) to it, but I do feel that you should change it to avoid an incident.
Again, I really dislike having to do this and how they're treating the situation, but I would rather at least try and help rather than sit by and have you possibly be banned (An overly-harsh punishment for something that shouldn't have a punishment to begin with) for an indeterminate amount of time.
Thank you; I have edited that previous message.
Frankly, I suspect that if it had been mentioned to a moderator, then I'd be considered to be an informed repeat offender, and given a 3-day posting ban. Which might mean I'd get something done :-)
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
1. All my calls to the profiler go through a test to make sure my start and stop profiles match (they do).
2. I am only doing profiling on chunk unload.
3. Testing shows that when I cross a chunk boundary, all the unloads happen, then some loads start to happen, then it crashes in entity handling. (NB: different runs will crash at different points. )
4. It never crashes in my code, or when my code is on the stack.
I'm just going to call this "as fast as can be at the moment", and just assume that the slow speed is due to the redraw, and not due to anything I'm doing.
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
boomringleader, you can slow the water flow by changing I:globalIdealUpdateInterval= and I:globalMaxUpdateInterval= in finitewater.cfg
I am having a issue kinda like this in single player . The water is not always flowing even when water flow is turned on . Its like sometimes not all the time the water stops flowing ,but if I toggle water flowing with the command to false and back to true I will see it flowing again .
grumble grumble world.isRemote grumble grumble need to check everything grumble grumble
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Part 2 of the RoC and RFO combination fun.
Watch on YouTube
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
First question: What do you have the update ranges set to in the config file? I strongly recommend keeping them identical, and lower them if necessary. I personally have to put them down to 3 if I am near an ocean.
There is a bug if they have different values, then the "backlogged queue" just grows and grows. I don't think it's from anything I did, but I don't know if that behavior is in 4Head's release.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
4Head:
I'm trying to understand how the equalization tasks were actually supposed to work in the old version.
I'm looking at your DoRandomTicks (FluidManager.java, line 358). It looks like, instead of making three random updates, it will add at most 3 things to the equalize task list, but only if the blocks it finds are fluid, and if the total number of things added to the equalizer list for that minichunk is less than the NEAR/FAR limit.
So, if the NEAR and FAR limit default to 1 and 16 (yes, I triple checked that!), then it will basically ignore the FAR setting, and not do much in the NEAR setting. Worse, the config file mentions that NEAR and FAR are chunk distance -- so it looks like you're supposed to do NEAR equalizations so many chunks out, but it's actually being used as a limit count.
Basically: Am I completely off-base? How was this supposed to work?
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Honestly? I don't remember.
Probably it was supposed to use a separate near/far range, and a separate near/far quota. At least, that's probably broadly what I was thinking of at the time... Is it possible that I simply muddled up the range and quota fields or something?
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
I am in need of help with the profiler.
There is a broken version up at https://bitbucket.org/keybounce/minecraft-finite-fluids/downloads
It is single player only (unrestricted client-side calls).
It will crash when shift-F3 profiler is turned on.
What I can't figure out is *why*. I am triggering crashes in vanilla calls to the profiler.
Source is up at that same bitbucket.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Hey 4Head, do you have any plans for updating to 1.8 just yet? Don't get me wrong, I totally get that modding takes time... That's the reason I don't do it much, that and I'm not that great with java.
Lots of stuff changed in 1.8, particularly with block setting, but 'm planning to start trying to port it once I get something out for 1.7.10 (again).
Unfortunately, I've been really busy with work lately, so progress is a little slow.
Re: Profiler. Ummmmm... Not sure why that would happen... sounds strange... Do you get any logs or stack traces?
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
The stack traces point to vanilla code, at the endSection() calls. There is no sign of any of this code in the stack trace. Additionally, all of the profiling done here is from the root at the top -- so if I did pop twice by mistake, it should crash me.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
With no other mods, just this broken one, here's the stack trace
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Oh, that's really weird... Just to clarify; this is only being caused by the profiler graph?
It seems to think that there's an item in an empty list. It's possibly some kind of race condition... maybe some extra code fails to add an item to the list or flags something that shouldn't be flagged. I'll try and find time to play around tomorrow evening, but if it's not a problem in the rewrite then you are on your own with this one.
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
I never even tested your shipped version. Good catch.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
So, a quick load of a single player world, with your shipped concept mod:
1. Shift-f3 works.
2. gameRender.level.updateChunks.rebuild is 50% of the CPU, (EDIT: 0% in a normal vanilla world).
3. All the system supplied profiler names are camelCase; I used spaces. Hmm ...
EDIT: Here's a picture of a river after removing streams :-)
(Sadly, it quickly went back to "normal", after about 5 minutes or so.)
(Or not? It wants a file less than 1GB, but the screenshot is only 720KB.)
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Alright, I think I need a code review of Vanilla code.
Minecraft.java, line 1008, runGameLoop:
Starts section root, then goes through the sections
tick, preRenderErrors, sound, render
Then, inside render, it starts display
Then, on line 1061, it ends the section, which goes back to render.
Next is this section:
If I'm reading this right, then as soon as it goes into this section, it has one more profiler endSection() call than there is a corresponding startSection().
This is where I'm crashing vanilla code from my code. My code is no-where to be seen in the stacktrace, but I seem to be triggering this.
So:
1. Am I reading this as a vanilla/forge bug correctly, and
2. WTN did I do to trigger this control flow?
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
So, I detest doing this, and I'm extremely dissatisfied with how strict they're being regarding 'inappropriate' language, but I just happened to feel like rereading your signature, and then by a similar stroke of fate, I so happened to spot that abbreviation at the end of your previous post. I do so hope I'm not drawing unwanted attention (Such that may provoke the wrath of all-too-sensitive and reserved people) to it, but I do feel that you should change it to avoid an incident.
Again, I really dislike having to do this and how they're treating the situation, but I would rather at least try and help rather than sit by and have you possibly be banned (An overly-harsh punishment for something that shouldn't have a punishment to begin with) for an indeterminate amount of time.
My guess is that your code does something to mess up the profiler (or triggers a hidden bug deep inside the game). I'm really not sure why that would be happening. First I would try to eliminate the environment as the problem (so, test with and without your RFO build in exactly the same environment - you probably already did this when you tested my concept mod).
If that doesn't help, I would start by figuring out the ways in which the profiler could end up calling #remove on an empty list (so, checking all references to the list, figure out which methods would need to be called/not called, etc). Once you figure out how the crash could be happening, it should be much easier to figure out how/whether your code is causing it.
As for the Chunk.rebuild being expensive. Yep. Re-rendering the chunks can cost more than the actual flow algorithm
This is because the chunks need to get converted into a mesh before they can be drawn on the screen. If the blocks change, we need to regenerate this mesh. I call this 're-rendering', but that's probably not the best word for it (the vanilla game refers to it as lots of things - building, tessellating, etc).
Anyway, since RFO causes lots of block changes, we need to rebuild lots of chunks. The rewrite makes this a little bit better by deferring client updates, but that's the best I can do without rewriting basically the entire game :'(
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
Thank you; I have edited that previous message.
Frankly, I suspect that if it had been mentioned to a moderator, then I'd be considered to be an informed repeat offender, and given a 3-day posting ban. Which might mean I'd get something done :-)
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Ok, I now give up on trying to profile. If anyone can solve this, *PLEASE*, help me.
https://bitbucket.org/keybounce/minecraft-finite-fluids/commits/008a9dfc6f464c611badb892372e973126d2d61c
What I have here:
1. All my calls to the profiler go through a test to make sure my start and stop profiles match (they do).
2. I am only doing profiling on chunk unload.
3. Testing shows that when I cross a chunk boundary, all the unloads happen, then some loads start to happen, then it crashes in entity handling. (NB: different runs will crash at different points. )
4. It never crashes in my code, or when my code is on the stack.
I'm just going to call this "as fast as can be at the moment", and just assume that the slow speed is due to the redraw, and not due to anything I'm doing.
Sigh.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?