BentoBoxWorld / Level

Add on for BentoBox to calculate island levels for BSkyBlock and AcidIsland. Please read the Wiki!
Eclipse Public License 2.0
25 stars 32 forks source link

Thread dump when user creates an island on acidisland #96

Closed johncsuti closed 5 years ago

johncsuti commented 5 years ago

Description Island level addon with acidisland causes git-paper-225 (mc: 1.14.4) to throw a thread dump that it spams console with.

Steps to reproduce the behavior: Create an acidisland with BentoBox version: 1.8.0 Have the addon Level 1.8.0 installed it will throw a thread dump in console

Expected behavior nothing in console and the server stays responsive

Screenshots If applicable, add screenshots to help explain your problem. Capture

Server Information:

[Please complete the following information:]

Additional context Nothing should be fixed

johncsuti commented 5 years ago

My timings are also broken at about 1-5 tps due to bentobox waiting for something?

https://timings.aikar.co/?id=5a5fd56bbc9b4ec4984e573f33da2c14

johncsuti commented 5 years ago

If i leave the server running it then goes to 20 tps and stays there until someone joins then it drops to 10tps https://timings.aikar.co/?id=ba19f6474f2e478b9aa7d4a8324c9293

tastybento commented 5 years ago

It’s related to island level. Can you share your config.yml for AcidIsland and config.yml for Level? Zip them and drag and drop here.

johncsuti commented 5 years ago

both of those configs are the default i haven't done anything but installed the plugin i am going to have to switch to 1.13.2 to fix this

tastybento commented 5 years ago

There are multiple things going on here. The one you reported at the start (the red texted graphic) is is caused by the Level addon loading and unloading chunks. I can improve that. Look for an updated Level addon.

The timings reports are completely separate to that. The first report appears to be skewed by a single 35 second event of something - it mentions the admin purge command in there, but I'm not sure what that is.

The second report appears to show the connection handler and chunk activity in the AcidIsland Nether World. There's no plugin activity at all in this case. If someone is joining and in that world then I suppose it is just laggy chunk generation. Try and switch off the Nether Island ceiling (it's in the AcidIsland config.yml) and see if that helps. Maybe the lighting calculations are causing the issue.

johncsuti commented 5 years ago

Downloads.zip Here is a zip of my entire bentobox plugin file notice under addons some are disabled. i also noticed islands dont spawn anymore and just report there isn't any safe place to spawn.

johncsuti commented 5 years ago

i am trying to load bentobox with only acid island on a fresh install of it to see if that works

johncsuti commented 5 years ago

2019-11-09_23 12 49

johncsuti commented 5 years ago

console isnt showing anything either Also the timings issues have gone away completely not sure what fixed it as i didn't do anything The tps is now a rock solid 20.0

tastybento commented 5 years ago

I'm not sure what's happening on your server, but I took your zip file and dropped it onto mine and it works fine:

> bbox version
[20:13:52 INFO]: Running PAPER 1.14.4.
[20:13:52 INFO]: BentoBox version: 1.9.0-SNAPSHOT-LOCAL
[20:13:52 INFO]: Database: JSON
[20:13:52 INFO]: Loaded Game Worlds:
[20:13:52 INFO]: acidisland_world (AcidIsland): Overworld, Nether, End
[20:13:52 INFO]: Loaded Addons:
[20:13:52 INFO]: AcidIsland 1.8.0 (ENABLED)
[20:13:52 INFO]: Warps 1.8.1 (ENABLED)

If you are seeing non-enabled addons then there will be errors in the console log during startup. Have a look and see what they say.

tastybento commented 5 years ago

By the way, are you using top-of-tree builds? There was an API breaking change today, so you need to use the latest of both AcidIsland and BentoBox together to make it work.

johncsuti commented 5 years ago

no im not and the disabled addons where caused by me i set the extension to .jar.no

johncsuti commented 5 years ago

so that it wouldn't spam my console while i was working on other things look into the addon folder i sent you

tastybento commented 5 years ago

okay. So, I'm a bit lost on what the situation is right now. Does AcidIsland work for you, or not? If not, share your /bbox version output and also the console log errors (which will be there).

johncsuti commented 5 years ago

[23:26:01 INFO]: Running PAPER 1.14.4. [23:26:01 INFO]: BentoBox version: 1.8.0 [23:26:01 INFO]: Database: JSON [23:26:01 INFO]: Loaded Game Worlds: [23:26:01 INFO]: acidisland_world (AcidIsland): Overworld, Nether, End [23:26:01 INFO]: Loaded Addons: [23:26:01 INFO]: AcidIsland 1.8.0 (ENABLED) [23:26:01 INFO]: Biomes 1.6.0.1 (ENABLED) [23:26:01 INFO]: Challenges 0.8.0 (ENABLED) [23:26:01 INFO]: Level 1.8.0 (ENABLED) [23:26:01 INFO]: MagicCobblestoneGenerator 1.7.0.2 (ENABLED) [23:26:01 INFO]: Warps 1.8.1 (ENABLED)

