overte-org / overte

Overte open source virtual worlds platform.
https://overte.org/
Other
132 stars 48 forks source link

Crash when crash reporting is enabled #791

Closed JulianGro closed 6 days ago

JulianGro commented 5 months ago

At least on Debian 12, the Domain server will break if you enable crash reporting via the web UI. I only checked this on 2023.11.1.

daleglass commented 5 months ago

Oops. Break how? Does it crash? Can you make a backtrace?

JulianGro commented 5 months ago

Presumably it crashes, I don't think the installer comes with debugging symbols, so I will have to compile from source some time to get a proper backtrace.

JulianGro commented 5 months ago

GCC actually throws a warning when building CrashHandlerBackend_Crashpad.cpp:

2023-12-31T17:51:31.4930334Z [ 26%] Building CXX object libraries/networking/CMakeFiles/networking.dir/src/crash-handler/CrashHandlerBackend_Crashpad.cpp.o
2023-12-31T17:51:31.9781439Z In file included from /__w/overte/overte/libraries/networking/src/crash-handler/CrashHandlerBackend_Crashpad.cpp:37:
2023-12-31T17:51:31.9785317Z /__w/overte/overte/build/ext/makefiles/crashpad/project/src/crashpad/include/client/crashpad_info.h:223:18: warning: multi-character character constant [-Wmultichar]
2023-12-31T17:51:31.9790488Z   223 |     kSignature = 'CPad',
2023-12-31T17:51:31.9791636Z       |                  ^~~~~~
2023-12-31T17:51:33.3441900Z [ 26%] Building CXX object libraries/gpu/CMakeFiles/gpu.dir/src/gpu/Shader.cpp.o

Though this appears to be an issue within crashpad itself.

JulianGro commented 1 week ago

This also happens when running Interface on Windows. I haven't been able to reproduce it in KDevelop on Linux.

JulianGro commented 1 week ago

Looks like maybe it crashes because it cannot find the crash reporter?

[07/04 11:03:25] [DEBUG] [overte.crash_handler] Locating own directory by argv[0]
[07/04 11:03:25] [DEBUG] [overte.crash_handler] Locating own directory by argv[0]
[07/04 11:03:25] [CRITICAL] [overte.crash_handler] Failed to find "crashpad_handler.exe" in QDir( "" , nameFilters = { "*" },  QDir::SortFlags( Name | IgnoreCase ) , QDir::Filters( Dirs|Files|Drives|AllEntries ) ) , can't start crash handler
[07/04 11:03:25] [CRITICAL] [overte.crash_handler] Failed to find "crashpad_handler.exe" in QDir( "" , nameFilters = { "*" },  QDir::SortFlags( Name | IgnoreCase ) , QDir::Filters( Dirs|Files|Drives|AllEntries ) ) , can't start crash handler
[07/04 11:03:25] [WARNING] [overte.crash_handler] Crash handler failed to start
[07/04 11:03:25] [WARNING] [overte.crash_handler] Crash handler failed to start
(19a0.36bc): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
interface!setCrashReportingEnabled+0x3e:
00007ff6`00ce498e 488b01          mov     rax,qword ptr [rcx] ds:00000000`00000000=????????????????

The exact file it is looking for (crashpad_handler.exe) is in the same directory, so it is definitely there.

JulianGro commented 1 week ago

I succeeded building on Windows, but it doesn't crash. So I guess this must be a packaging issue.

JulianGro commented 1 week ago

I also tried an AppImage with crash reporting: Cannot reproduce the issue there.

daleglass commented 1 week ago

@JulianGro I think that's exactly it, working on PR now.