Zrips / CMI

117 stars 99 forks source link

Bug or not? Teleports #9240

Open GG-MD opened 3 weeks ago

GG-MD commented 3 weeks ago

Description of Issue

Hello. I have some players, about three out of a hundred, complaining that when they teleport to spawn or their home point from a long distance, the teleportation doesn’t happen instantly but after about five seconds. Also, after teleporting, if they start moving or doing something, their ping increases from 1000 to 3000. Could there be some bug in your plugin? There are no teleportation delays set in the plugin settings.

This issue only occurs when there are many players online, starting from around 60.

Version Information

Latest
1.21.1 purpur latest

Errors

-

Relevant Config Sections

No response

Relevant Plugins

No response

Agreements

mrfloris commented 3 weeks ago

Please provide some additional information, like the full output of /ver and /cmi version, just 'latest' means nothing as time goes by and new releases can come out, and the full output gives additional details - saving time for you a- waiting, and zrips b- guessing the details or c- having to constantly ask for them.

The lack of info makes it a guessing game, I am guessing you're outdated on cmilib and cmi, and use cmi chat bubbles and this bug has been resolved in the latest updates. If my guess is wrong, then provide more details on the issue.

GG-MD commented 3 weeks ago

Please provide some additional information, like the full output of /ver and /cmi version, just 'latest' means nothing as time goes by and new releases can come out, and the full output gives additional details - saving time for you a- waiting, and zrips b- guessing the details or c- having to constantly ask for them.

The lack of info makes it a guessing game, I am guessing you're outdated on cmilib and cmi, and use cmi chat bubbles and this bug has been resolved in the latest updates. If my guess is wrong, then provide more details on the issue.

18:36:48 INFO: Версия плагина CMI: 9.7.6.11 SqLite 18:36:48 INFO: CMILib: 1.5.1.5 -> 1.5.1.6 18:36:48 INFO: Версия сервера: Purpur(2326) 1.21.1-R0.1-SNAPSHOT- 18:36:48 INFO: CMI Экономика: Вкл Версия Vault: 1.7.3-CMICMI Чат: Выкл 18:36:48 INFO: Модули -> 33 включено 34 отключено: spawnerProximity, cuffed, customMessages, mirror, tablist, armorEffects, moneyCheque, skin, elytraBoost, rideAnimation, elytraLaunch, bossBarCompass, coloredArmor, elevator, chatBubble, votifier, shulkerBackpack, attachedCommands, spawnerCharge, interactiveCommands, namePlates, timedCommands, hpBossBar, anvilRenameColor, jail, paintingEditor, dynamicSigns, playerChatTag, durabilityLoss, deathMessages, disabledEnchants, worldLimitsElytra, ranks, silentChest

GG-MD commented 3 weeks ago

Please provide some additional information, like the full output of /ver and /cmi version, just 'latest' means nothing as time goes by and new releases can come out, and the full output gives additional details - saving time for you a- waiting, and zrips b- guessing the details or c- having to constantly ask for them.

The lack of info makes it a guessing game, I am guessing you're outdated on cmilib and cmi, and use cmi chat bubbles and this bug has been resolved in the latest updates. If my guess is wrong, then provide more details on the issue.

You are wrong.

GG-MD commented 3 weeks ago

I’m calling on you, as I’ve been waiting for a while :) @Zrips

mrfloris commented 3 weeks ago

Please provide some additional information, like the full output of /ver and /cmi version, just 'latest' means nothing as time goes by and new releases can come out, and the full output gives additional details - saving time for you a- waiting, and zrips b- guessing the details or c- having to constantly ask for them. The lack of info makes it a guessing game, I am guessing you're outdated on cmilib and cmi, and use cmi chat bubbles and this bug has been resolved in the latest updates. If my guess is wrong, then provide more details on the issue.

You are wrong.

That's possible, but I had this issue, then I upgraded after the changelog says it fixed it, I tested after upgrading and it's working as expected now. Hence why I mention it. It's possible you found an issue with it that affects you and not everybody, it doesn't mean I am wrong.

