mojira.dev

Trevor Hardy

Assigned

No issues.

Reported

MCPE-87003 Unplayable Lag on Bedrock Server v1.16 (Ubuntu Server 18.04 LTS) Duplicate MCPE-64299 Chests Disappeared, placeholder still there, contents inaccessible Duplicate

Comments

I can also confirm that the missing chests have indeed reappeared in my kids' world; sadly minus their contents, however.

There seems to be a similar issue with Bedrock Edition servers on Linux - bug report here: BDS-2574

Apparently it also affects containers.

There's some suggestion this has existed since at least bedrock v1.14, but I think people are only really noticing it in large numbers now that performance has degraded to the point it has become unplayable.

Minecraft Bedrock v1.16 on Ubuntu Server 18.04 LTS VM on Hyper-V Server. Dual Xeon E5-2667v2 (4GHz max frequency), Intel S2600CO4, 256GB registered ECC RAM, dual Intel 750 NVMe SSDs.

Lag hasn't been great on this world for a while, particularly around the home base that has a few dozen villagers, extensive mines, lots of torches etc. However, after the Nether Update (v1.16) dropped this week (the server auto-updates and runs a backup every morning at 4am) this world/server is basically unplayable in the Overworld (if you can make it to the Nether, that is much more playable). Clearly a world that's been played in for a year or so is going to have quite a lot of changes, but the result is that it takes about twenty minutes to load in the world (everything's transparent and you can't move the character until then), and then everything is very laggy and stuttery. Shooting a bow causes the arrow to drop out of the sky about halfway to the target, mobs move like a 1 frame per three second slideshow. Giving the server a whole hour to load the world doesn't help - the immediate environment may render, but as soon as you start moving around you can quickly find areas with no textures loaded (and that's just running - flying is impossible as you hit invisible walls almost immediately).

To investigate this, I've tried numerous things. First I added extra CPU cores and memory (usually has 4 cores and 8GB RAM allocated), increasing the CPU and memory weight so the Hyper-V server prioritises this VM over everything else (8 CPU cores and 64GB of RAM allocated). Memory usage typically only hits 2 or 3GB, but I wanted to see what would happen if I gave it everything I could - it made no difference. Whatever the limitation is with a Minecraft server, it isn't performance of the underlying hardware.

I went into the world and used the /kill command to kill everything, logged out and back in, it made no difference.

So I'm at a loss here - my son spent all week bouncing off the walls waiting to play the new Nether update, only to have his expectations dashed with a game that's utterly unplayable. He's had to satisfy himself with playing local worlds generated on the PC.

Why has the 1.16 update caused such catastrophic performance issues? He's been building in that world for ages, there's no way we're just going to abandon it and start again. But we're stuck between a rock and a hard place, because it is completely, totally unplayable in its current state.

As other people have noticed, with no one logged in the server's performance is fine - ~99% idle CPU. The moment a single player logs in, CPU is maxed out. Here's a snapshot of top:

[media]

I tried throwing 16 CPU cores at it, makes no difference.

[media]

(all other VMs have a relative weight of 100, so this minecraft server will be prioritised for all CPU loads)

[media]

