Sorry that this report is so ugly, but I've spent a few hours trying to construct a 'minimal' repro, but this bug is 'intermittent' and it's hard to pin down the conditions that cause it to happen.
To attempt to reproduce this bug:
- Go into the attached world (almostMinimalRepro.zip)
(there may be a lot of debugging output spewing out of the gameloop function)
- do "/function test:init", this will bring you into a lobby with a couple signs
- right click the "Join TEAM red" sign
- right click the "START game" sign
You will be teleported to a random location in the world (e.g. X=193000,Z=258000) and terrain will generate around you.
(1) It may work. If it does, do "/function test:init" and then right click the "start game" sign again; eventually it will fail.
(2) The game may hang in "waiting for chunks" state, where you client sees you falling into the void and no terrain generates and you cannot interact with the server. You'll probably have to kill the client with Task Manager.
(3) The game output log (that appears from the game launcher) may feature various 'fatal' errors of this format:
Notably, however, the game does not ever crash, so there's never an actual crash log.
I have tried to minimize the repro steps more, but the more I minimize, the less commonly it seems to reproduce. (Race condition under load?) Feel free to ask for more info about the handful of functions in the datapack.
The last "significant" operation, which is essential to the repro, is teleporting the player to far off chunks. I have been unable to reproduce this unless the teleport happens in a function called by a gameLoopFunction that's also running other stuff.
I had a brainstorm to change from a gameLoopFunction to a single repeating_command_block that calls the function. Things still similarly fail, except now I get a different fatal error in the log:
That one is probably a more useful stack trace fragment, I imagine.
(As an aside, I am pretty sure this was present in 17w48a as well; I don't know if it existed before that.)