Luckperms Fabric slow shutdown process
himekifee opened this issue ยท 5 comments
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.
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.