SlimeDog / AggressiveAnimals

Those cute little animals can kill you
GNU General Public License v3.0
4 stars 1 forks source link

Getting [AggressiveAnimals]: Plugin is getting a faraway chunk at (1875001, 447), this might cause issues. #70

Closed ezriharmusial closed 1 year ago

ezriharmusial commented 1 year ago

Is your question related to a problem?

Yes, at minimum it's flooding my logs. At worse it impacts performance.

Describe the question

How can I keep using the Plugin without it flooding my Logs? What issues could it lead to? And how to solve these? [AggressiveAnimals]: Plugin is getting a faraway chunk at (1875001, 447), this might cause issues.

Thankyou in Advance!

SlimeDog commented 1 year ago

We need more information to evaluate this issue. Please provide the following, including a complete log:

Description A clear and concise description of the issue

Reproduction steps How to reproduce the behavior

Expected behavior A clear and concise description of what you expected to happen

Screenshots If applicable, add screenshots to help explain the problem

Server Environment

Additional context (please use pastebin or a similar site; do not paste logs here) Link to your configuration: Link to error log:

SlimeDog commented 1 year ago

Why is AggressiveAnimals trying to get a "faraway chunk?" I cannot think how it would do that on its own, but waiting to see the configuration and the log.

SlimeDog commented 1 year ago
SlimeDog commented 1 year ago

We cannot reproduce this issue on any of our test systems. We will close the issue in one week, if no further information is provided.

ezriharmusial commented 1 year ago

Hello Slimedog, thankyou for your quick response. I will try and respond to your questions as soon as possible. I don't know if i can answer them all. But your response tells me I got lots to learn.

I'm using this on the 5th iteration of my First minecraft server grown from a bedrock seed. Discovered Minecraft a Year ago and got sort of carried away by it as a Full-Stack web developer.

Am totally new to the minecraft world, and the Java language. But Im learning as I go along. Any help and info is appreciated at this stage.

My Spawn point is near 0, 0, 0 so that does indeed sound like, the problem is in that far away active chunk at first, before AggressiveAnimals even exposes it.

It never came to my mind to limit the world generation. Any tips? Does limiting the world size remove data on faraway chunks like these? I posted this as a question, because I presume it's might not be Aggressive Animals in the first place. Could limiting the world faulty/malicious code in plugin/datapack from even activating that chunk?

SlimeDog commented 1 year ago

I'm using this on the 5th iteration of my First minecraft server grown from a bedrock seed.

I am not sure what that means, but this may well be the cause of the error. A Bedrock Edition world moved to a Java Edition world is likely prone to many problems, among them the fact that a Java Edition world cannot be as large as a Bedrock Edition world (maximum 30M x 30M blocks vs 60M x 60M blocks).

... before AggressiveAnimals even exposes it

AggressiveAnimals does not "expose" chunks. It evaluates the entities in chunks that are loaded by players visiting those chunks. Did a player visit that chunk?

Does limiting the world size remove data on faraway chunks like these?

No. If the chunk already exists, it must be removed manually, by removing the region file during a server shutdown. But the cited chunk may not actually exist; see above wrt the different sizes of Bedrock Edition and Java Edition worlds. It would be good to understand how this chunk was created and what is referencing it, in order to avoid future problems.

Something else is causing the error, but I cannot offer more until you answer the other questions and provide the requested files.

ezriharmusial commented 1 year ago

Thank you for this insight, will come back to you on a later moment.

SlimeDog commented 1 year ago

Please do your part to resolve this issue, by answering the questions so that we can complete the analysis.

ezriharmusial commented 1 year ago

I know this is not what you asked, but i went down learning how coordinates, chunks, and regionfiles are created in Minecraft. But I allready pre-assumed that aggressiveAnimals wasn't responsible. But it was my only lead at the moment, hence i posted it as a question.

I translated this chunk to coordinates and the files responsible. And indeed i found these far away region files, removed them to a temp directory to see if they regenerate. Screenshot 2023-10-23 232522

I disabled AggressiveAnimals plugin to see if this "Extreme" region loads. And they do, so it isn't caused by AggressiveAnimals. AggressiveAnimals only reports the Symptoms.

Now these far away chunks are Always the same region numbers. And You are right that these far away chunks load on player join. It seems like you probably have an idea about why. Can you tell me more about where I should look next to learn?

SlimeDog commented 1 year ago

Can you tell me more about where I should look next to learn?

When you answer the questions. :smile:

For convenience, here they are again, plus a few edits based on the feedback so far:

ezriharmusial commented 1 year ago

I finally found some space to anwer your questions. Thankyou for the patience and help in advance. Truly Appreciate it.

OS [Linux, MacOS, Windows] version: Linux version 6.1.55-1-Manjaro Java version [java -version]: Java 20 Temurin using following flags -Xms24576M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true --add-modules=jdk.incubator.vector

Server version [/version]: current: git-Purpur-2036 (MC: 1.20.1) Previous: git-Purpur-2015 (MC: 1.20.1) You are 26 version(s) behind. Plugins [/plugins]: Paper Plugins: (2):

Link to your configuration (use pastebin or similar; do not copy it here): Dont know which config you mean, so included the things i thought were important: aggressive animals config: https://pastebin.com/9ibncSi3 (virtually unchanged) server properties: https://pastebin.com/mbGDjkEA spigot yml: https://pastebin.com/iVJKYY3N