(again, all other VMs have the default memory weight, so the minecraft server will take priority for memory space. Not that that's an issue - of the 256GB available on the host server, only around 64GB is currently allocated to running VMs).

This is before user login:

[media]

This is after (with one active user not moving):

[media]

Even though it's showing 31% idle, it is completely unplayable - the character doesn't even move, it is locked in place as the world attempts to load, and frequently crashes the bedrock_server process thread.

Hey Mojang, you have a MASSIVE problem with your Linux code - if you had this problem on Windows the Internet would light up with outrage. We've also noticed problems since 1.14 but been told on user forums we probably have too many mobs, but despite the performance degradation in heavily populated areas (main town with dozens of villagers), in most areas the game remained playable. It isn't playable any longer - it's completely broken.

While putting this together, I managed to see it hit 1600% CPU utilisation. Here's a snapshot I took just seconds before:

[media]

It only showed as 1600% for a single refresh poll (about three seconds). At the next refresh, it dropped down to 100%, and 'id' (idle percentage) in the top bar showed 99.9%. Bizarrely it wasn't crashing - the player was standing next to a bed at night, and right-clicking on it allowed the player to sleep (albeit taking about five times longer than it should have). The player 'awoke' in the morning and stood next to the bed, yet the world was still an invisible wireframe.

[media]

While writing this, the world loaded around the player. I took a look around using the Elytra, and within seconds had reached the outer limit of the draw distance, hitting an invisible wall. Not seeing anything noteworthy, I logged out and shut down the app, but then noticed the CPU on the server was still flat out:

[media]

It took around five minutes before it closed whatever it was about the bedrock_server thread that was causing the CPU to max out.

Sadly htop doesn't provide a great deal more in the way of detailed insight into the bedrock_server process:

[media]

Although I did then observe immediately after capturing that screenshot that most threads seemed to crash, leaving only a single thread running at 100% trying to do the job of all the rest of them - for the player, the world was still stuck in the same partially-loaded state:

[media]

So it is interesting that something about the bedrock server is inefficiently drawing so much CPU power, but also interesting that at some point it becomes a single-threaded operation, which surely must exacerbate the issue?

Question: Is it possible to export a world from Ubuntu Server and import it into Windows? I can spin up a Windows 10 VM in seconds, the reason I'm running Ubuntu Server is because it should, in theory, be vastly more efficient and reliable... Ha!

MadHatter, one of the times this happened to me the game crashed on a PC while a chest was open (being interacted with). As I said, it crashed on the PC, but that's only the client, which I wouldn't have thought would have affected the copy on the server. It's running on an Ubuntu Server 18.04 LTS virtual machine, so the server wasn't affected, but when I logged back in the chest (and the adjacent one) had disappeared.

That doesn't explain all of the invisible chests we've seen, but it might be relevant to expose the issue. It makes me wonder if the problem is caused by Minecraft opening a data field for editing when a chest is opened which isn't written to and closed unless the player correctly closes the chest. Leaving that handle open causes the chest data to be inaccessible to the game, so it can't be rendered. Purely speculation on my part - in many ways, that doesn't make much sense, as data fields don't need to relate to their chest 'containers' at all, it's just a number in a table somewhere. But maybe the cell data (chest contents) can't be accessed because the chest id gets lost somehow? Surely it wouldn't be hard to have an error checking code that looks for data corruption like that and replaces it with a backed up copy? It's scary as heck to think that a double-chest full of items (3,456, often painstakingly collected) can suddenly be lost in an instant, probably because something simple like an ID field got corrupted. And in my experience, this seems to happen in pairs, too - it always seems to be two adjacent chests, which of course could be nearly 7,000 items lost.

Also noticed this with a couple more chests, fortunately they didn't contain anything critical so I'll live with this, but it's incredibly frustrating. About the only thing I've been doing on this Minecraft server lately has been helping my son mine stone and wood, hundreds of stacks of them - if we lose a chest full of 54 stacks of stone or wood that is days of work gone in an instant, which would be crushing.

My suggestion is for others to do what we've been doing as much as possible - if you store as much as possible in Shulker chests, then store the Shunker chests in Ender chests, this bug can't affect you because you can always get to the contents of an Ender chest using other Ender chests (assuming this bug can even affect Ender chests - I've only seen it affect normal chests). Obviously also try to ensure a clean log off - if you get disconnected accidentally for some reason, log back in, then log out properly just to be on the safe side. If this bug relates to inelegant server shutdown after inelegant player disconnection and you're careful about how you log out and reboot the server, this may provide some measure of relief (although I'm purely speculating here - I don't know enough about the issue to draw any solid conclusions, and clearly Mojang aren't providing any feedback).

Hey Mojang? This is a pretty serious bug for you to leave unexamined and unpatched for so long.

Just upvoted because I've seen this behaviour myself. I created a new ticket MCPE-64299 because the original ticket described quite different behaviour, but if all invisible chest issues are being rolled into this ticket and you're now looking for the behaviour I'm experiencing, then great 🙂

Ah ok, fair enough - I could see there were some that appeared closer to my issue, but they weren't root reports so I didn't think that's where I should attach this 🙂

I'll go upvote it now 😉

Thanks for that IonicEcko. I did actually see a number of bugs reporting invisible chest issues, but all of them seemed to suggest that either all chests in those worlds were affected, whereas in mine it only affected three of them (well, that I'm aware of), and those chests usually remain interactive (functional), whereas mine are completely inaccessible. If the chests were accessible I would just collect their contents and replace them - I wouldn't have even bothered with a bug report. But my issue is both more targeted (specific chests) yet far more problematic (imagine if very valuable items had been lost!).

 

I don't know what your rule system is about replicating existing issues/tickets, but to my way of thinking this is actually a different issue in some rather important ways... But it's your bug ticketing system, categorise it however you like 🙂