Pocketmine-mp: Extreme FPS drop and weird chiseled stone brick texture

Created on 2 Jun 2017  Â·  37Comments  Â·  Source: pmmp/PocketMine-MP

Issue description




When using the latest version of the api3/blocks branch, something extremely strange happened, which keeps occuring over and over again. So it may sound really weird, but here it goes. Sometimes, when walking around or joining the game, the client seems to be stuck in a chiseled stone brick block. Huge amounts of block sounds can be heard when this happens. Over the coming 5-10 seconds the client completely freezes because of the FPS lag. Teleporting does not seem to work. Kicking the player through console is the only way that seems to work.

Now too badly I do not know how to reproduce this issue. It happens not very occasionally, and seem to occur most when teleporting and with walking on slabs and stairs. The chiseled stone bricks block always show up, even though there were absolutely none nearby.

Steps to reproduce the issue

  1. Possible reproduction methods mentioned above.

OS and versions

  • PocketMine-MP: api3/blocks: 7a3ee42bfa719ae5642e89672a0ab88112587890
  • PHP: 7.0
  • Server OS: Ubuntu
  • Game version: PE (possibly win10)

Crashdump, backtrace or other files


I also noticed the issue below. I do not know whether this has to do with it or not.

[Server thread/CRITICAL]: TypeError: "Argument 1 passed to pocketmine\Player::sendPosition() must be an instance of pocketmine\math\Vector3, null given, called in phar:///
home/blabla/PocketMine-MP.phar/src/pocketmine/Player.php on line 2189" (EXCEPTION) in "/src/pocketmine/Player" at line 3838
Core Gameplay Fixed

Most helpful comment

Update your plugins to use entityRuntimeId instead of eid for AddPlayerPackets and AddEntityPackets.

All 37 comments

Do you have a full backtrace for this?

Okay I can confirm this issue is NOT from that error. I'm actually suspecting a plugin, because I keep 'teleporting' to the same spot. I'll try and get a backtrace of that issue once I get it again and report back.

screenshot_2017-06-02-22-06-45
@Sandertv does this look familiar? ^

That is EXACTLY my issue @dktapps.

Yeah, it's a tricky one to reproduce... seems to happen when the client tries to move and the server reverts it... not 100% sure why. I've seen the coordinates randomly become NaN for reasons I don't understand too. Will investigate further.

@Muqsit do you know by any chance if there's a creature/monster at that spot where you get stuck in the stone? In my case it brings me to the same spot under one of my 'boss creatures' every single time, and this issue doesn't occur if I remove the plugin. Likely something to do with entities.

This can be noticed easily when you teleport the player to another world. Some more things (mojang issues) that happen during this event are:

  • You can see an emerald (not right above your head, maybe right above your head + X:2,Y:0,Z:2). You'll need to go in F3 mode to notice this.
  • If you see right beneath your feet, you'll notice a TON of stone bricks, not the block, but some sort of an entity. There are just so many of those stone bricks looking entity (I think it's falling sand with a changed data flag) that it completes a full circle as it is spawned in the same direction with different yaws. And it keeps on spawning soo many that over time, it causes a lot of FPS lag and finally freezes the client.

@Sandertv I do see a spider on top of my head, but I can be mistaken as I haven't tried this in full vanilla (as in no plugins). Not sure if that's a mojang bug but I'll try.

I tried getting a screenshot:
You can notice the emerald on top of my head and a lot of stone thingy beneath my feet (you'll need to zoom in maybe, as it's being merged with andesite)
screenshot_20170603-042437
The world name is "lobby1" in this case
/status:
20170603_042714

Update your plugins to use entityRuntimeId instead of eid for AddPlayerPackets and AddEntityPackets.

You're right @jojoe77777!
The issue of the stone entities is still very weird though. I can confirm that this bug has been in the came at least since 1.0. When creating an entity riding plugin there, bumping into a wall would cause the exact same insane FPS lag until eventually the player would freeze. Perhaps this IS an MCPE issue.

When creating an entity riding plugin there, bumping into a wall would cause the exact same insane FPS lag

Reproduced this with in-core riding.
This is an issue that pmmp constantly teleports the client back because the SetEntityMotionPacket not being decoded and applied to the entities. Adding a proper encoding for the class and some plugin that handles the packet values + applies them to the movement values fixes the packet spam and stops that lag.

a lot of stone thingy

Confirmed, walking/sprinting particles. Automatically applied by the client when walking with a specific speed, in this case changing motion really fast.

No. This is an issue with client/server movement reversion. The client will still attempt to send movements even when the server has reverted it. A crossover with those sometimes causes this issue. It has nothing to do with motion.

why mojang out a buggy mcpe, whyyy

No, this isn't a client-sided issue. It's been around for a while. PocketMine has many problems related to teleportation.

This is an issue with client/server movement reversion

thats exactly what i wanted to say, thanks for clarifying.

How to reproduce:~

~ Join CosmicPE.
~ Walk Like 5-8 Blocks.
~ Wait A Few Sec.
~ FPS Drop To 0.
~ Then Your MCPE Starts To Crashing.
screenshot_2017-06-03-21-24-12
screenshot_2017-06-03-21-24-05

I'd say, related to the setmotion? @dktapps

It has nothing to do with motion.

