Open lekoder opened 3 years ago
CC @godotengine/import @mortarroad - this is going to be fun to debug :|
@lekoder In "v3.5.beta.custom_build.67f19ee51", the hash doesn't seem to match an upstream commit, I guess it's from your fork? What's the matching upstream commit you rebased on? In particular, does it include the recently merged 724c207005b0784144d78a854a88302343864ff6 (just to see if that could have fixed an upstream libwebp bug).
If the user is still willing to assist in debugging, it would be good to figure out a way to actually get a stacktrace. Official builds should create a stacktrace, albeit an unhelpful one due to stripping debug symbols. But a debug build should have a stacktrace with symbols even on Windows, but maybe not if you compiled with MSVC?
@lekoder In "v3.5.beta.custom_build.67f19ee51", the hash doesn't seem to match an upstream commit, I guess it's from your fork? What's the matching upstream commit you rebased on? In particular, does it include the recently merged 724c207 (just to see if that could have fixed an upstream libwebp bug).
No it's from my own fork and it does not include [724c207]. User agreed to assist in further testing, so I'm going to rebuild upstream 3.x and check if [724c207] helps.
Unfortunately, it still fails with 888f8cea9, which seems to contain 724c207.
If the user is still willing to assist in debugging, it would be good to figure out a way to actually get a stacktrace. Official builds should create a stacktrace, albeit an unhelpful one due to stripping debug symbols. But a debug build should have a stacktrace with symbols even on Windows, but maybe not if you compiled with MSVC?
I usually get stacktraces from the debug builds I make, so this is probably not a MSVC preventing it. In this case it did not output anything at all.
Crash backtraces are currently not written to log files. This means that for Windows release builds (which can't output anything to standard output), you must use a debugger such as Visual Studio, WinDbg (MSVC .pdb
symbols) or gdb (MinGW symbols) to get a backtrace.
This means that for Windows release builds (which can't output anything to standard output), you must use a debugger such as Visual Studio, WinDbg (MSVC
.pdb
symbols) or gdb (MinGW symbols) to get a backtrace.
Sadly this means we won't be getting stack trace for this particular problem - while I can ask player to switch to a specific Steam branch, I don't think it's reasonable to expect him to install and connect a debugger.
Can you provide example webp files?
Crash backtraces are currently not written to log files. This means that for Windows release builds (which can't output anything to standard output), you must use a debugger such as Visual Studio, WinDbg (MSVC
.pdb
symbols) or gdb (MinGW symbols) to get a backtrace.
It seems expected to me that the crash backtrace isn't in the log written by Godot (Godot crashed so it can't write a log), but shouldn't it be written to stdout
(or stderr
, not sure)? If so I think it might be possible to get it by redirecting output to a file, not sure what the syntax would be exactly (maybe @bruvzg would know). On Steam it could be done with something like %command% > C:\path\to\file.txt 2>&1
or similar as custom command (to be confirmed by a Windows user).
We checked that, this is what we got from stdout/err:
Loading resource: res://menu/KeepDialogCentered.gdc
Loading resource: res://enceladus/EnceladusIndustrialTop.tscn.converted.res
Loading resource: res://menu/delta-v-logo.png
Loading resource: res://demo/DemoLabel.gdc
Loading resource: res://music/Enceladus_Intro.ogg
Loading resource: res://SaveSlotButton.gdc
Loading resource: res://enceladus/MatchPitchToEngine.gdc
Loading
C:\Program Files (x86)\Steam\steamapps\common\dV Rings of Saturn>
Note that part of the last line is cut off.
Can you provide example webp files?
@qarmin these are png files imported into the engine using webp compression. The source is a .png
or .jpg
. I can provide some, but I have no idea which one caused the problem, so this will be blind guess.
I updated the branch information in the original issue since we had an upgrade of the stable branch to publish fix; there is a branch specifically made for this issue that points to a broken build, for both the demo and full version of the game.
%command% > C:\path\to\file.txt 2>&1
is a correct syntax, and should work on Windows when the app is running normally. But Windows flush the stream in the strange way, and it quite possible it won't catch the crash log.
Godot crashed so it can't write a log
Stack trace is printed by our code, for release builds we should be able to write it to the file instead of stderr. https://github.com/godotengine/godot/blob/ca707562387be0034d5384b6d4bf218c7da480ab/platform/windows/crash_handler_windows.cpp#L181-L212
Godot version
3.4.stable.official, v3.5.beta.custom_build.67f19ee51
System information
Windows 8 Pro 64-bit (6.2, Build 9200), Intel(R) Core(TM) i5-3570K, AMD Radeon HD 7800 Series, GLES3
Issue description
One player reported via Steam forums application not responding during startup.
I was unable to replicate this on any of my machines. Got in contact with the player and managed to bisect a specific version of game which ceased to work, and checked the difference between working and not-working PCK files. Only relevant changes were
.stex
files:.import
directory from last known working version and re-imported everything. It crashed.force png
in project settings, removed.import
and re-imported everything. This worked.force png
- also worked.In case of crash logs are cut off without any error report. This happens both for release builds and for debug builds. Here is the debug build output (run with
--verbose --debug
):Steps to reproduce
I can't reproduce it locally - the only way I was able to debug is to send builds via Steam to the player and await feedback. Here is what I gathered about the machine that was used to run:
Minimal reproduction project
No MRP due to not even crashing on my own machine.
I know that version 0.427.2 (
stable branchgodot-debug branch, branch password:godotdebugbranch
) and 0.427.7 (beta branch) currently crash the affected systems and 0.428.1 (experimental branch) does not crash them. This affects both full builds and free demos. Game link. We tested both a GodotSteam build, an official Godot binary and GodotGog build with same results.