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
is duplicated by 58
relates to 2
Comments 21
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
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.
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.
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)