As most of you know, coal blocks are supposed to burn forever. And so they do, unless the burning material happens to sit at a chunk boundary… The fire algorithm can in rare circumstances extinguish such a fire, taking the burning block away with it.
Big thanks to Spooner for sending me a reproducible test case.
I have investigated the issue and I have to sadly report that I currently see no easy way of fixing it! The proper way is to introduce another block type for forever burning fire, but this solution is totally out of proportion with the problem we I am trying to solve. There is a trivial workaround to avoid your fire blocks disappearing: move them away from chunk boundary (chunks are 16×16 blocks large).
This coal block sits at the (invisible) chunk boundary, and so may disappear if you move away
The fix will be trivial once we migrate to 32 bit blocks. I will just reserve one bit to say that the fire should never get extinguished. As it stands now, all bits are used for fire data, so there’s no space to save that information.
I will give it some more thought. There are hacky solutions, but they are nasty and there is a risk of introducing more issues. Maybe I’ll find something better. For now, just move your fireplaces and balloons!