LuckPerms

LuckPerms

41.4k Downloads

Luckperms Fabric slow shutdown process

himekifee opened this issue ยท 5 comments

commented

Description

The issue has already been reported in #3093. Clean fabric server with fabric-api-0.48.0+1.18.2 and LuckPerms-Fabric-5.4.13. When stopping the server (even no player logged in yet), the server hangs after ThreadedAnvilChunkStorage saved everything.

Reproduction Steps

As above said, clean installation on fabric 1.18.2 server.

Expected Behaviour

The server shutdown gracefully and quickly.

Server Details

fabric-server-mc.1.18.2-loader.0.13.3-launcher.0.10.2

LuckPerms Version

v5.4.13

Logs and Configs

[23:51:34 INFO]: Stopping the server
[23:51:34 INFO]: Starting shutdown process...
[23:51:34 INFO]: Closing storage...
[23:51:34 INFO]: Goodbye!
[23:51:34 INFO]: Stopping server
[23:51:34 INFO]: Saving players
[23:51:34 INFO]: Saving worlds
[23:51:35 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld
[23:51:50 DEBUG]: Mixing TypeAwareTradeMixin from fabric-object-builder-v1.mixins.json into net.minecraft.class_3853$class_4162
[23:51:50 DEBUG]: fabric-object-builder-v1.mixins.json:TypeAwareTradeMixin: Class version 61 required is higher than the class version supported by the current version of Mixin (JAVA_16 supports class version 60)
[23:51:50 DEBUG]: fabric-object-builder-v1.mixins.json:TypeAwareTradeMixin->@Inject::failOnNullItem(Lnet/minecraft/class_1297;Ljava/util/Random;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;Lnet/minecraft/class_1799;)V from mod fabric-object-builder-api-v1 does use it's CallbackInfoReturnable
[23:51:52 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether
[23:51:52 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end
[23:51:52 DEBUG]: Starting registry save
[23:51:52 DEBUG]: Not saving registry: minecraft:item
[23:51:52 DEBUG]: Not saving registry: minecraft:block_entity_type
[23:51:52 DEBUG]: Not saving registry: minecraft:custom_stat
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/foliage_placer_type
[23:51:52 DEBUG]: Not saving registry: minecraft:stat_type
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/material_rule
[23:51:52 DEBUG]: Not saving registry: minecraft:attribute
[23:51:52 DEBUG]: Not saving registry: minecraft:position_source_type
[23:51:52 DEBUG]: Not saving registry: minecraft:height_provider_type
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/density_function_type
[23:51:52 DEBUG]: Not saving registry: minecraft:fluid
[23:51:52 DEBUG]: Not saving registry: minecraft:loot_condition_type
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/structure_pool_element
[23:51:52 DEBUG]: Not saving registry: minecraft:activity
[23:51:52 DEBUG]: Not saving registry: minecraft:recipe_serializer
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/feature_size_type
[23:51:52 DEBUG]: Not saving registry: minecraft:point_of_interest_type
[23:51:52 DEBUG]: Skipping un-modded registry: minecraft:mob_effect
[23:51:52 DEBUG]: Not saving registry: minecraft:loot_pool_entry_type
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/block_state_provider_type
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/chunk_generator
[23:51:52 DEBUG]: Not saving registry: minecraft:float_provider_type
[23:51:52 DEBUG]: Not saving registry: minecraft:chunk_status
[23:51:52 DEBUG]: Not saving registry: minecraft:enchantment
[23:51:52 DEBUG]: Not saving registry: minecraft:loot_function_type
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/structure_processor
[23:51:52 DEBUG]: Not saving registry: minecraft:loot_score_provider_type
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/tree_decorator_type
[23:51:52 DEBUG]: Not saving registry: minecraft:schedule
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/material_condition
[23:51:52 DEBUG]: Not saving registry: minecraft:entity_type
[23:51:52 DEBUG]: Not saving registry: minecraft:villager_profession
[23:51:52 DEBUG]: Not saving registry: minecraft:potion
[23:51:52 DEBUG]: Not saving registry: minecraft:recipe_type
[23:51:52 DEBUG]: Not saving registry: minecraft:int_provider_type
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/feature
[23:51:52 DEBUG]: Not saving registry: minecraft:pos_rule_test
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/structure_placement
[23:51:52 DEBUG]: Not saving registry: minecraft:loot_nbt_provider_type
[23:51:52 DEBUG]: Not saving registry: minecraft:menu
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/trunk_placer_type
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/placement_modifier_type
[23:51:52 DEBUG]: Not saving registry: minecraft:motive
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/carver
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/structure_feature
[23:51:52 DEBUG]: Not saving registry: minecraft:loot_number_provider_type
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/structure_piece
[23:51:52 DEBUG]: Not saving registry: minecraft:sound_event
[23:51:52 DEBUG]: Not saving registry: minecraft:particle_type
[23:51:52 DEBUG]: Not saving registry: minecraft:game_event
[23:51:52 DEBUG]: Not saving registry: minecraft:worldgen/biome_source
[23:51:52 DEBUG]: Not saving registry: minecraft:villager_type
[23:51:52 DEBUG]: Not saving registry: minecraft:block_predicate_type
[23:51:52 DEBUG]: Not saving registry: minecraft:block
[23:51:52 DEBUG]: Not saving registry: minecraft:sensor_type
[23:51:52 DEBUG]: Not saving registry: minecraft:rule_test
[23:51:52 DEBUG]: Not saving registry: minecraft:memory_module_type
[23:51:52 DEBUG]: Not saving empty registry data
[23:51:52 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
[23:51:52 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[23:51:52 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[23:51:52 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved
[23:51:52 DEBUG]: Worker-Main-24 shutdown
[23:51:52 DEBUG]: Worker-Main-44 shutdown
[23:51:52 DEBUG]: Worker-Main-35 shutdown
[23:51:52 DEBUG]: Worker-Main-33 shutdown
[23:51:52 DEBUG]: Worker-Main-46 shutdown
[23:51:52 DEBUG]: Worker-Main-43 shutdown
[23:51:52 DEBUG]: Worker-Main-25 shutdown
[23:51:52 DEBUG]: Worker-Main-30 shutdown
[23:51:52 DEBUG]: Worker-Main-26 shutdown
[23:51:52 DEBUG]: Worker-Main-39 shutdown
[23:51:52 DEBUG]: Worker-Main-45 shutdown
[23:51:52 DEBUG]: Worker-Main-34 shutdown
[23:51:52 DEBUG]: Worker-Main-31 shutdown
[23:51:52 DEBUG]: Worker-Main-27 shutdown
[23:51:52 DEBUG]: Worker-Main-38 shutdown
[23:51:52 DEBUG]: Worker-Main-42 shutdown
[23:51:52 DEBUG]: Worker-Main-32 shutdown
[23:51:52 DEBUG]: Worker-Main-29 shutdown
[23:51:52 DEBUG]: Worker-Main-37 shutdown
[23:51:52 DEBUG]: Worker-Main-41 shutdown
[23:51:52 DEBUG]: Worker-Main-28 shutdown
[23:51:52 DEBUG]: Worker-Main-40 shutdown
[23:51:52 DEBUG]: Worker-Main-36 shutdown
[23:52:21 DEBUG]: Worker-Bootstrap-11 shutdown
[23:53:21 DEBUG]: Worker-Bootstrap-9 shutdown
[23:54:21 DEBUG]: Worker-Bootstrap-15 shutdown
[23:55:21 DEBUG]: Worker-Bootstrap-12 shutdown

Extra Details

Interestingly, it seems to be related to some sort of timeout as it shows in the log. Focus on the last 4 log entries, they have a constant 1 min gap between each. I naturally go find some code but unfortunately, there are multiple occurrences of 1-minute timeout.

commented

Tried to change every occurrence of (1, TimeUnit.MINUTES) to something like 15 secs, no help, always 1 min. Also changed all (60, TimeUnit.SECONDS). Maybe an issue conjunction with some mc logic.

commented

Profiler shows no activity of those bootstrap threads.
img

commented

Tried using the PostgresSql driver. No change at all.

commented

Tried GraalVM, same.

commented

Thanks for reporting, should be resolved in the latest version :)