Link to complete error log (use pastebin or similar; do not copy it here): https://pastebin.com/YMhvUkn5

I hope that this activity is happening on a test server; please confirm. Confirmed. The server is accessible online though. We wanted to launch last month, but this problem is 1 of 2 problems that plague the server.

Chunk (1875001,447) is very far from a typical location (block(X)=30million). Is the world that large? No, the Chunk renders regardless of worldsize. And regenerates at join after deleting it. The worldborder is set to 25000 blocks. Chunky pre-renders 1000 blocks. I use MCASelector to barely used chunks at interval to keep the server profile small. Per above, the spawn point of the world is near 0,0. Yes chunk 7, 20 How was the world created? Originally created in Bedrock as a Singleplayer map a year ago. Converted via https://chunker.app/ to a Java Map around 9 months ago. Removed all but Overworld.

Per above, this issue happens only when a player is connected to the server. The server does not report any of these problems when nobody has yet joined. As soon as I join, the loop starts. What is the player's location? 119, 64, 330

Extra Information: Have been looking at the files being generated only for overworld and not for Nether / End. These Far away regions leave POI and Region files nearly at/around the same coordinates in the Negative and Positive farmost borders. Screenshot 2023-10-23 232522

Using Region files contain 2 structures per chunk containing nothing but blocks with minecraft:air. While POI files create 2 entries per region containing: minecraft:home. They do so as if they are almost running on a code loop.

Screenshot 2023-10-25 180423 Screenshot 2023-10-25 180448

I first discovered this problem trough an error of RealisticSeasons plugin. But neglected it as i did not have any experience in debugging back then. In the mean time the error disappeared with updating the system and its plugins.

Similar experiences here on the RealisticSeasons plugin github https://github.com/casperge/RealisticSeasons-issues/issues/171 (Never officially solved)

It only Appeared in AggressiveAnimals since 1.7.0, before I have never seen this error, even though your plugin was present since the start. I know realisticseasons is not the cause either, since i removed the plugin in this recorded run. But find it interesting that (less then) 1 second before AgressiveAnimals going Crazy, Realistic Seasons sticks out its head. What Process is triggered by players joining that activates both plugins?

Screenshot 2023-10-24 000408

I hope this has informed you adequately. Let me know if you need something else.

SlimeDog commented 1 year ago

Thanks for the detailed response.

Several points:

In any event, I am confident that AggressiveAnimals is not the source of this issue, so I am closing the ticket. Good luck in your researches. I have nothing more to contribute.

ezriharmusial commented 1 year ago

Hey Slimedog,

I disabled commandblocks have removed all my Plugins but aggressive animals. And have only the Terralith datapack and Cavernous datapack as to not break my server.

And still I am still getting faraway chunk problem flooding logs. I'm not saying the plugin is the problem. But I do notice that with Aggressive Animals disabled, deleted faraway chunks don't regenerate on restart.

As soon as I activate aggressive animals, chunks are generated.

Is there any other process Besides commandblocks, datapacks and plugins that can trigger chunkloading?

SlimeDog commented 1 year ago

I have no experience with the two data packs, and am not equipped to test them (and as mentioned before, I do not support Purpur, although I doubt that is the causal agent). Many servers are running AggressiveAnimals without encountering these problems, so I do not think that AA itself is the causal agent. I do not know what else you can try to isolate the problems.

mart-r commented 1 year ago

I'll just point out some things regarding this.

  1. The warning you're seeing is not actually produced by AggressiveAnimals. It's called by something else that uses the logger for the plugin. Given that this behaviour remains when you remove other plugins, I'm left to assume that it's your fork Purpur that does this.
  2. The plugin itself does not access chunks that are not loaded. What it does is the following
    • Listens to creature spawning (which only happens in loaded chunks/close to players)
    • Listens to chunk entities loaded (i.e acts the entities have successfully loaded in a chunk being loaded)
    • Listens to world is initialisation (again, this must be triggered by something else)
    • Listens to entities damaged by another entity (which wouldn't - or at least shouldn't - happen in an unloaded chunk)
    • Listens to player deaths (which - somewhat obviously - shouldn't happen in unloaded chunks)
  3. On top of the above, the plugin keeps track of the entities known to it
    • I.e to make sure they act as we expect within the confines of the plugin
    • However, all entities are untracked when the chunk they are in is unloaded

So there isn't really anything this plugin does to explicitly "get" faraway chunks.

With that said, it's possible for this to happen for a number of reasons:

Other reasons that this could happen would simply be the misidentification of AA as the culprit. There's some piece of code that tries to identify which plugin is responsible for a faraway chunk access. It's possible this piece of code identifies multiple (or no) potential plugins and then simply takes the first one that comes up (i.e alphabetically). Or it could be that the piece of code looking into far away chunk access has a mistake that triggers for some chunks that are not actually far away and reports bigger numbers than were really involved.

With that said, what I would suggest is the following:

I will reiterate again that I do not see how AA would be the underlying culprit here. But it's definitely possible that I've made a mistake somewhere that means it is. So if you've got something that shows that to be the case, we'd be more than happy to look into as well as try and fix the issue.

ezriharmusial commented 1 year ago

I highly doubt AA is the culprit too, I just use it as it's guaranteed to show me the symptons.. so I consider the thread still closed.

However I must say you have shown to be the most helpfull and knowledgable developer I have approached. Including the output and paper discord. So thank you for that.

At least you give me deeper insight as to where to look next. Unless I will find direct proof of the source I won't post here again.