mojira.dev
MC-1510

Custom superflat world crashes when certain block type is chosen

I tried to make a superflat world, where the custom preset is set to only generate one layer of fire. After generating and loading the world, the client crashed, and this is the crashlog:

*****

---- Minecraft Crash Report ----
// Hey, that tickles! Hehehe!

Time: 31-10-12 20:00
Description: Exception in server tick loop

java.lang.StackOverflowError
	at zb.b(SourceFile:73)
	at za.c(SourceFile:332)
	at za.a(SourceFile:351)
	at za.a(SourceFile:338)
	at xe.b(SourceFile:296)
	at xe.e(SourceFile:343)
	at aiu.a(SourceFile:249)
	at xe.m(SourceFile:419)
	at xe.h(SourceFile:408)
	at xe.f(SourceFile:365)
	at xe.e(SourceFile:344)
	at aiu.a(SourceFile:249)
    ... and so on.

Relevant Details:
- Minecraft Version: 1.4.2
- Operating System: Windows 7 (amd64) version 6.1
- Java Version: 1.7.0_07, Oracle Corporation
- Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
- Memory: 327751592 bytes (312 MB) / 681705472 bytes (650 MB) up to 954466304 bytes (910 MB)
- JVM Flags: 2 total; -Xms512m -Xmx1024m
- AABB Pool Size: 11 (616 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
- Is Modded: Probably not
- Profiler Position: N/A (disabled)
- Vec3 Pool Size: 1 (56 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
- Player Count: 1 / 8; [ih['zenyl'/0, l='Test', x=-379,50, y=0,62, z=-731,50]]
- World Test Entities: 0 total; []
- World Test Players: 0 total; []
- World Test Chunk Stats: ServerChunkCache: 0 Drop: 0
- Type: Integrated Server
*****

What I expected to happen was that the client would crash, which is what I got.

What actually happened was that the client crashed
Describe what happened here

Steps to Reproduce:
1. Make a custom preset for a superflat world, but only with 1 layer, of fire (51).
2. Let it load (takes some time)
3. Client crash.

This is, of course, a minor bug, but since you guys asked for bugs... πŸ™‚

Linked issues

MC-1283 Able to add repeats of same generator element to superflat Resolved MC-1630 Creating a superflat world of chests freezes the game Resolved MC-1954 Bug when generating map of flowers Resolved MC-2178 Superflat tnt crash Resolved MC-2687 Minecraft crash when updating entities and their neighbors. Resolved

Comments 21

Confirmed. The crash dump winds up with the following chunk of text being repeated over and over:
at aiu.a(SourceFile:249)
at xe.m(SourceFile:419)
at xe.h(SourceFile:408)
at xe.f(SourceFile:365)
at xe.e(SourceFile:344)

(Insert witty comment about watching the world burn here)

I dare to say: no bug, doing stupid shit with the generator is supposed to break you hard.

After all, we are stress-testing Minecraft. πŸ™‚

1 fire disappears, updates fire blocks next to it, they also disappear, update blocks next to them... This repeats infinitely. This is supposed to happen. The bug is that it would take infinite time to do this, so it crashes. It'd be pretty difficult (if possible at all) to change infinite number of blocks in a finite time, and it wouldn't be ever used by sane players, so I agree with Grum.

I strongly disagree that this is not a bug - the client should never crash, it should always handle user errors gracefully

In this case, making sure that selected blocks in the menu are not all transparent would suffice, i'd have thought

11 more comments

Or you can just follow this link:
[file:///%appdata%/.minecraft/crash-reports/]
(For some reason, this may not work, just copy it into the browserbar then)

Well, I am pretty sure "%appdata%" is a global link that's used on all operating systems, not 100% sure though.

Vladislav Toncharov

Damn, who uses recursion in worldgen? Who taught (whoever wrote superflat worldgen) programming? This is shitcode, not a simple bug.

If I recall the actual cause of this bug (which I last tested, oh, 6 years ago back when I knew a lot less (just look at that appdata comment...)), it's not during the world generation, but instead once the world finishes loading and things start ticking. Because when you update one of the fire blocks (or the fire block receives a random update; if you use e.g. ladders then it'll only break when updated manually), it'll update its neighbors, and then those neighbors update their neighbors, for all of them. And since all of the fire blocks are in an invalid state, they all self-destruct, and there's no end to the updating. Now, it could be implemented without recursion by queuing in a list, but there still are far too many blocks for it to finish quickly and it's probably better for it to just crash that way.

Affecting Bedrock Edition. Relates MCPE-115009 and closed as Invalid, I modifying nbt and play with bed flat. When I breaking many beds in infinite beds, the game will crash.

Zenyl

(Unassigned)

Unconfirmed

fire, superflat-world, world-generation

Minecraft 1.4.2

Retrieved