I also had this problem. I removed all of my entity based plugins, like Pets or Slapper etc.. Now it works.

I can confirm eid -> entityRuntimeId fixes definitely help to cover up the issue, but I can't assume that's the actual core of the issue. Why would the player randomly teleport under one of the entities? That doesn't make sense. Also, I got reports of players still getting this issue even with the fix, so I don't think it always applies.

I managed to reproduce this once without any plugins. If there was a field type issue I'd expect IDEs to highlight it, and I haven't seen anything. I don't believe this issue has anything to do with the eid 0 issue.

Anyone who can reliably reproduce this, would you mind applying the Coordinates Unlocker resource pack and tell what coordinates it thinks you're at when the bug occurs?

With commit b01ad01effbf1de36db5a1124bcbe899b0a4cc29, I can't reproduce because the server crashes (only with the non-fixed version where it's ->eid instead of ->entityRuntimeId):

[16:44:49] [Server thread/INFO]: thejjtesting[/10.0.0.13:57935] logged in with entity id 1 at (world, 10.7892, 16, -9.4084)
[16:44:51] [Server thread/CRITICAL]: Could not pass event 'pocketmine\event\player\PlayerJoinEvent' to 'FloatingText v1.0.0': strlen() expects parameter 1 to be string, null given on surva\floatingtext\EventListener
[16:44:51] [Server thread/CRITICAL]: TypeError: "strlen() expects parameter 1 to be string, null given" (EXCEPTION) in "/src/pocketmine/utils/BinaryStream" at line 268
[16:44:51] [Server thread/INFO]: thejjtesting joined the game
[16:44:51] [Server thread/CRITICAL]: TypeError: "strlen() expects parameter 1 to be string, null given" (EXCEPTION) in "/src/pocketmine/utils/BinaryStream" at line 268
[16:44:51] [Server thread/EMERGENCY]: An unrecoverable error has occurred and the server has crashed. Creating a crash dump
[16:44:51] [Server thread/EMERGENCY]: Please upload the "/Users/jarne/Downloads/PocketMine-MP/crashdumps/Sun_Jun_4-16.44.51-CEST_2017.log" file to the Crash Archive and submit the link to the Bug Reporting page. Give as much info as you can.

It looks like this before the connection quits:

img_3894

With commit 8bb0e8d3985e6f067816fe5b41b8a2cfe2ffac90, the bug appears and it looks like this:

img_3892

And should be like this:

img_3893

maybe a varint encoding issue... hmm.

I'm not sure if this would help, but I just downloaded the newest version of Slapper from Poggit. And in this version, this bug is contained. The older version of Slapper, which I'm using currently, is alright and this bug doesn't appear.

It works because he fixed it like described in one of his previous post, but @dktapps is still searching the reason for it

Guys. It just tp you inside a block ur standing on. I tried on CosmicPE.

On Jun 5, 2017 3:04 AM, "xFlare" notifications@github.com wrote:

Reproduced. This happened on a teleport for me.. and there was no wool
around. I did not get any sounds, just out of control movement jittering.
[image: screenshot_2017-06-04_11 48 59]
https://cloud.githubusercontent.com/assets/10011687/26764551/dc1594fc-4936-11e7-9245-7b64d557628e.png

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pmmp/PocketMine-MP/issues/976#issuecomment-306060059,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARW33Xtwu5ngyqdAp0kAZ19JFYcqsEg6ks5sAv-vgaJpZM4NuxOf
.

I just relized that this happens also with pets. One player of us just spawned a rabbit, using our pets plugin. When I joined the server, I was bugging inside of this pet and the block under it.

@Akuroma that is because the plugin still uses $pk->eid when spawning the entity, instead of $pk->entityRuntimeId. If there are no entities that use this wrong property, you only happen to be teleported inside the block you're standing on. If there IS an entity with this wrong property stuff, you get teleported inside the block below the entity, no matter how far away you are from it.

If anything is using an incorrect packet field as of the latest commits, it should trigger a crash...

I had this issue. As @Sandertv & @jojoe77777 said, you need to replace $pk->eid by $pk->entityRuntimeId. This issue will be fixed!

I've seen this happen during multiworld teleports using ManyWorlds. Not certain if it's a plugin bug or core.

http://imgur.com/3Rqnex5

Happened when I opened this chest on CosmicPE I heard a bunch of sounds like I was walking on blocks and being pushed back? Might be a different issue

Thats the problem I'm having too.

On Jun 7, 2017 12:23 PM, "Shane Malin" notifications@github.com wrote:

http://imgur.com/3Rqnex5

Happened when I opened this chest on CosmicPE i think? I heard a bunch of
sounds like I was walking on blocks and being pushed back? Might be a
different issue

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pmmp/PocketMine-MP/issues/976#issuecomment-306682695,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARW33dWd7VhWEj1Kct3fg7Igvt4PUwwOks5sBiXFgaJpZM4NuxOf
.

Can anybody reproduce this with #1153 ?

Since that commit this does no longer occur for me. Time to close. Thanks @dktapps.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jasonwynn10 picture jasonwynn10  Â·  3Comments

HipsterAF picture HipsterAF  Â·  3Comments

Muqsit picture Muqsit  Â·  3Comments

nmo0ory picture nmo0ory  Â·  3Comments

TheDiamondYT1 picture TheDiamondYT1  Â·  3Comments