Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Facet provider for class org.terasology.caves.CaveFacet is missing, sometimes #76

Open
soloturn opened this issue Dec 28, 2023 · 2 comments
Labels
Category: Crash Requests, Issues and Changes targeting unexpected terminations, segfaults, etc. Status: Needs Investigation Requires to be checked for feasibility, reproducability, etc. Topic: WorldGen Requests, Issues and Changes related to facets, rasterizers, etc. Type: Bug Issues reporting and PRs fixing problems

Comments

@soloturn
Copy link
Contributor

startup fails from time to time with the following. caves is there.

11:25:15.189 [main] ERROR o.t.e.world.generation.WorldBuilder - Facet provider for class org.terasology.caves.CaveFacet is missing. It is required by class org.terasology.caves.CaveLocationProvider
11:25:15.189 [main] ERROR o.t.engine.core.modes.StateLoading - Error while loading org.terasology.engine.core.modes.loadProcesses.InitialiseWorldGenerator@1a212395
java.lang.IllegalStateException: Missing facet provider
        at org.terasology.engine.world.generation.WorldBuilder.determineProviderChains(WorldBuilder.java:188)
        at org.terasology.engine.world.generation.WorldBuilder.build(WorldBuilder.java:95)
        at org.terasology.engine.world.generation.BaseFacetedWorldGenerator.getWorld(BaseFacetedWorldGenerator.java:83)
        at org.terasology.engine.world.generation.BaseFacetedWorldGenerator.initialize(BaseFacetedWorldGenerator.java:58)
        at org.terasology.engine.core.modes.loadProcesses.InitialiseWorldGenerator.step(InitialiseWorldGenerator.java:34)
        at org.terasology.engine.core.modes.StateLoading.update(StateLoading.java:259)
        at org.terasology.engine.core.TerasologyEngine.tick(TerasologyEngine.java:512)
        at org.terasology.engine.core.TerasologyEngine.mainLoop(TerasologyEngine.java:472)
        at org.terasology.engine.core.TerasologyEngine.runMain(TerasologyEngine.java:448)
        at org.terasology.engine.core.TerasologyEngine.run(TerasologyEngine.java:414)
        at org.terasology.engine.Terasology.call(Terasology.java:189)
        at org.terasology.engine.Terasology.call(Terasology.java:69)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1933)
        at picocli.CommandLine.access$1200(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2332)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2326)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2291)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2159)
        at picocli.CommandLine.execute(CommandLine.java:2058)
        at org.terasology.engine.Terasology.main(Terasology.java:138)

@jdrueckert
Copy link
Member

Good catch, I think I might've seen that before. Might be a facet ordering issue if it's sporadic 🤔

@jdrueckert jdrueckert added Type: Bug Issues reporting and PRs fixing problems Status: Needs Investigation Requires to be checked for feasibility, reproducability, etc. Category: Crash Requests, Issues and Changes targeting unexpected terminations, segfaults, etc. Topic: WorldGen Requests, Issues and Changes related to facets, rasterizers, etc. labels Jan 3, 2024
@jdrueckert
Copy link
Member

Observation:
The facet issue does not crash Terasology, so it's possible to close the warning and try creating a world again.
However, when attempting to do so, Terasology crashes due to a NullPointer when fetching a component from a prefab.
In particular, the NameGenerator component is null although it's definitely included in the prefab, so any access attempts on it result in an NPE.

This issue was not yet observed without the preceding facet issue.

At this point in time it is unclear, what about the facet issue causes this behavior - likely something is not properly cleaned up if world generation fails at the stage that it does.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category: Crash Requests, Issues and Changes targeting unexpected terminations, segfaults, etc. Status: Needs Investigation Requires to be checked for feasibility, reproducability, etc. Topic: WorldGen Requests, Issues and Changes related to facets, rasterizers, etc. Type: Bug Issues reporting and PRs fixing problems
Projects
None yet
Development

No branches or pull requests

2 participants