Major Lag Spikes Upon Players Joining And Leaving.
sonnydeacle opened this issue ยท 4 comments
Observed Behavior
Every time a player joins or leaves the server we get massive lag spikes which causes the server to drop to about 5-10tps for a few seconds. Our timings report says that its Grief Prevention causing the https://imgur.com/a/QuLjnqC
Expected Behavior
It should not be lagging?
Reproduction steps
Starting the server.
Stack trace or error log
No response
Server version
[05:24:19 INFO]: Current: git-Purpur-2036 (MC: 1.20.1)*
Previous: git-Paper-134 (MC: 1.20.1)
GriefPrevention version
GriefPrevention version 16.18.1
Configuration
# Default values are perfect for most servers. If you want to customize and have a question, look for the answer here first: http://dev.bukkit.org/bukkit-plugins/grief-prevention/pages/setup-and-configuration/
GriefPrevention:
SeaLevelOverrides:
world: -1
world_nether: -1
pvparena: -1
world_the_end: -1
spawn: -1
flat: -1
arena: -1
Claims:
Mode:
arena: Survival
world_the_end: Disabled
world: Survival
flat: Survival
world_nether: Disabled
pvparena: Disabled
spawn: Disabled
PreventGlobalMonsterEggs: true
PreventTheft: true
ProtectCreatures: true
PreventButtonsSwitches: true
LockWoodenDoors: true
LockTrapDoors: true
LockFenceGates: true
EnderPearlsRequireAccessTrust: true
RaidTriggersRequireBuildTrust: true
ProtectHorses: true
ProtectDonkeys: true
ProtectLlamas: true
InitialBlocks: 100
Claim Blocks Accrued Per Hour:
Default: 0
Max Accrued Claim Blocks:
Default: 80000
Accrued Idle Threshold: 0
AccruedIdlePercent: 0
AbandonReturnRatio: 1.0
AutomaticNewPlayerClaimsRadius: 4
AutomaticNewPlayerClaimsRadiusMinimum: 0
ExtendIntoGroundDistance: 5
MinimumWidth: 5
MinimumArea: 100
MaximumDepth: -2147483648
InvestigationTool: STICK
ModificationTool: GOLDEN_SHOVEL
Expiration:
ChestClaimDays: 7
UnusedClaimDays: 14
AllClaims:
DaysInactive: 60
ExceptWhenOwnerHasTotalClaimBlocks: 10000
ExceptWhenOwnerHasBonusClaimBlocks: 5000
AutomaticNatureRestoration:
SurvivalWorlds: false
AllowTrappedInAdminClaims: false
MaximumNumberOfClaimsPerPlayer: 0
CreationRequiresWorldGuardBuildPermission: true
VillagerTradingRequiresPermission: true
CommandsRequiringAccessTrust: /sethome
DeliverManuals: true
ManualDeliveryDelaySeconds: 30
RavagersBreakBlocks: true
FireSpreadsInClaims: false
FireDamagesInClaims: false
LecternReadingRequiresAccessTrust: true
Spam:
Enabled: false
LoginCooldownSeconds: 60
LoginLogoutNotificationsPerMinute: -1
ChatSlashCommands: /me;/global;/local
WhisperSlashCommands: /tell;/pm;/r;/whisper;/msg
WarningMessage: Please reduce your noise level. Spammers will be banned.
BanOffenders: false
BanMessage: Banned for spam.
AllowedIpAddresses: 1.2.3.4; 5.6.7.8
DeathMessageCooldownSeconds: 120
Logout Message Delay In Seconds: 0
PvP:
RulesEnabledInWorld:
world: true
world_nether: true
pvparena: true
world_the_end: true
spawn: true
flat: true
arena: true
ProtectFreshSpawns: false
PunishLogout: true
CombatTimeoutSeconds: 15
AllowCombatItemDrop: false
BlockedSlashCommands: /home;/vanish;/spawn;/tpa
ProtectPlayersInLandClaims:
PlayerOwnedClaims: true
AdministrativeClaims: true
AdministrativeSubdivisions: true
AllowLavaDumpingNearOtherPlayers:
PvPWorlds: true
NonPvPWorlds: false
AllowFlintAndSteelNearOtherPlayers:
PvPWorlds: true
NonPvPWorlds: false
ProtectPetsOutsideLandClaims: false
Economy:
ClaimBlocksMaxBonus: 0
ClaimBlocksPurchaseCost: 0.0
ClaimBlocksSellValue: 0.0
ProtectItemsDroppedOnDeath:
PvPWorlds: false
NonPvPWorlds: true
BlockLandClaimExplosions: true
BlockSurfaceCreeperExplosions: true
BlockSurfaceOtherExplosions: true
LimitSkyTrees: true
LimitTreeGrowth: false
PistonMovement: CLAIMS_ONLY
PistonExplosionSound: true
FireSpreads: false
FireDestroys: false
AdminsGetWhispers: true
AdminsGetSignNotifications: true
VisualizationAntiCheatCompatMode: false
SmartBan: false
Mute New Players Using Banned Words: false
MaxPlayersPerIpAddress: -1
SilenceBans: true
Siege:
Worlds: []
BreakableBlocks:
- GRASS_BLOCK
- DIRT
- COBBLESTONE
- OAK_PLANKS
- SPRUCE_PLANKS
- BIRCH_PLANKS
- JUNGLE_PLANKS
- ACACIA_PLANKS
- DARK_OAK_PLANKS
- SAND
- GRAVEL
- GLASS
- GRASS
- FERN
- DEAD_BUSH
- WHITE_WOOL
- ORANGE_WOOL
- MAGENTA_WOOL
- LIGHT_BLUE_WOOL
- YELLOW_WOOL
- LIME_WOOL
- PINK_WOOL
- GRAY_WOOL
- LIGHT_GRAY_WOOL
- CYAN_WOOL
- PURPLE_WOOL
- BLUE_WOOL
- BROWN_WOOL
- GREEN_WOOL
- RED_WOOL
- BLACK_WOOL
- SNOW
- GLASS_PANE
DoorsOpenDelayInSeconds: 300
CooldownEndInMinutes: 60
EndermenMoveBlocks: false
SilverfishBreakBlocks: false
CreaturesTrampleCrops: false
RabbitsEatCrops: true
HardModeZombiesBreakDoors: false
Database:
URL: ''
UserName: ''
Password: ''
UseBanCommand: false
BanCommandPattern: ban %name% %reason%
Advanced:
fixNegativeClaimblockAmounts: true
ClaimExpirationCheckRate: 60
OfflinePlayer_cache_days: 90
Abridged Logs:
Days To Keep: 7
Included Entry Types:
Social Activity: true
Suspicious Activity: true
Administrative Activity: false
Debug: false
Muted Chat Messages: false
ConfigVersion: 1
Plugin list
[05:26:27 INFO]: Bukkit Plugins: (88):
[05:26:27 INFO]: - ajLeaderboards, ajParkour, Analyse, *AntiNetherRoof, AureliumSkills, BetterRTP, BetterTeams, BlueSlimeCore, BungeeGuard, BuycraftX
[05:26:27 INFO]: ChatFilter, ChestShop, Citizens, *CMCAlert, CMILib, CombatLogX, CoreProtect, CrazyVouchers, CustomDeathMessages, CyberLevels
[05:26:27 INFO]: DailyRewards, DecentHolograms, DeluxeMenus, DeluxeTags, DiscordSRV, Duels, eGlow, Essentials, EssentialsSpawn, ExcellentCrates
[05:26:27 INFO]: EZColors, FarmLimiter, FastAsyncWorldEdit, floodgate, FreedomChat, Geyser-Spigot, Graves, GriefPrevention, HamsterAPI, *Hub
[05:26:27 INFO]: Images, Infiniteannouncements, InventoryRollbackPlus, InvSeePlusPlus, InvSeePlusPlus_Clear, InvSeePlusPlus_Give, Jobs, LagAssist, LPC, LuckPerms
[05:26:27 INFO]: Mclogs, MiniMOTD, Multiverse-Core, MyCommand, NBTAPI, NexEngine, NoEncryption, PinataParty, PL-Hide, PlaceholderAPI
[05:26:27 INFO]: PlayerPoints, PlayerWarps, PlugManX, PremiumVanish, ProtocolLib, Quests, *RedstoneLimiter, RocketPlaceholders, SayWelcome, Sellwand
[05:26:27 INFO]: ShopGUIPlus, SimpleStaffChat2, Skript, spark, Spartan, SpawnerWrenches, TAB, TempFly, TitleManager, TradeSystem
[05:26:27 INFO]: UltimateAutoRestart, UltraCosmetics, Vault, VoidSpawn, Votifier, WorldGuard, WorldGuardExtraFlags, zAuctionHouseV3
Running without GriefPrevention
- I attempted running the server without GriefPrevention installed.
- The problem does not occur when GriefPrevention is removed from the server.
Running with only GriefPrevention
- I attempted running only GriefPrevention on the server.
- The issue still occurs when GriefPrevention is the only plugin running.
Running on a fresh, clean server installation
- I attempted testing for the issue on a new server.
- The issue still occurs on a new server.
Using unmodified client
- I attempted testing for the issue with the vanilla client.
- The issue still occurs when using the vanilla client.
We appreciate you taking the time to fill out a bug report!
- I searched for similar issues before submitting this bug report.
Do you have a link to the timings report? A single screenshot isn't super helpful. Please also consider running Spark and providing a link to a report from it - Timings can point to a plugin, but it isn't granular enough to actually identify what part of the event handler is having issues.
Best guess is that your disk is really slow so GP loading player data on join is causing a hang. Not good practice on GP's part, should really be using the AsyncPlayerPreLoginEvent.
Do you have a link to the timings report? A single screenshot isn't super helpful. Please also consider running Spark and providing a link to a report from it - Timings can point to a plugin, but it isn't granular enough to actually identify what part of the event handler is having issues.
Best guess is that your disk is really slow so GP loading player data on join is causing a hang. Not good practice on GP's part, should really be using the AsyncPlayerPreLoginEvent.
We are using nvme sdd so don't think its the disk. Here is a link to the report. https://spark.lucko.me/Jo0rzVUSSJ
Sorry, could you please generate your report using the --only-ticks-over
option? I see your max MSPT is 5970, which is indeed terrible, but because the report is averaged out I can't find a specific spot where GP's listeners are a problem.
Overall your heaviest hitter is your leaderboards plugin, and that mostly is due to LP needing to bake its permission cache when users join.