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... 🙂

Related issues

MC-1283 Able to add repeats of same generator element to superflat MC-1630 Creating a superflat world of chests freezes the game MC-1954 Bug when generating map of flowers MC-2178 Superflat tnt crash MC-2687 Minecraft crash when updating entities and their neighbors. MC-2870 Mincraft crashes while loading chunks MC-3855 Crash and little ram On thin Snow MC-4135 Crash of unknown reason MC-4423 Game Crashes Upon Superflat World's First Layer Being Set as Levers MC-4445 1 layer ice world bug MC-4918 Minecraft crashes after destroying snow. MC-4993 Significant Superflat Custom World Generation Error MC-5288 Minecraft neighbour updating crash MC-6432 Too many tripwires causes crash MC-6693 Crash MC-6716 Carrot tree crashing 1.4.6 server MC-9513 Exception while updating neighbours MC-9520 Superflat block update stack overflow MC-11171 Newly generated world loading. MC-11185 Minecraft Ice Crash MC-12592 Block update MC-13454 Crash after loading singleplayer world MC-14818 Crashes because of too many blocks, crashed within 10 seconds MC-15599 Crashes because used cheat to create blocks, now cant delete because crashes within 10 seconds!!! MC-15975 Superflat "Bed" MC-16121 'server closed' in singleplayer MC-18197 Game crashed! Also <World> bug when loaded back up! MC-28391 If you create a new superflat world and set a preset for "70,46",it crashes the game, and duplicates the launcher. MC-29566 Hopper: java.lang.StackOverflowError MC-29595 Hopper: java.lang.StackOverflowError MC-29603 Hopper: java.lang.StackOverflowError MC-29610 Hopper: java.lang.StackOverflowError MC-29786 Hopper: java.lang.StackOverflowError MC-30136 Hopper: java.lang.StackOverflowError MC-30138 Hopper: java.lang.StackOverflowError MC-30285 Hopper: java.lang.StackOverflowError MC-30295 Hopper: java.lang.StackOverflowError MC-30455 Hopper: java.lang.StackOverflowError MC-30952 Crash In Superflat MC-31447 Crash when using Locked Chest in Preset MC-31600 Hopper: java.lang.StackOverflowError MC-31738 Hopper: java.lang.StackOverflowError MC-31901 Hopper: java.lang.StackOverflowError MC-32257 Hopper: java.lang.StackOverflowError MC-32692 Hopper: java.lang.StackOverflowError MC-32903 Hopper: java.lang.StackOverflowError MC-33078 Hopper: java.lang.StackOverflowError MC-33218 Hopper: java.lang.StackOverflowError MC-39728 Super Flat Worlds with Sugar Cane Crashes Game MC-41228 Using Block 63 or 68 (Signs) in a superflat preset causes minecraft to crash MC-42517 Generating Custom Superflat World with Doors as Layer Crashes Game MC-42691 Crash in TNT MC-44288 Custom Superflat World crashes minecraft MC-47334 Preset bug MC-139971 Making superflat layers of specific non solid blocks result in game crash as soon as there is an update MC-186637 Basalt forms infinitely towards negative X MC-186959 Breaking the floor in a superflat bed world crashes the game MC-213430 Loading progress malfuntioning

Comments

migrated

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)

Erik Broes

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

migrated

After all, we are stress-testing Minecraft. 🙂

migrated

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.

migrated

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

migrated

According to you, LordAro, the game should not crash even if you make it do impossible stuff.

That's like saying a car should still work after you total it. It's not going to happen.

User error is not a valid bug. Grum is right.

migrated

obviously it shouldn't work. but a program shouldn't allow users to do stupid stuff. programs are made for stupid users. (no offense 😛 )
all it needs is an error message before (instead of) world generation that says "bohoo! sorry, you can't do that!"

migrated

This bug is no longer just about one layer of fire. My bug was marked as a duplicate of it (6432), which involved creating a super-flat that had a layer of tripwires. I was trying to see if zombie pigmen would spawn on (really in) tripwires. The easiest way for me to check was to create a superflat world with a layer of tripwires and set the biome to 8 (Nether).

I did the same thing for half-slabs and pressure plates (no spawns on either of those).

It may not be possible to have a real world with just fire, but I could certainly have a real world with many, many tripwires. I would hope that would work.

migrated

@Xavier I'd say it's more like a car exploding if you tilt the seat too far forward and turn the steering wheel to the left while the parking brake is on. It would be terrible if your entire web browser crashed because you put a "~" between the "http" and the "://" or executed an infinite loop in some javascript somewhere.

Errors that can be handled gracefully should be, preferably returning the game to a functioning state, even if that's just the main menu or a screen with a button to get there.

migrated

That isn't nearly as bad as overloading it with impossible stuff.

migrated

How is MC-1283 duplicate of this??? It's completely different bug!

migrated

you would need mods to do that soi dont think that would be of that much concern.

migrated

@Brad: You do not need any mods to reproduce this bug. All you need to do is make a custom, superflat world.

migrated

I had the same problem. But with "Snow" (Decoration) as the only layer. Destroyed one "Snow" & the game crashed. No error report came up (I don't think). Went back on & there was a chunk of 1 line missing, starting from where I hit it.
P.S: Where do the error reports appear?

pokechu22

@Daniel
On windows, type windows key + r to open run, then type %appdata%
Open .minecraft
Open crash-reports
The most recent one should be on the bottom.
On other operating systems, run may not exist, but appdata still does.

migrated

%appdata% is Windows only. On Linux minecraft's save location is

~/.minecraft

and on Mac it's

~/Library/Application Support/minecraft
pokechu22

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)

pokechu22

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

migrated

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

pokechu22

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.

DrageonDB

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.

migrated

(Unassigned)

Unconfirmed

fire, superflat-world, world-generation

Minecraft 1.4.2

Retrieved