and there is no errors just typing /ai does nothing

johncsuti commented 5 years ago

when i type ai it tells me in game there is no safe spot to tp me to on my island right now level addon seems to be working

tastybento commented 5 years ago

Delete yourself - it sounds like the world was reset but not the database. So do /acid delete (yourname). Then do /ai to start a new island.

johncsuti commented 5 years ago

[23:30:05 INFO]: johncsuti issued server command: /acid delete johncsuti [23:30:06 INFO]: johncsuti issued server command: /acid delete johncsuti [23:30:11 INFO]: johncsuti issued server command: /ai 23:30:28 ERROR: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH - git-Paper-225 (MC: 1.14.4) --- 23:30:28 ERROR: The server has not responded for 10 seconds! Creating thread dump

23:30:28 ERROR: Server thread dump (Look for plugins here before reporting to Paper!): 23:30:28 ERROR: The server is waiting on these chunks: [[( -30,-51) in 'acidisland_world']]

23:30:28 ERROR: Current Thread: Server thread 23:30:28 ERROR: PID: 18 | Suspended: false | Native: false | State: RUNNABLE

23:30:28 ERROR: java.lang.Thread.yield(Native Method)

23:30:28 ERROR: world.bentobox.level.calculators.CalcIslandLevel$$Lambda$4179/1528657192.run(Unknown Source)

23:30:28 ERROR: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH ---

johncsuti commented 5 years ago

it gave me a new island though and its contently throwing thread dumps

tastybento commented 5 years ago

The thread dumps are because the Level addon is doing a zeroing of the island level when the island is made and the server can't keep up. I've just pushed a newer version of Level that you can try that may help. https://ci.codemc.io/job/BentoBoxWorld/job/Level/292/

johncsuti commented 5 years ago

okay rebooting my server now to test

johncsuti commented 5 years ago

so now it doesn't throw thread dumps but it wont calculate island level when you type ai level

tastybento commented 5 years ago

Please explain more. What happens when you type /ai level?

johncsuti commented 5 years ago

calculating level... Thats it nothing else

can we also speed up deleting islands or will we have to wait for fawe?

tastybento commented 5 years ago

How did you test exactly? Did you replace the addon, start server, login and then type /ai level, or did you do something else?

What happens if you do acid level (your name) in the console?

johncsuti commented 5 years ago

acid level johncsuti [23:48:00 INFO]: Calculating level...

tastybento commented 5 years ago

Okay, I put some code back in. Please try build 293 when it's done. https://ci.codemc.io/job/BentoBoxWorld/job/Level/293/

johncsuti commented 5 years ago

23:57:59 ERROR: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH - git-Paper-225 (MC: 1.14.4) --- 23:57:59 ERROR: The server has not responded for 15 seconds! Creating thread dump

23:57:59 ERROR: Server thread dump (Look for plugins here before reporting to Paper!): 23:57:59 ERROR: The server is waiting on these chunks: [[( -33,38) in 'acidisland_world']]

23:57:59 ERROR: Current Thread: Server thread 23:57:59 ERROR: PID: 18 | Suspended: false | Native: false | State: TIMED_WAITING

23:57:59 ERROR: sun.misc.Unsafe.park(Native Method)

23:57:59 ERROR: world.bentobox.level.calculators.CalcIslandLevel$$Lambda$3967/546186087.run(Unknown Source)

23:57:59 ERROR: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH ---

johncsuti commented 5 years ago

that happens when i type /ai level in game

tastybento commented 5 years ago

in the Level addon config.yml there is this section:

# Number of chunks that will be processed at the same tick.
# Decreasing this will increase time to calculate island level.
chunkspertick: 200

Change that value to 100, or maybe even 50 or lower. Basically, change it until the warning reports stop.

Don't forget to do /bbox reload

johncsuti commented 5 years ago

oh i just restarted the server after i changed to 100

tastybento commented 5 years ago

Restarting the server is fine too.

johncsuti commented 5 years ago

okay i set it to 100 issued server command /ai level from in game and got this about a delete island

00:05:15 ERROR: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH - git-Paper-225 (MC: 1.14.4) --- 00:05:15 ERROR: The server has not responded for 10 seconds! Creating thread dump

00:05:15 ERROR: Server thread dump (Look for plugins here before reporting to Paper!): 00:05:15 ERROR: The server is waiting on these chunks: [[( -63,-29) in 'acidisland_world']]

