Hello Minecraft Community, I have recently been playing again on a Minecraft survival world I had created a few months back, and just yesterday I came across something really odd. It wasn't anything new unfortunately because this has happened in several worlds I have played on, though I had no answer as to why this bug was occurring. Yesterday I was just mining and creating my own mineshaft, and so I logged off within the mineshaft. When I came on today, I was returning to my base when suddenly the path was blocked off. I knew I had mined through the ravine yesterday so I thought it had to be a chunk error, and so I was correct.
I then proceeded to mine through the chunk error and saw how it was very different to the rest of the surrounding area, in the video which I will link below, the cobblestone I had placed there as a path. Anyway I then proceeded to enter spectator mode just to see what else has happened throughout my world. I then witnessed a lot of chunk errors. Does anybody have an explanation as to what in the world is causing this to occur??? It would really help me out as to what I can do so this does not happen again.
Are you quitting the game normally, as in clicking "save and quit to title", then "quit game"? If you are, and the game/your computer has not crashed while playing it could be due to a still-unfixed bug that is responsible for many forms of world corruption. Specifically, the game runs an internal server on a separate thread, which does not terminate immediately when you quit the world and as a result it can cause issues with deleting a world (you can't delete files that are in use and/or the game writes chunks to disk after they were deleted) or the save process can be interrupted (the client sets the internal server object to null immediately after calling its shutdown method).
In particular, you might have gotten this error (obfuscated) the last time you quit, although it only appears in the game output and is not logged:
java.io.IOException: Stream Closed
at java.io.RandomAccessFile.seek(Native Method)
"RegionFile.setOffset" writes the location of a chunk within a region file - and if it is not written correctly it will return incorrect data, even an old copy of a chunk (the game handles a region file in a similar manner to a filesystem; chunks are stored in sectors and not every contiguous sector may be used since if a chunk changes in size it may have to be moved to the end in order to grow or moved to an empty slot near the beginning if it can fit. As with filesystems the game does not erase the contents of free sectors after relocating a chunk so it would be possible to recover the data within them if the offset were restored).
The threaded file IO also has its own issues that can cause chunks to become corrupted, again due to poor synchronization between threads (the first issue is very easy to fix by forcing the client to wait until the internal server thread has terminated before you can do anything else, all you need is a while loop and I have not been able to reproduce any of the issues mentioned).
Also, the issue that you have seems to have become much more common since around 1.8 since I did not see it reported much before then, and have actually never seen it happen in 1.6.4 or earlier despite the errors above (note that a chunk will not become mislocated if the offset did not change since the last time it was saved and this is the sort of bug that is very difficult to reproduce). Of course, it could also be caused by faulty hardware (disk or memory) but I'd expect that you'd have other issues. If the world was created in a version prior to 1.7 you could be experiencing regenerated chunks, but from what I saw in the video the area you are in was generated in 1.7 or later (savanna biomes and 1.8 stones).
NB: Note that these issues have been known for a LONG time and even have known fixes, including on the bug tracker (for example), yet Mojang just goes, "eh, who cares if your world gets corrupted; lets add colored beds!".