Mystery rendering issue - missing block faces
See original GitHub issueWhat you were trying to do
Test assorted things. This issue has been seen somewhat rarely but in a wide variety of cases. I’m skeptical that it relates to modules active although it may relate to the number of blocks enabled or something? Probably still unlikely.
I flew around the world some until I saw what appeared to be a tree top without a crown at all, no leaves. Flew up toward the spot where the tree trunk appeared to end, wondering if it was a chunk border issue meaning nothing had generated in the next chunk up.
What actually happened
My player got hopelessly stuck when I entered the space that was seemingly not rendering stuff. Felt like when a chunk is broken / stuck unloaded in multiplayer, not just waiting to be made visible (but still having a mesh). Could look around but not move, even with ghost
on. Noticed missing block faces on just some nearby trees, but not at all neatly following chunk borders.
I enabled one of the rendering debug modes for a second screenie and while at first it looked like it might have been showing leaf blocks in a mesh above my head after relogging it seemed more clearly to just be distant chunks. It looked like the chunk edge was near where the tree trunk ended, but possibly not right at the same level.
On exiting to the main menu the missing block faces persisted on the saved game preview screenie.
On re-entering the same world the mystery was gone and all blocks were visible normally again
How to reproduce
- Unknown 😦
This time it happened in single player, but we’ve seen it in multiplayer as well. Making this issue to better track symptoms, as I think we’ve observed things like one player seeing it, yet another player seeing everything perfectly fine in the same spot. Relogging may fix? But with it happening in single player it isn’t like a server is just failing to send some stuff. It seems to be a rendering quirk, yet at times by getting stuck also seems to be a fundamental chunk problem.
Logging
Only clue in the log was an instance of #4135 but that sounded more likely to be about a deer, maybe randomly taking fall damage, either naturally or via server prediction oddly? Strange thing to see for a deer in single player …:
21:57:50.190 [main] INFO o.t.p.i.ReadWriteStorageManager - Auto Saving - Snapshot created: Writing phase starts
21:58:50.225 [main] INFO o.t.p.i.ReadWriteStorageManager - Auto Saving - Creating game snapshot
21:58:50.227 [main] INFO o.t.p.i.ReadWriteStorageManager - Auto Saving - Snapshot created: Writing phase starts
21:59:30.110 [main] ERROR o.t.e.event.internal.EventSystemImpl - Failed to invoke event
java.lang.RuntimeException: Cannot set a changed component with a null component variable
at org.terasology.persistence.internal.EntityDelta.setChangedComponent(EntityDelta.java:34)
at org.terasology.persistence.internal.EntitySetDeltaRecorder.onEntityComponentChange(EntitySetDeltaRecorder.java:70)
at org.terasology.persistence.internal.EntitySetDeltaRecorder.onEntityComponentAdded(EntitySetDeltaRecorder.java:61)
at org.terasology.persistence.internal.ReadWriteStorageManager.onEntityComponentAdded(ReadWriteStorageManager.java:514)
at org.terasology.entitySystem.entity.internal.PojoEntityManager.notifyComponentAdded(PojoEntityManager.java:723)
at org.terasology.entitySystem.entity.internal.PojoEntityManager.addComponent(PojoEntityManager.java:566)
at org.terasology.entitySystem.entity.internal.BaseEntityRef.addComponent(BaseEntityRef.java:168)
at org.terasology.logic.health.RegenAuthoritySystem.onRegenAddedWithoutComponent(RegenAuthoritySystem.java:177)
at org.terasology.logic.health.RegenAuthoritySystemMethodAccess.invoke(Unknown Source)
at org.terasology.entitySystem.event.internal.EventSystemImpl$ByteCodeEventHandlerInfo.invoke(EventSystemImpl.java:532)
at org.terasology.entitySystem.event.internal.EventSystemImpl.sendStandardEvent(EventSystemImpl.java:292)
at org.terasology.entitySystem.event.internal.EventSystemImpl.send(EventSystemImpl.java:283)
at org.terasology.entitySystem.entity.internal.BaseEntityRef.send(BaseEntityRef.java:205)
at org.terasology.logic.health.DamageAuthoritySystem.doDamage(DamageAuthoritySystem.java:106)
at org.terasology.logic.health.DamageAuthoritySystem.checkDamage(DamageAuthoritySystem.java:135)
at org.terasology.logic.health.DamageAuthoritySystem.highSpeedDamage(DamageAuthoritySystem.java:208)
at org.terasology.logic.health.DamageAuthoritySystem.onLand(DamageAuthoritySystem.java:186)
at org.terasology.logic.health.DamageAuthoritySystemMethodAccess.invoke(Unknown Source)
at org.terasology.entitySystem.event.internal.EventSystemImpl$ByteCodeEventHandlerInfo.invoke(EventSystemImpl.java:532)
at org.terasology.entitySystem.event.internal.EventSystemImpl.sendStandardEvent(EventSystemImpl.java:292)
at org.terasology.entitySystem.event.internal.EventSystemImpl.send(EventSystemImpl.java:283)
at org.terasology.entitySystem.entity.internal.BaseEntityRef.send(BaseEntityRef.java:205)
at org.terasology.logic.characters.KinematicCharacterMover.walk(KinematicCharacterMover.java:663)
at org.terasology.logic.characters.KinematicCharacterMover.updatePosition(KinematicCharacterMover.java:570)
at org.terasology.logic.characters.KinematicCharacterMover.step(KinematicCharacterMover.java:104)
at org.terasology.logic.characters.ServerCharacterPredictionSystem.stepState(ServerCharacterPredictionSystem.java:191)
at org.terasology.logic.characters.ServerCharacterPredictionSystem.onPlayerInput(ServerCharacterPredictionSystem.java:143)
at org.terasology.logic.characters.ServerCharacterPredictionSystemMethodAccess.invoke(Unknown Source)
at org.terasology.entitySystem.event.internal.EventSystemImpl$ByteCodeEventHandlerInfo.invoke(EventSystemImpl.java:532)
at org.terasology.entitySystem.event.internal.EventSystemImpl.sendStandardEvent(EventSystemImpl.java:292)
at org.terasology.entitySystem.event.internal.EventSystemImpl.send(EventSystemImpl.java:283)
at org.terasology.entitySystem.entity.internal.BaseEntityRef.send(BaseEntityRef.java:205)
at org.terasology.minion.move.MoveToAction.processDirect(MoveToAction.java:81)
at org.terasology.minion.move.MoveToAction.modify(MoveToAction.java:43)
at org.terasology.logic.behavior.core.ActionNode.execute(ActionNode.java:81)
at org.terasology.logic.behavior.core.SequenceNode.execute(SequenceNode.java:56)
at org.terasology.logic.behavior.actions.LookupAction.modify(LookupAction.java:53)
at org.terasology.logic.behavior.core.ActionNode.execute(ActionNode.java:81)
at org.terasology.logic.behavior.core.SequenceNode.execute(SequenceNode.java:56)
at org.terasology.logic.behavior.actions.LookupAction.modify(LookupAction.java:53)
at org.terasology.logic.behavior.core.ActionNode.execute(ActionNode.java:81)
at org.terasology.logic.behavior.core.DynamicSelectorNode.execute(DynamicSelectorNode.java:54)
at org.terasology.logic.behavior.actions.LookupAction.modify(LookupAction.java:53)
at org.terasology.logic.behavior.core.ActionNode.execute(ActionNode.java:81)
at org.terasology.logic.behavior.core.DelegateNode.execute(DelegateNode.java:91)
at org.terasology.logic.behavior.DefaultBehaviorTreeRunner$1.execute(DefaultBehaviorTreeRunner.java:64)
at org.terasology.logic.behavior.core.DynamicSelectorNode.execute(DynamicSelectorNode.java:54)
at org.terasology.logic.behavior.core.DelegateNode.execute(DelegateNode.java:91)
at org.terasology.logic.behavior.DefaultBehaviorTreeRunner$1.execute(DefaultBehaviorTreeRunner.java:64)
at org.terasology.logic.behavior.DefaultBehaviorTreeRunner.step(DefaultBehaviorTreeRunner.java:84)
at org.terasology.logic.behavior.Interpreter.tick(Interpreter.java:73)
at org.terasology.logic.behavior.BehaviorSystem.update(BehaviorSystem.java:105)
at org.terasology.engine.modes.StateIngame.update(StateIngame.java:171)
at org.terasology.engine.TerasologyEngine.tick(TerasologyEngine.java:472)
at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:435)
at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:411)
at org.terasology.engine.Terasology.main(Terasology.java:182)
Screenie
With one of the debug rendering modes active:
Issue Analytics
- State:
- Created 3 years ago
- Comments:6 (6 by maintainers)
Top GitHub Comments
I think #4353 fixes this.
Fair enough 😃 I wasn’t able to get close to it this time, although at other times I’ve been able to move around similar mystery spots. Will keep an eye out for better screenies - unless it turns out merging #4140 ends up making this disappear as well (or I could have just been seeing things)