GG-MD commented 3 weeks ago

Please provide some additional information, like the full output of /ver and /cmi version, just 'latest' means nothing as time goes by and new releases can come out, and the full output gives additional details - saving time for you a- waiting, and zrips b- guessing the details or c- having to constantly ask for them.

The lack of info makes it a guessing game, I am guessing you're outdated on cmilib and cmi, and use cmi chat bubbles and this bug has been resolved in the latest updates. If my guess is wrong, then provide more details on the issue.

You are wrong.

That's possible, but I had this issue, then I upgraded after the changelog says it fixed it, I tested after upgrading and it's working as expected now. Hence why I mention it. It's possible you found an issue with it that affects you and not everybody, it doesn't mean I am wrong.

I sent the information about the plugin and modules above. None of the things you mentioned are being used, which is why I’m saying you’re wrong.

This issue affects 0.2% of players, specifically 3-4 players out of 100. I don’t think the problem is with your plugin and believe it’s an issue only for them, but at the same time, it can’t just be an internet coincidence specifically during teleportations. That’s why I opened a report to find out if there’s such a bug and to determine for myself whether to look for the issue in other plugins or not.

Zrips commented 2 weeks ago

@GG-MD Well when @mrfloris mentioned output from /cmi version he wasn't wrong saying that this provides better idea of what you have and saves time, specifically that output indicates exact versions of CMI, CMILib and your servers with exact version numbers which provides quite a bit of information to work with. Having information that its "latest" can be misleading when all 3 of those could (or not) receive multiple updates and then someone needs to figure out what versions existed at the time this was the "latest". That aside. Teleportations are being performed in Async, so maybe there is some sort of high traffic issue where server puts players teleportation into queue until other tasks are done, which would create this long delay without actually lagging server. Does this issue only happen with /spawn /home commands or does it generally apply to all teleport relating commands? And does this issue happen when you teleport between worlds? Having long distance teleports would usually mean that destination chunk is unloaded at the moment, and CMI does perform some safety checks where player can teleport, which would queue up chunk load to check destination location. Tho, spawn area usually would be loaded in, if you are at worlds spawn then it's always loaded, so this would not be the cause of the issue, atleast when you teleport to spawn. More data would need to be collected to get better idea what's going on, but it doesn't look like a common issue, so could be caused by your specific server setup. Not ruling out CMI here, but as its extremely rare, doesn't produce any error messages, does make it extremely hard (or impossible) to debug at my end. Do you have safe teleportation permission enabled for players? You could try removing it and observing if issue persists, if it goes away then atleast we will know where to look.

GG-MD commented 2 weeks ago

@GG-MD

Well when @mrfloris mentioned output from /cmi version he wasn't wrong saying that this provides better idea of what you have and saves time, specifically that output indicates exact versions of CMI, CMILib and your servers with exact version numbers which provides quite a bit of information to work with. Having information that its "latest" can be misleading when all 3 of those could (or not) receive multiple updates and then someone needs to figure out what versions existed at the time this was the "latest".

That aside. Teleportations are being performed in Async, so maybe there is some sort of high traffic issue where server puts players teleportation into queue until other tasks are done, which would create this long delay without actually lagging server.

Does this issue only happen with /spawn /home commands or does it generally apply to all teleport relating commands? And does this issue happen when you teleport between worlds? Having long distance teleports would usually mean that destination chunk is unloaded at the moment, and CMI does perform some safety checks where player can teleport, which would queue up chunk load to check destination location. Tho, spawn area usually would be loaded in, if you are at worlds spawn then it's always loaded, so this would not be the cause of the issue, atleast when you teleport to spawn. More data would need to be collected to get better idea what's going on, but it doesn't look like a common issue, so could be caused by your specific server setup.

Not ruling out CMI here, but as its extremely rare, doesn't produce any error messages, does make it extremely hard (or impossible) to debug at my end.

Do you have safe teleportation permission enabled for players? You could try removing it and observing if issue persists, if it goes away then atleast we will know where to look.

@Zrips Hi, players don’t have the safe teleport permission (cmi.safeteleport). At the time of writing this report, /cmi version matches what I shared in the comments.

