Open Hawk777 opened 2 years ago
Can execute the exported binary with verbose stdout mode? ./linux -v
$ ./linux -v
Godot Engine v3.4.2.stable.mono.official.45eaa2daf - https://godotengine.org
XInput: Refreshing devices.
XInput: No touch devices found.
Detecting GPUs, set DRI_PRIME in the environment to override GPU detection logic.
Only one GPU found, using default.
Failed loading custom cursor: left_ptr
Failed loading custom cursor: xterm
Failed loading custom cursor: hand2
Failed loading custom cursor: cross
Failed loading custom cursor: watch
Failed loading custom cursor: left_ptr_watch
Failed loading custom cursor: fleur
Failed loading custom cursor: hand1
Failed loading custom cursor: X_cursor
Failed loading custom cursor: sb_v_double_arrow
Failed loading custom cursor: sb_h_double_arrow
Failed loading custom cursor: size_bdiag
Failed loading custom cursor: size_fdiag
Failed loading custom cursor: hand1
Failed loading custom cursor: sb_v_double_arrow
Failed loading custom cursor: sb_h_double_arrow
Failed loading custom cursor: question_arrow
Using GLES2 video driver
OpenGL ES 2.0 Renderer: NVIDIA GeForce GTX 960/PCIe/SSE2
OpenGL ES Batching: ON
OPTIONS
max_join_item_commands 16
colored_vertex_format_threshold 0.25
batch_buffer_size 16384
light_scissor_area_threshold 1
item_reordering_lookahead 4
light_max_join_items 32
single_rect_fallback False
debug_flash False
diagnose_frame False
PulseAudio: context other
PulseAudio: context other
PulseAudio: context other
PulseAudio: context ready
PulseAudio: Detecting channels for device: alsa_output.pci-0000_00_1b.0.analog-stereo
PulseAudio: detected 2 output channels
PulseAudio: audio buffer frames: 512 calculated output latency: 11ms
JoypadLinux: udev enabled and loaded successfully.
Mono: Initializing module...
Mono JIT compiler version 6.12.0 ((no/5ce143a1)
Mono: Log file is: '/home/<elided>/.local/share/godot/app_userdata/Test Project/mono/mono_logs/2022-01-13_11.20.30_3302.log'
Mono: Runtime initialized
Mono: Loading assembly mscorlib...
Mono: Assembly mscorlib loaded from path: .mono/assemblies/Release/mscorlib.dll
Mono: Loading scripts domain...
Mono: Creating domain 'GodotEngine.Domain.Scripts'...
Mono: INITIALIZED
Mono: Loading assembly GodotSharp...
Mono: Failed to load Core API assembly
ERROR: Failed to load one of the API assemblies.
at: _load_api_assemblies (modules/mono/mono_gd/gd_mono.cpp:944)
=================================================================
Native Crash Reporting
=================================================================
Got a UNKNOWN while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
=================================================================
Native stacktrace:
=================================================================
0xacfa3d - ./linux :
0xacfdc9 - ./linux :
0xac259f - ./linux :
0xad9a20 - ./linux :
0x7f3e7a3db120 - /lib64/libpthread.so.0 :
0xd7e016 - ./linux : _ZN6GDMono26initialize_load_assembliesEv
0x2524a2f - ./linux : _ZN12ScriptServer14init_languagesEv
0xd4cb30 - ./linux : _ZN4Main6setup2Em
0xd51dd3 - ./linux : _ZN4Main5setupEPKciPPcb
0x9f57a9 - ./linux : main
0x7f3e7a1a15fd - /lib64/libc.so.6 : __libc_start_main
0x9f6ede - ./linux :
=================================================================
Telemetry Dumper:
=================================================================
Pkilling 0x139905633089088x from 0x139906311673664x
Entering thread summarizer pause from 0x139906311673664x
Finished thread summarizer pause from 0x139906311673664x.
Failed to create breadcrumb file (null)/crash_hash_0x0
Could not exec mono-hang-watchdog, expected on path '/tmp/data_Test Project/Mono/etc/../bin/mono-hang-watchdog' (errno 2)
Waiting for dumping threads to resume
=================================================================
External Debugger Dump:
=================================================================
[New LWP 3303]
[New LWP 3311]
[New LWP 3312]
[New LWP 3313]
[New LWP 3314]
[New LWP 3315]
[New LWP 3316]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
0x00007f3e7a2391b7 in __GI___wait4 (pid=3325, stat_loc=0x7ffe2af08d54, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30
30 ../sysdeps/unix/sysv/linux/wait4.c: No such file or directory.
Id Target Id Frame
* 1 Thread 0x7f3e7a025740 (LWP 3302) "linux" 0x00007f3e7a2391b7 in __GI___wait4 (pid=3325, stat_loc=0x7ffe2af08d54, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30
2 Thread 0x7f3e6c706640 (LWP 3303) "linux" 0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x3c20c68, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
3 Thread 0x7f3e68ba1640 (LWP 3311) "linux" 0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x7f3e68cba110, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
4 Thread 0x7f3e5323c640 (LWP 3312) "linux" 0x00007f3e7a2346b5 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7f3e5323bd30, rem=0x7f3e5323bd40) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:43
5 Thread 0x7f3e529e3640 (LWP 3313) "linux" 0x00007f3e7a2346b5 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7f3e529e2c80, rem=rem@entry=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:43
6 Thread 0x7f3e521e2640 (LWP 3314) "linux" 0x00007f3e7a262b51 in __GI___select (nfds=5, readfds=0x7f3e521e1d30, writefds=0x0, exceptfds=0x0, timeout=0x7f3e521e1d20) at ../sysdeps/unix/sysv/linux/select.c:71
7 Thread 0x7f3e50fff640 (LWP 3315) "SGen worker" 0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x332ac48, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
8 Thread 0x7f3e518ff640 (LWP 3316) "Finalizer" 0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x3313b00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=<optimized out>, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
Thread 8 (Thread 0x7f3e518ff640 (LWP 3316) "Finalizer"):
#0 0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x3313b00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=<optimized out>, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
#1 0x00007f3e7a3dd06b in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x3313b00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=<optimized out>) at ../sysdeps/nptl/futex-internal.c:123
#2 0x00007f3e7a3d939f in do_futex_wait (sem=sem@entry=0x3313b00, abstime=0x0, clockid=0) at /var/cache/portage/sys-libs/glibc-2.33-r7/work/glibc-2.33/nptl/sem_waitcommon.c:112
#3 0x00007f3e7a3d9438 in __new_sem_wait_slow64 (sem=0x3313b00, abstime=0x0, clockid=0) at /var/cache/portage/sys-libs/glibc-2.33-r7/work/glibc-2.33/nptl/sem_waitcommon.c:184
#4 0x0000000000b8bc18 in ?? ()
#5 0x0000000000c5e237 in ?? ()
#6 0x00007f3e7a3d0cde in start_thread (arg=0x7f3e518ff640) at pthread_create.c:481
#7 0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 7 (Thread 0x7f3e50fff640 (LWP 3315) "SGen worker"):
#0 0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x332ac48, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
#1 0x00007f3e7a3dd06b in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x332ac48, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ../sysdeps/nptl/futex-internal.c:123
#2 0x00007f3e7a3d6c5f in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x332ac60, cond=0x332ac20) at pthread_cond_wait.c:504
#3 __pthread_cond_wait (cond=0x332ac20, mutex=0x332ac60) at pthread_cond_wait.c:619
#4 0x0000000000cbff3b in ?? ()
#5 0x00007f3e7a3d0cde in start_thread (arg=0x7f3e50fff640) at pthread_create.c:481
#6 0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 6 (Thread 0x7f3e521e2640 (LWP 3314) "linux"):
#0 0x00007f3e7a262b51 in __GI___select (nfds=5, readfds=0x7f3e521e1d30, writefds=0x0, exceptfds=0x0, timeout=0x7f3e521e1d20) at ../sysdeps/unix/sysv/linux/select.c:71
#1 0x0000000000d09075 in OS_X11::_wait_for_events() const ()
#2 0x0000000000d09214 in OS_X11::_poll_events_thread(void*) ()
#3 0x00000000025a69b8 in Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) ()
#4 0x000000000298b130 in ?? ()
#5 0x00007f3e7a3d0cde in start_thread (arg=0x7f3e521e2640) at pthread_create.c:481
#6 0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 5 (Thread 0x7f3e529e3640 (LWP 3313) "linux"):
#0 0x00007f3e7a2346b5 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7f3e529e2c80, rem=rem@entry=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:43
#1 0x00007f3e7a2393f3 in __GI___nanosleep (req=req@entry=0x7f3e529e2c80, rem=rem@entry=0x0) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2 0x00007f3e7a2633f5 in usleep (useconds=<optimized out>) at ../sysdeps/posix/usleep.c:32
#3 0x0000000000d14cd2 in JoypadLinux::monitor_joypads(udev*) ()
#4 0x0000000000d1508c in JoypadLinux::joy_thread_func(void*) ()
#5 0x00000000025a69b8 in Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) ()
#6 0x000000000298b130 in ?? ()
#7 0x00007f3e7a3d0cde in start_thread (arg=0x7f3e529e3640) at pthread_create.c:481
#8 0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 4 (Thread 0x7f3e5323c640 (LWP 3312) "linux"):
#0 0x00007f3e7a2346b5 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7f3e5323bd30, rem=0x7f3e5323bd40) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:43
#1 0x00007f3e7a2393f3 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2 0x0000000002875b9f in ?? ()
#3 0x00000000014bde46 in AudioDriverPulseAudio::thread_func(void*) ()
#4 0x00000000025a69b8 in Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) ()
#5 0x000000000298b130 in ?? ()
#6 0x00007f3e7a3d0cde in start_thread (arg=0x7f3e5323c640) at pthread_create.c:481
#7 0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 3 (Thread 0x7f3e68ba1640 (LWP 3311) "linux"):
#0 0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x7f3e68cba110, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
#1 0x00007f3e7a3dd06b in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7f3e68cba110, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ../sysdeps/nptl/futex-internal.c:123
#2 0x00007f3e7a3d6c5f in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7f3e68cba0c0, cond=0x7f3e68cba0e8) at pthread_cond_wait.c:504
#3 __pthread_cond_wait (cond=0x7f3e68cba0e8, mutex=0x7f3e68cba0c0) at pthread_cond_wait.c:619
#4 0x0000000002922eec in std::condition_variable::wait(std::unique_lock<std::mutex>&) ()
#5 0x00000000020d6aab in VisualServerScene::_gi_probe_bake_thread() ()
#6 0x00000000025a69b8 in Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) ()
#7 0x000000000298b130 in ?? ()
#8 0x00007f3e7a3d0cde in start_thread (arg=0x7f3e68ba1640) at pthread_create.c:481
#9 0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 2 (Thread 0x7f3e6c706640 (LWP 3303) "linux"):
#0 0x00007f3e7a3dd00a in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x3c20c68, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
#1 0x00007f3e7a3dd06b in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x3c20c68, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ../sysdeps/nptl/futex-internal.c:123
#2 0x00007f3e7a3d6c5f in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x3c20c18, cond=0x3c20c40) at pthread_cond_wait.c:504
#3 __pthread_cond_wait (cond=0x3c20c40, mutex=0x3c20c18) at pthread_cond_wait.c:619
#4 0x0000000002922eec in std::condition_variable::wait(std::unique_lock<std::mutex>&) ()
#5 0x000000000262fe0b in _IP_ResolverPrivate::_thread_function(void*) ()
#6 0x00000000025a69b8 in Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) ()
#7 0x000000000298b130 in ?? ()
#8 0x00007f3e7a3d0cde in start_thread (arg=0x7f3e6c706640) at pthread_create.c:481
#9 0x00007f3e7a26906f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 1 (Thread 0x7f3e7a025740 (LWP 3302) "linux"):
#0 0x00007f3e7a2391b7 in __GI___wait4 (pid=3325, stat_loc=0x7ffe2af08d54, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30
#1 0x0000000000acfcca in ?? ()
#2 0x0000000000acfdc9 in ?? ()
#3 0x0000000000ac259f in ?? ()
#4 0x0000000000ad9a20 in ?? ()
#5 <signal handler called>
#6 0x0000000000d7e016 in GDMono::initialize_load_assemblies() ()
#7 0x0000000002524a2f in ScriptServer::init_languages() ()
#8 0x0000000000d4cb30 in Main::setup2(unsigned long) ()
#9 0x0000000000d51dd3 in Main::setup(char const*, int, char**, bool) ()
#10 0x00000000009f57a9 in main ()
[Inferior 1 (process 3302) detached]
=================================================================
Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0xd7e016):0xd7e006 7e 55 d4 01 48 8d 3d 5c 53 d4 01 e8 3a ab b4 01 ~U..H.=\S...:...
0xd7e016 0f 0b 0f 1f 84 00 00 00 00 00 48 8d 0d 01 b9 d4 ..........H.....
0xd7e026 01 ba a3 03 00 00 48 8d 35 55 55 d4 01 48 8d 3d ......H.5UU..H.=
0xd7e036 33 53 d4 01 e8 71 24 b5 01 e9 68 ff ff ff 0f 1f 3S...q$...h.....
=================================================================
Managed Stacktrace:
=================================================================
=================================================================
Aborted
The named Mono log file is still empty.
In case you were wondering what files are the data directory:
$ find data_Test\ Project/
data_Test Project/
data_Test Project/Mono
data_Test Project/Mono/lib
data_Test Project/Mono/lib/libMonoSupportW.so
data_Test Project/Mono/lib/libmono-profiler-log.so
data_Test Project/Mono/lib/libmono-profiler-coverage.so
data_Test Project/Mono/lib/libmono-profiler-aot.so
data_Test Project/Mono/lib/libMonoPosixHelper.so
data_Test Project/Mono/lib/libmono-native.so
data_Test Project/Mono/lib/libmono-btls-shared.so
data_Test Project/Mono/etc
data_Test Project/Mono/etc/mono
data_Test Project/Mono/etc/mono/config
data_Test Project/Mono/etc/mono/browscap.ini
data_Test Project/Mono/etc/mono/4.5
data_Test Project/Mono/etc/mono/4.5/web.config
data_Test Project/Mono/etc/mono/4.5/settings.map
data_Test Project/Mono/etc/mono/4.5/machine.config
data_Test Project/Mono/etc/mono/4.5/DefaultWsdlHelpGenerator.aspx
data_Test Project/Mono/etc/mono/4.5/Browsers
data_Test Project/Mono/etc/mono/4.5/Browsers/Compat.browser
data_Test Project/Mono/etc/mono/4.0
data_Test Project/Mono/etc/mono/4.0/web.config
data_Test Project/Mono/etc/mono/4.0/settings.map
data_Test Project/Mono/etc/mono/4.0/machine.config
data_Test Project/Mono/etc/mono/4.0/DefaultWsdlHelpGenerator.aspx
data_Test Project/Mono/etc/mono/4.0/Browsers
data_Test Project/Mono/etc/mono/4.0/Browsers/Compat.browser
data_Test Project/Mono/etc/mono/2.0
data_Test Project/Mono/etc/mono/2.0/web.config
data_Test Project/Mono/etc/mono/2.0/settings.map
data_Test Project/Mono/etc/mono/2.0/machine.config
data_Test Project/Mono/etc/mono/2.0/DefaultWsdlHelpGenerator.aspx
data_Test Project/Mono/etc/mono/2.0/Browsers
data_Test Project/Mono/etc/mono/2.0/Browsers/Compat.browser
The exported game is failing to load the GodotSharp.dll
assembly, this should have been included inside the PCK file which is next to the binary (or in the Assemblies
folder next to the Mono
folder if the project setting mono/export/export_assemblies_inside_pck
is set to false).
The C# module implements a ExportPlugin which gets executed on exporting and makes sure it includes all the assemblies and dependencies in the exported project. The assembly dependencies are retrieved in this line:
This method is implemented in C++ here:
When the game project doesn't contain C# code that references the GodotSharp.dll
assembly, it does not get included as it's not needed (not being used). In your case, since you have no scripts then it's obviously not being used, but actually this would also happen if you have C# code that doesn't make references to the Godot API.
And when the exported binary is run, it always tries to load the Godot API assemblies because it assumes they are always included. We could probably force the GodotSharp.dll
and its dependencies to always be included in the exported project, but it'd be better to leave it out if it's not being used and make the runtime not load the assembly if it's not needed to save space.
Excluding files that aren’t needed seems more appropriate to me. It also seems like it would be nice if the .csproj
and .sln
files didn’t sit around in the VCS forever just because you added a C# file one day, put a few lines in it, and then deleted it. Maybe there could be a way to “clean up C# cruft” in case you’ve done that?
Godot version
v3.4.2.stable.mono.official [45eaa2daf]
System information
Gentoo Linux x86-64
Issue description
The log file named in
mono_logs
is empty. I considered whether this might be GH-32185 or GH-32980, but it didn’t seem like quite the same thing because the former is a crash in a different location and the latter reports a crash happening even in the absence of solution files, while here deleting the solution files fixes the problem (though I haven’t tried Android).Steps to reproduce
.cs
file from the project.Note that this leaves the
.csproj
and.sln
files lying around, even though there is no C# code in the project any more. Deleting those files and reloading the project makes the problem go away, though I don’t see any way to do that step inside the Godot editor itself. The HTML5 export fails with the same basic error, and again is fixed by removing the solution files.Minimal reproduction project
test.zip