Grief Prevention

Grief Prevention

1M Downloads

Server hang due to loading chunks for creative claim features

Folas1337 opened this issue ยท 9 comments

commented

Observed Behavior

My server crashed, leaving some hints towards GriefPrevention being at fault

Expected Behavior

No crash? :D

Reproduction steps

Everything my users have told me they did does not lead to me being able to reproduce the issue.
They said the built some beacons just seconds before it crashed, someone else teleported somewhere but that was about it.

I don't know why it's happening.

Stack trace or error log

https://gist.github.com/Folas1337/9af65bf26409498753f2f2212ecdcad9

Server version

This server is running Paper version git-Paper-290 (MC: 1.18.2) (Implementing API version 1.18.2-R0.1-SNAPSHOT) (Git: af94364)
You are running the latest version
Previous version: git-Paper-286 (MC: 1.18.2)

GriefPrevention version

GriefPrevention version 16.18

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_builders: -1
    world_builder_flat_protected: -1
    world_builders_flat_private: -1
    world_builders_flat: -1
    world_metapolis: -1
  Claims:
    Mode:
      world_builders_flat: Survival
      world_builders: Survival
      world_metapolis: SurvivalRequiringClaims
      world_builders_flat_private: Creative
      world_builder_flat_protected: Creative
    PreventGlobalMonsterEggs: true
    PreventTheft: true
    ProtectCreatures: true
    PreventButtonsSwitches: true
    LockWoodenDoors: false
    LockTrapDoors: false
    LockFenceGates: true
    EnderPearlsRequireAccessTrust: true
    RaidTriggersRequireBuildTrust: true
    ProtectHorses: true
    ProtectDonkeys: true
    ProtectLlamas: true
    InitialBlocks: 1000000
    Claim Blocks Accrued Per Hour:
      Default: 100000
    Max Accrued Claim Blocks:
      Default: 80000000
    Accrued Idle Threshold: 0
    AccruedIdlePercent: 0
    AbandonReturnRatio: 1.0
    AutomaticNewPlayerClaimsRadius: 4
    AutomaticNewPlayerClaimsRadiusMinimum: 0
    ExtendIntoGroundDistance: 400
    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: false
    ManualDeliveryDelaySeconds: 30
    RavagersBreakBlocks: false
    FireSpreadsInClaims: false
    FireDamagesInClaims: false
    LecternReadingRequiresAccessTrust: true
  Spam:
    Enabled: false
    LoginCooldownSeconds: 60
    LoginLogoutNotificationsPerMinute: 5
    ChatSlashCommands: /me;/global;/local
    WhisperSlashCommands: /tell;/pm;/r;/whisper;/msg
    WarningMessage: Please reduce your noise level.  Spammers will be banned.
    BanOffenders: true
    BanMessage: Banned for spam.
    AllowedIpAddresses: 1.2.3.4; 5.6.7.8
    DeathMessageCooldownSeconds: 120
    Logout Message Delay In Seconds: 0
  PvP:
    RulesEnabledInWorld:
      world_builders: false
      world_builder_flat_protected: false
      world_builders_flat_private: false
      world_builders_flat: false
      world_metapolis: false
    ProtectFreshSpawns: true
    PunishLogout: true
    CombatTimeoutSeconds: 15
    AllowCombatItemDrop: true
    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: false
  BlockLandClaimExplosions: false
  BlockSurfaceCreeperExplosions: true
  BlockSurfaceOtherExplosions: true
  LimitSkyTrees: true
  LimitTreeGrowth: false
  PistonMovement: CLAIMS_ONLY
  PistonExplosionSound: true
  FireSpreads: false
  FireDestroys: false
  AdminsGetWhispers: false
  AdminsGetSignNotifications: false
  VisualizationAntiCheatCompatMode: false
  SmartBan: false
  Mute New Players Using Banned Words: false
  MaxPlayersPerIpAddress: 100
  SilenceBans: false
  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: 1
    Included Entry Types:
      Social Activity: false
      Suspicious Activity: false
      Administrative Activity: false
      Debug: false
      Muted Chat Messages: false

Plugin list

Plugins (46): Arceon, ArmorStandEditor, BetterHeads, BKCommonLib, BuildersUtilities, CMILib, CommandBlocks, CoralStay, CustomCommands, DiscordSRV, FartherViewDistance, FastAsyncVoxelSniper, FastAsyncWorldEdit (WorldEdit), GCore, GFly, goBrush, goPaint, GriefPrevention, GWarp, ImageMaps, InvSeePlusPlus, JoinFullServer*, LightCleaner, LuckPerms, Matrix, MultiChat, Multiverse-Core, NBTAPI, PixelPrinter, PlaceholderAPI, PlayerTimeWeather, PlayerWarps, ProtocolLib, RealScoreboard, RocketJoin, SelectionVisualizer, SimpleTpa*, squaremap, squaremap-griefprevention, SuperbVote, UltimateAutoRestart, Vault, ViaBackwards, ViaVersion, Votifier, WorldGuard

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

The crash log points to GP loading chunks to enforce the creative claims mode feature that limits the number of hoppers, beacons, etc. per claim. Probably a very large/long claim.

Imo while GP could do a better job of this, it feels like something that is better left to a per-chunk limitations plugin or something. Would prefer to just see it removed from GP.

commented

The crash log points to GP loading chunks to enforce the creative claims mode feature that limits the number of hoppers, beacons, etc. per claim. Probably a very large/long claim.

Imo while GP could do a better job of this, it feels like something that is better left to a per-chunk limitations plugin or something. Would prefer to just see it removed from GP.

Ha, a user of mine mentioned it happened right after they placed a beacon and as a matter of fact we do have rather large claims which all adds up perfectly. I'll look through the config.yml but do you by heart know if/how I can disable that functionality (I'll edit this once I found it)?

commented

Unfortunately there's no way to toggle just that off. The closest you'll get is changing from Creative to SurvivalRequiringClaims, which doesn't have the active blocks checks but also doesn't have a number of other features like automatic nature restoration on unclaim.

commented

I've figured out that the permission node griefprevention.adminclaims also allows you to be ignored and for my use case this works perfectly fine.
I still suggest removing this feature or at least making it configurable and will thus leave this issue open.

Thanks for the help :)

commented

will thus leave this issue open.

Can you rename the issue since we now have determined what the issue is?

commented

will thus leave this issue open.

Can you rename the issue since we now have determined what the issue is?

Sure, there you go :)

commented

I've also removed GriefPrevention from my server, leading to less problems ever since. I'll leave it open for you but I'll unsubscribe, so don't expect me to see any comments.

commented

@Jikoo You mentioned "Probably a very large/long claim."
I'm having issues and I was searching about.

A player has a huge claim and when he use /trust outside the claim, the server crashes (run out of memory) or creates a lag spike. I suppose that this action do something with the claim, which is not rendering.

What can I do about that?

commented

@austv If you are specifically seeing issues due to /trust you should open a separate issue. This issue is related to problematic creative claim features - block and entity limitations, automatic nature restoration. We will definitely need to see the stack trace or crash log to be able to help, but my suspicion based on your description is that the user has many claims and your server saves to a very low performance drive.