00:05:15 ERROR: Current Thread: Server thread 00:05:15 ERROR: PID: 18 | Suspended: false | Native: false | State: TIMED_WAITING

00:05:15 ERROR: sun.misc.Unsafe.park(Native Method)

00:05:15 ERROR: world.bentobox.bentobox.util.DeleteIslandChunks$$Lambda$3628/168008687.accept(Unknown Source)

00:05:15 ERROR: world.bentobox.bentobox.util.DeleteIslandChunks$$Lambda$3627/937141248.run(Unknown Source)

00:05:15 ERROR: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH ---

johncsuti commented 5 years ago

also the island level never returned my level number

johncsuti commented 5 years ago

if i run ai level again it does nothing at all

tastybento commented 5 years ago

Hey, I recommend you completely delete all of the BentoBox folder and the AcidIsland worlds and start fresh. If you're seeing island deletion going on then something weird is happening on your server. Maybe there are some island deletes pending in the database or that purge thing. Just clean it all out and start fresh.

johncsuti commented 5 years ago

okay trying that

johncsuti commented 5 years ago

do you want me to use the non snapshot version of level or your latest version?

tastybento commented 5 years ago

Use the latest one anyway. But reduce the value in the config.yml until the warnings go away. It'll mean that level takes longer to calculate. I'll be interested in seeing what value you need. I need to sign off tonight, so let me know how you get on and I'll look at it tomorrow.

johncsuti commented 5 years ago

00:25:34 ERROR: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH - git-Paper-225 (MC: 1.14.4) --- 00:25:34 ERROR: The server has not responded for 15 seconds! Creating thread dump

00:25:34 ERROR: Server thread dump (Look for plugins here before reporting to Paper!): 00:25:34 ERROR: The server is waiting on these chunks: [[( -31,6) in 'acidisland_world']]

00:25:34 ERROR: Current Thread: Server thread 00:25:34 ERROR: PID: 18 | Suspended: false | Native: false | State: TIMED_WAITING

00:25:34 ERROR: sun.misc.Unsafe.park(Native Method)

00:25:34 ERROR: world.bentobox.level.calculators.CalcIslandLevel$$Lambda$3924/78643406.run(Unknown Source)

00:25:34 ERROR: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH ---

When i created an island

tastybento commented 5 years ago

Just keep reducing that number! Maybe try 10 and see if there's any issue. The move up.

johncsuti commented 5 years ago

im at 1 its still happening....

Poslovitch commented 5 years ago

I suppose it's related to this. https://github.com/BentoBoxWorld/BentoBox/issues/1013

johncsuti commented 5 years ago

Yeah i have the same issue when i delete an island it wont be deleted and it will throw a dump like that

johncsuti commented 5 years ago

but i also have an issue waiting for chunks while calculating the island level as soon as you make an island

johncsuti commented 5 years ago

looks like it could be related to this https://github.com/PaperMC/Paper/pull/2647

tastybento commented 5 years ago

Deadlocking is bad. So, it may be a server issue, in which case, it's not something fixable per se, but maybe we can work around it. Try this special version attached. I use the PaperLib to get chunks async. I'd be interested to see how it works for you. Level-1.8.0-SNAPSHOT-LOCAL.jar.zip

johncsuti commented 5 years ago

01:04:23 ERROR: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH - git-Paper-225 (MC: 1.14.4) --- 01:04:23 ERROR: The server has not responded for 10 seconds! Creating thread dump

01:04:23 ERROR: Server thread dump (Look for plugins here before reporting to Paper!): 01:04:23 ERROR: The server is waiting on these chunks: []

01:04:23 ERROR: Current Thread: Server thread 01:04:23 ERROR: PID: 18 | Suspended: false | Native: false | State: RUNNABLE

01:04:23 ERROR: world.bentobox.level.calculators.CalcIslandLevel$$Lambda$3964/769475598.accept(Unknown Source)

01:04:23 ERROR: world.bentobox.level.calculators.CalcIslandLevel$$Lambda$3961/1939363943.accept(Unknown Source)

01:04:23 ERROR: com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor571.execute(Unknown Source)

01:04:23 ERROR: org.bukkit.plugin.EventExecutor$$Lambda$2667/216753335.execute(Unknown Source)

01:04:23 ERROR: world.bentobox.bentobox.managers.island.NewIsland$$Lambda$3882/563603008.run(Unknown Source)

01:04:23 ERROR: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH ---

johncsuti commented 5 years ago

I cant even load an island with this

johncsuti commented 5 years ago

2019-11-11_01 07 25 2019-11-11_01 07 35