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

Crash trying to start Core Gameplay world #5102

Open
jdrueckert opened this issue Jun 16, 2023 · 11 comments
Open

Crash trying to start Core Gameplay world #5102

jdrueckert opened this issue Jun 16, 2023 · 11 comments
Labels
Category: Crash Requests, Issues and Changes targeting unexpected terminations, segfaults, etc. Status: Needs Investigation Requires to be debugged or checked for feasibility, etc. Topic: Stabilization Requests, Issues and Changes related to improving stablity and reducing flakyness Type: Bug Issues reporting and PRs fixing problems

Comments

@jdrueckert
Copy link
Member

This issue was originally reported by Discord user UsmanAga.

General Info

Terasology Launcher Version: ?
Terasology Version: 5.3.0
Operating System: Windows
Onboard / Dedicated Graphics: ?
Java Version: bundled OpenJDK 11

What you were trying to do

A clear and concise description of what you expected to happen.

Start a Core Gameplay World

What actually happened

A clear and concise description of what didn't match your expectations, a.k.a. the crash or malfunction you faced.

The game crashes with a JRE EXCEPTION_ACCESS_VIOLATION

How to reproduce

  1. Select Terasology version '5.3.0'
  2. Start Terasology
  3. Select gameplay 'Core Gameplay'
  4. Start game
  5. See crash

Note: I was not able to reproduce the issue reported by the user.

Log details

Full log: https://pastebin.com/T5w0tyhZ

Log extract

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000068303b20, pid=4608, tid=12864
#
# JRE version: OpenJDK Runtime Environment (11.0.16.1+1) (build 11.0.16.1+1-LTS)
# Java VM: OpenJDK 64-Bit Server VM (11.0.16.1+1-LTS, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C  [atio6axx.dll+0x333b20]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   https://bell-sw.com/support
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
 
---------------  S U M M A R Y ------------
 
Command Line: -DlogOverrideLevel=DEBUG -XX:MaxGCPauseMillis=20 C:\Users\Oðuz\Documents\Terasology Launcher\games\OMEGA\STABLE\5.3.0\libs\Terasology.jar --homedir=C:\Users\User\AppData\Roaming\Terasology
 
Host: Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz, 4 cores, 7G,  Windows 10 , 64 bit Build 19041 (10.0.19041.3031)
Time: Fri Jun 16 22:30:14 2023 Türkiye Standart Saati elapsed time: 44.071312 seconds (0d 0h 0m 44s)

[...]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 6930  org.lwjgl.opengl.GL11C.nglDrawElements(IIIJ)V (0 bytes) @ 0x0000012b4a70878e [0x0000012b4a708740+0x000000000000004e]
J 6888 c1 org.lwjgl.opengl.GL11.glDrawElements(IIIJ)V (8 bytes) @ 0x0000012b43b08acc [0x0000012b43b08a40+0x000000000000008c]
j  org.terasology.engine.rendering.primitives.ChunkMeshImpl.renderVbo(I)V+37
j  org.terasology.engine.rendering.primitives.ChunkMeshImpl.render(Lorg/terasology/engine/rendering/primitives/ChunkMesh$RenderPhase;)I+38
j  org.terasology.corerendering.rendering.dag.nodes.ShadowMapNode.process()V+201
j  org.terasology.engine.rendering.world.WorldRendererImpl$$Lambda$789.accept(Ljava/lang/Object;)V+4
J 10241 c2 java.util.ArrayList.forEach(Ljava/util/function/Consumer;)V java.base@11.0.16.1 (74 bytes) @ 0x0000012b4aa25e90 [0x0000012b4aa25dc0+0x00000000000000d0]
j  org.terasology.engine.rendering.world.WorldRendererImpl.render(Lorg/terasology/engine/rendering/world/WorldRenderer$RenderingStage;)V+44
j  org.terasology.engine.core.modes.StateIngame.render()V+58
J 10007 c1 org.terasology.engine.core.subsystem.lwjgl.LwjglGraphics.postUpdate(Lorg/terasology/engine/core/modes/GameState;F)V (94 bytes) @ 0x0000012b4411e60c [0x0000012b4411e520+0x00000000000000ec]
J 7196 c1 org.terasology.engine.core.TerasologyEngine.tick()Z (437 bytes) @ 0x0000012b43b892f4 [0x0000012b43b844a0+0x0000000000004e54]
j  org.terasology.engine.core.TerasologyEngine.mainLoop()V+7

[...]
@jdrueckert jdrueckert added Type: Bug Issues reporting and PRs fixing problems Status: Needs Investigation Requires to be debugged or checked for feasibility, etc. Topic: Stabilization Requests, Issues and Changes related to improving stablity and reducing flakyness Category: Crash Requests, Issues and Changes targeting unexpected terminations, segfaults, etc. labels Jun 16, 2023
@jdrueckert
Copy link
Member Author

Might be similar to #2402

@Cervator
Copy link
Member

I tried to replicate this on an older system fairly close to the specs reported on Discord (I think) - Win7 Ultimate, dual Radeon R7 200 series GPU (Discord report was R5 200). Although it took a little work dusting off that system eventually Terasology did actually run, although from source not yet launcher.

However, while I didn't hit a native crash like the report here (at first!) I did still fail to enter the Core world with a similar failure to find acceptable spawn like also mentioned on Discord - snippet just for reference:

23:27:32.394 [main] INFO  o.t.e.w.b.internal.BlockManagerImpl - Registered Block CoreAssets:Cactus with id 62
23:27:35.755 [main] ERROR o.t.engine.core.modes.StateLoading - Error while loading org.terasology.engine.core.modes.loadProcesses.AwaitChara
cterSpawn@1bd5b1c8
java.lang.RuntimeException: Failed to find an acceptable spawn location.
        at org.terasology.engine.logic.players.PlayerFactory.lambda$findSpawnPositionFromLocationComponent$0(PlayerFactory.java:79)
        at java.base/java.util.Optional.orElseThrow(Optional.java:408)
        at org.terasology.engine.logic.players.PlayerFactory.findSpawnPositionFromLocationComponent(PlayerFactory.java:79)
        at org.terasology.engine.logic.players.PlayerFactory.newInstance(PlayerFactory.java:54)
        at org.terasology.engine.logic.players.PlayerSystem.spawnPlayer(PlayerSystem.java:263)
        at org.terasology.engine.logic.players.PlayerSystem.update(PlayerSystem.java:79)
        at org.terasology.engine.core.modes.loadProcesses.AwaitCharacterSpawn.step(AwaitCharacterSpawn.java:37)
        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:190)
        at org.terasology.engine.Terasology.call(Terasology.java:70)
        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:139)
23:27:40.376 [main] WARN  o.t.engine.registry.InjectionHelper - CoreCommands wanted BlockManager injected but CoreRegistry has none.
23:27:40.382 [main] WARN  o.t.engine.registry.InjectionHelper - LocalPlayerSystem wanted WorldProvider injected but CoreRegistry has none.
23:27:40.382 [main] WARN  o.t.engine.registry.InjectionHelper - CameraTargetSystem wanted Physics injected but CoreRegistry has none.
23:27:40.382 [main] WARN  o.t.engine.registry.InjectionHelper - CameraTargetSystem wanted BlockEntityRegistry injected but CoreRegistry has
none.
23:27:40.468 [o.t.e.r.n.l.m.a.AdvancedGameSetupScreen-0] INFO  o.t.e.c.module.ModuleListDownloader - Downloading modules ..
23:27:40.469 [main] WARN  org.terasology.nui.WidgetUtil - Contents of org.terasology.engine.rendering.nui.layers.mainMenu.MainMenuScreen@6bc
a6c4c missing button with id 'storageServiceAction'
23:27:40.486 [main] WARN  o.t.engine.core.internal.TimeBase - Delta too great (4747), capping to 1000

That above attempt was the minimal UI flow to start the game in CoreSampleGameplay. If I go through the advanced setup path then I get past the spawn issue but do hit a native crash! That being said I'm not sure if this is actionable unless we can confirm it on newer Radeon cards as well, my old setup is just about 10 years old which is a tad on the aged side.

On the other hand, the game did work on this exact system some time ago, after all I spent years developing Terasology on this very system 🤔

# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000065ed6fa0, pid=5284, tid=1264
#
# JRE version: Java(TM) SE Runtime Environment 18.9 (11.0.18+9) (build 11.0.18+9-LTS-195)
# Java VM: Java HotSpot(TM) 64-Bit Server VM 18.9 (11.0.18+9-LTS-195, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C  [atio6axx.dll+0x346fa0]

Overall the logs are not pretty since after the failure to spawn I simply tried again on the same game launch, which in the past has occasionally led to quirks. Trying from a fresh session straight through the advanced flow went to the same native crash though, so it seems cleanly reproducible.

Full log: https://pastebin.com/GC1MbUUb

@jdrueckert
Copy link
Member Author

@Cervator does your hs_err_pid... file also show the org.lwjgl.opengl.GL11C.nglDrawElements call?
In #2402 the comment was that this ngl prefix shouldn't be there.
We tried disabling Catalyst AI but it seems more complicated now than back then and doesn't seem to really help anymore.
So in terms of what changed such that it's now no longer working on your old setup while some time ago it did, my guesses are:

  • AMD changed defaults of settings or added settings that get in the way
  • our upgrade to LWJGL3 broke something for those cards

maybe our rendering wizard @pollend has more / other ideas? 🧙

@OguzY4
Copy link

OguzY4 commented Jun 19, 2023

I am the one who reported this error. Is this error related to the launcher?

@jdrueckert
Copy link
Member Author

@OguzY4 No it's not related to the launcher.

@Cervator
Copy link
Member

I haven't had a chance to get back to my old system yet, but as per recent Discord chat there's a bit of interesting news that relates, even if it still may not help that much: the game works for @OguzY4 on the v1.0.0 engine release from 2016 😬

That's mildly mysterious and it may be possible to find the exact change, but difficult to do much about it. I'll still try to replicate on my end - I think I've been able to run the game on my comparable system long after that release.

@OguzY4
Copy link

OguzY4 commented Jun 21, 2023 via email

@Cervator
Copy link
Member

Right, sorry! v1.0.0 was the one where it no longer worked. My mistake :-)

@OguzY4
Copy link

OguzY4 commented Jun 21, 2023 via email

@soloturn
Copy link
Contributor

@OguzY4 are you still able to reproduce with latest version form source and java-17 ?

@OguzY4
Copy link

OguzY4 commented Mar 11, 2024 via email

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 debugged or checked for feasibility, etc. Topic: Stabilization Requests, Issues and Changes related to improving stablity and reducing flakyness Type: Bug Issues reporting and PRs fixing problems
Projects
Status: Backlog
Status: New (Inbox)
Development

No branches or pull requests

4 participants