Grief Prevention

Grief Prevention

1M Downloads

Major Lag Spikes Upon Players Joining And Leaving.

sonnydeacle opened this issue ยท 4 comments

commented

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.
commented

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.

commented

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

commented

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.

commented

Issue was leaderboards. Thanls!