The player reports that this issue occurs specifically with /home and, less frequently, with /rtp. Regarding /spawn, I was mistaken — this never happens to the player when teleporting to spawn.

Here’s my config setup:

  Teleport:
    # Players need to have cmi.safeteleport permission node to be placed in a safe location when teleporting to target location
    # When true, while checking for safe location, we will try to determine it going down, and if it fails, then up from target location
    # When set to false, then first of all location above target location will be checked, then down
    SafeLocationDownThenUp: false
    # Time in seconds player should be invulnerable after teleporting
    # This will prevent player who teleported from damaging others for defined time
    # Set this to 0 if you want to disable it
    # Max 60 seconds
    Invulnerability: 0
    # Set to true if you want to use tp commands as /cmi tp [WhoYouWantToTeleport] [WhereToTeleport]; when it’s false, it’s /cmi tp [whereToTeleport] [WhoYouWantToTeleport]
    SwitchPlaces: true
    CurrentLoc:
      # Applies for tpa, tpahere, and tpaall only
      # If set to true, the player will be teleported to the current position after accepting a teleport request
      # If set to false, the player will be teleported to the position where the teleport request was issued
      tpa: true
      # Applies for tpahere only
      tpahere: false
GG-MD commented 2 weeks ago

Also, all chunks are fully loaded using Chunky.

Zrips commented 2 weeks ago

rtp would generally scan chunks on its own pace, so that one would be hard to test as its already performing bunch of things async can could naturally take several seconds to complete based on few factors. Chunky would only generate chunks, while chunks itself tend to unload after certain period when no one is around that area. If its only happening with things like /home, aka teleporting to distant areas which are less visited, that could indicate issue with chunks being unloaded and for some reason taking time to be loaded. If your players don't have safe teleport then it could be something different. Does this issue happen with things like /warp or /back?

GG-MD commented 2 weeks ago

rtp would generally scan chunks on its own pace, so that one would be hard to test as its already performing bunch of things async can could naturally take several seconds to complete based on few factors. Chunky would only generate chunks, while chunks itself tend to unload after certain period when no one is around that area. If its only happening with things like /home, aka teleporting to distant areas which are less visited, that could indicate issue with chunks being unloaded and for some reason taking time to be loaded. If your players don't have safe teleport then it could be something different.

Does this issue happen with things like /warp or /back?

I can’t check for issues with /back since players experiencing this problem don’t have access to that command. This happens specifically when there is a peak number of players online on weekends. There are no issues with /warp because we use a different plugin for it (PlayerWarps), and players frequently teleport to all warps.

Random teleportation — this rarely happens. (Although my colleagues, who have around 150 players online, don’t face this issue, unlike me.)

As for teleporting to players, warps, or spawn — these all work perfectly fine.

Yes, agreed, chunks do unload—haha, I forgot :)

Zrips commented 2 weeks ago

At this moment we are only left with /home commands sometimes misbehaving. There is semy special exception with this command is that it does check block type of homes location before teleporting in case block which created home location by interacting with it got removed, but if this was an issue it would be more common, as noticed going around the code that this check was performed on all teleports and not only on home bed type ones, so that gets a fix with next update. But if there was an issue with block check for you then it will not really resolve your issue in particular. With next update could you keep an eye on that weird delay and check if it happen when player tried to teleport to their bed home location or not, would give some idea what went wrong if it only happens with bed home locations

GG-MD commented 2 weeks ago

At this moment we are only left with /home commands sometimes misbehaving. There is semy special exception with this command is that it does check block type of homes location before teleporting in case block which created home location by interacting with it got removed, but if this was an issue it would be more common, as noticed going around the code that this check was performed on all teleports and not only on home bed type ones, so that gets a fix with next update. But if there was an issue with block check for you then it will not really resolve your issue in particular.

With next update could you keep an eye on that weird delay and check if it happen when player tried to teleport to their bed home location or not, would give some idea what went wrong if it only happens with bed home locations

Alright, I’ll check it without any issues and will definitely let you know here.