godot: Godot freezes when pop up appears under X

Godot version: built from commit: c97dea47b582ec66df4d0565df83902826df7829 Godot Engine v4.0.dev.custom_build.c97dea47b (also happens on Godot Engine v4.0.dev.calinou.c3964b6c8 and Godot Engine v4.0.dev.custom_build.c3964b6c8, didn’t test other)

OS/device including version: Pop!_OS 20.04 LTS (64bit) Nvidia GTX 960 Driver version: 455.28 Kernel: 5.4.0-7642-generic DE/WM: dwm (also tested on Pop shell (variation of GNOME) with same results)

Issue description: Whenever pop up appears, Godot hangs.

Steps to reproduce: Start Godot and click on anything that causes pop up to appear.

Video: https://youtu.be/MtH823uUKew

Minimal reproduction project: Doesn’t apply

Logs (I killed Godot with xkill when became unresponsive):

./godot.linuxbsd.tools.64 
Godot Engine v4.0.dev.custom_build.c97dea47b - https://godotengine.org
ERROR: Can't find layer: VK_LAYER_KHRONOS_validation
   at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
ERROR: Can't find layer: VK_LAYER_LUNARG_standard_validation
   at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
ERROR: Can't find layer: VK_LAYER_GOOGLE_threading
   at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
DisplayServer::_create_window 0 want rect: 448, 240, 1024, 600 got rect 448, 240, 1024
, 600
DisplayServer::_window_changed: 0 rect: 2, 21, 1024, 600
DisplayServer::_window_changed: 0 rect: 2, 21, 1052, 1057
 
Editing project: /home/dave/Work/godot/test (::home::dave::Work::godot::test)
Godot Engine v4.0.dev.custom_build.c97dea47b - https://godotengine.org
ERROR: Can't find layer: VK_LAYER_KHRONOS_validation
   at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
ERROR: Can't find layer: VK_LAYER_LUNARG_standard_validation
   at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
ERROR: Can't find layer: VK_LAYER_GOOGLE_threading
   at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
DisplayServer::_create_window 0 want rect: 448, 240, 1024, 600 got rect 448, 240, 1024, 600
DisplayServer::_window_changed: 0 rect: 2, 21, 1024, 600
DisplayServer::_window_changed: 0 rect: 2, 21, 1052, 1057
ERROR: Some texture bindings were not properly freed (leaked CanvasItems?)
   at: ~RasterizerCanvasRD (servers/rendering/rasterizer_rd/rasterizer_canvas_rd.cpp:2500)
ERROR: Attempted to free invalid ID: 0
   at: _free_internal (drivers/vulkan/rendering_device_vulkan.cpp:6956)
DisplayServer::_create_window 1 want r
ect: 66, 55, 373, 241 got rect 66, 55, 373, 241
X connection to :1 broken (explicit kill or server shutdown).
handle_crash: Program crashed with signal 11
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7fe93616f210] (??:0)
[2] Object::get(StringName c
onst&, bool*) const (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/core/object.cpp:456)
[3] EditorExportPlatformAndroid::_check_for_changes_poll_thread(void*) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/platform/android/export/export.cpp:303 (discriminator 3))
[4] ThreadPosix::thread_callback(void*) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/g
odot/drivers/unix/thread_posix.cpp:73)
[5] /lib/x86_64-linux-gnu/libpthread.so.0(+0x9609) [0x7fe936677609] (??:0)
[6] /lib/x86_64-linux-gnu/libc.so.6(clone+0x43) [0x7fe93624b293] (??:0)
-- END OF BACKTRACE --

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 19 (11 by maintainers)

Most upvoted comments

Thanks all for the time spent investigating! All of this points to a freeze during rendering just like #41614 so I’m closing this issue as duplicate again.

The original description suggested it could be something else and the one call stack with __cxa_pure_virtual still seems weird to me but we’ll see if that happens again once the nvidia driver issue is fixed.

Edit: Rolling back to nvidia drivers 450.57 might help, it fixed the issue in some similar cases.

I am sorry for being inactive lately. I will try to send my debugger output ASAP. Also, I am interested in finding the commit when this appears for the first time (which might help with some insight).

There are multiple call stacks so I send them all

  1. godot.linuxbsd PAUSED ON PAUSE
libc.so.6!__GI___poll(struct pollfd * fds, nfds_t nfds, int timeout) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/poll.c:29)
libnvidia-glcore.so.455.28![Unknown/Just-In-Time compiled code] (Unknown Source:0)
vkWaitForFences(VkDevice device, uint32_t fenceCount, const VkFence * pFences, VkBool32 waitAll, uint64_t timeout) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/thirdparty/vulkan/loader/trampoline.c:1057)
VulkanContext::prepare_buffers(VulkanContext * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/vulkan/vulkan_context.cpp:1208)
RenderingDeviceVulkan::prepare_screen_for_drawing(RenderingDeviceVulkan * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/vulkan/rendering_device_vulkan.cpp:7168)
RasterizerRD::prepare_for_blitting_render_targets(RasterizerRD * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/servers/rendering/rasterizer_rd/rasterizer_rd.cpp:36)
RenderingServerViewport::draw_viewports(RenderingServerViewport * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/servers/rendering/rendering_server_viewport.cpp:452)
RenderingServerRaster::draw(RenderingServerRaster * const this, bool p_swap_buffers, double frame_step) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/servers/rendering/rendering_server_raster.cpp:115)
RenderingServerWrapMT::draw(RenderingServerWrapMT * const this, bool p_swap_buffers, double frame_step) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/servers/rendering/rendering_server_wrap_mt.cpp:91)
Main::iteration() (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/main/main.cpp:2437)
OS_LinuxBSD::run(OS_LinuxBSD * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/platform/linuxbsd/os_linuxbsd.cpp:240)
main(int argc, char ** argv) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/platform/linuxbsd/godot_linuxbsd.cpp:58)

(no DisplayServerX11::process_events so couldn’t provide more info in this regard even tho X lagged a little before pausing)

  1. godot.linuxbsd PAUSED
libpthread.so.0!futex_wait_cancelable(unsigned int expected, unsigned int * futex_word) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/nptl/futex-internal.h:183)
libpthread.so.0!__pthread_cond_wait_common(const struct timespec * abstime, clockid_t clockid, pthread_mutex_t * mutex, pthread_cond_t * cond) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_cond_wait.c:508)
libpthread.so.0!__pthread_cond_wait(pthread_cond_t * cond, pthread_mutex_t * mutex) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_cond_wait.c:638)
libstdc++.so.6!std::condition_variable::wait(std::unique_lock<std::mutex>&) (Unknown Source:0)
Semaphore::wait(const Semaphore * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/core/os/semaphore.h:58)
_IP_ResolverPrivate::_thread_function(void * self) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/core/io/ip.cpp:97)
ThreadPosix::thread_callback(void * userdata) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/unix/thread_posix.cpp:71)
libpthread.so.0!start_thread(void * arg) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477)
libc.so.6!clone() (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/x86_64/clone.S:95)
  1. godot.linuxbsd PAUSED
libc.so.6!__GI___select(int nfds, fd_set * readfds, fd_set * writefds, fd_set * exceptfds, struct timeval * timeout) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/select.c:41)
DisplayServerX11::_poll_events(DisplayServerX11 * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/platform/linuxbsd/display_server_x11.cpp:2472)
DisplayServerX11::_poll_events_thread(void * ud) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/platform/linuxbsd/display_server_x11.cpp:2449)
ThreadPosix::thread_callback(void * userdata) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/unix/thread_posix.cpp:71)
libpthread.so.0!start_thread(void * arg) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477)
libc.so.6!clone() (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/x86_64/clone.S:95)
  1. godot.linuxbsd PAUSED
libpthread.so.0!futex_wait_cancelable(unsigned int expected, unsigned int * futex_word) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/nptl/futex-internal.h:183)
libpthread.so.0!__pthread_cond_wait_common(const struct timespec * abstime, clockid_t clockid, pthread_mutex_t * mutex, pthread_cond_t * cond) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_cond_wait.c:508)
libpthread.so.0!__pthread_cond_wait(pthread_cond_t * cond, pthread_mutex_t * mutex) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_cond_wait.c:638)
libstdc++.so.6!std::condition_variable::wait(std::unique_lock<std::mutex>&) (Unknown Source:0)
Semaphore::wait(const Semaphore * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/core/os/semaphore.h:58)
ThreadWorkPool::_thread_function(ThreadWorkPool::ThreadData * p_thread) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/core/thread_work_pool.cpp:37)
std::__invoke_impl<void, void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*>(void (*&&)(ThreadWorkPool::ThreadData *) __f) (/usr/include/c++/9/bits/invoke.h:60)
std::__invoke<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*>(void (*&&)(ThreadWorkPool::ThreadData *) __fn) (/usr/include/c++/9/bits/invoke.h:95)
std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> >::_M_invoke<0ul, 1ul>(std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > * const this) (/usr/include/c++/9/thread:244)
std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> >::operator()(std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > * const this) (/usr/include/c++/9/thread:251)
std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > >::_M_run(std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > > * const this) (/usr/include/c++/9/thread:195)
libstdc++.so.6![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libpthread.so.0!start_thread(void * arg) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477)
libc.so.6!clone() (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/x86_64/clone.S:95)
  1. godot.linuxbsd PAUSED
libpthread.so.0!futex_wait_cancelable(unsigned int expected, unsigned int * futex_word) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/nptl/futex-internal.h:183)
libpthread.so.0!__pthread_cond_wait_common(const struct timespec * abstime, clockid_t clockid, pthread_mutex_t * mutex, pthread_cond_t * cond) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_cond_wait.c:508)
libpthread.so.0!__pthread_cond_wait(pthread_cond_t * cond, pthread_mutex_t * mutex) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_cond_wait.c:638)
libstdc++.so.6!std::condition_variable::wait(std::unique_lock<std::mutex>&) (Unknown Source:0)
Semaphore::wait(const Semaphore * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/core/os/semaphore.h:58)
ThreadWorkPool::_thread_function(ThreadWorkPool::ThreadData * p_thread) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/core/thread_work_pool.cpp:37)
std::__invoke_impl<void, void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*>(void (*&&)(ThreadWorkPool::ThreadData *) __f) (/usr/include/c++/9/bits/invoke.h:60)
std::__invoke<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*>(void (*&&)(ThreadWorkPool::ThreadData *) __fn) (/usr/include/c++/9/bits/invoke.h:95)
std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> >::_M_invoke<0ul, 1ul>(std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > * const this) (/usr/include/c++/9/thread:244)
std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> >::operator()(std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > * const this) (/usr/include/c++/9/thread:251)
std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > >::_M_run(std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > > * const this) (/usr/include/c++/9/thread:195)
libstdc++.so.6![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libpthread.so.0!start_thread(void * arg) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477)
libc.so.6!clone() (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/x86_64/clone.S:95)
  1. godot.linuxbsd PAUSED
libpthread.so.0!futex_wait_cancelable(unsigned int expected, unsigned int * futex_word) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/nptl/futex-internal.h:183)
libpthread.so.0!__pthread_cond_wait_common(const struct timespec * abstime, clockid_t clockid, pthread_mutex_t * mutex, pthread_cond_t * cond) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_cond_wait.c:508)
libpthread.so.0!__pthread_cond_wait(pthread_cond_t * cond, pthread_mutex_t * mutex) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_cond_wait.c:638)
libstdc++.so.6!std::condition_variable::wait(std::unique_lock<std::mutex>&) (Unknown Source:0)
Semaphore::wait(const Semaphore * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/core/os/semaphore.h:58)
ThreadWorkPool::_thread_function(ThreadWorkPool::ThreadData * p_thread) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/core/thread_work_pool.cpp:37)
std::__invoke_impl<void, void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*>(void (*&&)(ThreadWorkPool::ThreadData *) __f) (/usr/include/c++/9/bits/invoke.h:60)
std::__invoke<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*>(void (*&&)(ThreadWorkPool::ThreadData *) __fn) (/usr/include/c++/9/bits/invoke.h:95)
std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> >::_M_invoke<0ul, 1ul>(std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > * const this) (/usr/include/c++/9/thread:244)
std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> >::operator()(std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > * const this) (/usr/include/c++/9/thread:251)
std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > >::_M_run(std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > > * const this) (/usr/include/c++/9/thread:195)
libstdc++.so.6![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libpthread.so.0!start_thread(void * arg) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477)
libc.so.6!clone() (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/x86_64/clone.S:95)
  1. godot.linuxbsd PAUSED
libpthread.so.0!futex_wait_cancelable(unsigned int expected, unsigned int * futex_word) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/nptl/futex-internal.h:183)
libpthread.so.0!__pthread_cond_wait_common(const struct timespec * abstime, clockid_t clockid, pthread_mutex_t * mutex, pthread_cond_t * cond) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_cond_wait.c:508)
libpthread.so.0!__pthread_cond_wait(pthread_cond_t * cond, pthread_mutex_t * mutex) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_cond_wait.c:638)
libstdc++.so.6!std::condition_variable::wait(std::unique_lock<std::mutex>&) (Unknown Source:0)
Semaphore::wait(const Semaphore * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/core/os/semaphore.h:58)
ThreadWorkPool::_thread_function(ThreadWorkPool::ThreadData * p_thread) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/core/thread_work_pool.cpp:37)
std::__invoke_impl<void, void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*>(void (*&&)(ThreadWorkPool::ThreadData *) __f) (/usr/include/c++/9/bits/invoke.h:60)
std::__invoke<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*>(void (*&&)(ThreadWorkPool::ThreadData *) __fn) (/usr/include/c++/9/bits/invoke.h:95)
std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> >::_M_invoke<0ul, 1ul>(std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > * const this) (/usr/include/c++/9/thread:244)
std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> >::operator()(std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > * const this) (/usr/include/c++/9/thread:251)
std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > >::_M_run(std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(ThreadWorkPool::ThreadData*), ThreadWorkPool::ThreadData*> > > * const this) (/usr/include/c++/9/thread:195)
libstdc++.so.6![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libpthread.so.0!start_thread(void * arg) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477)
libc.so.6!clone() (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/x86_64/clone.S:95)
  1. godot.linuxbsd PAUSED
libc.so.6!__GI___clock_nanosleep(clockid_t clock_id, int flags, const struct timespec * req, struct timespec * rem) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/clock_nanosleep.c:78)
libc.so.6!__GI___nanosleep(const struct timespec * requested_time, struct timespec * remaining) (/build/glibc-ZN95T4/glibc-2.31/posix/nanosleep.c:27)
libc.so.6!usleep(useconds_t useconds) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/posix/usleep.c:32)
JoypadLinux::monitor_joypads(JoypadLinux * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/platform/linuxbsd/joypad_linux.cpp:203)
JoypadLinux::run_joypad_thread(JoypadLinux * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/platform/linuxbsd/joypad_linux.cpp:110)
JoypadLinux::joy_thread_func(void * p_user) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/platform/linuxbsd/joypad_linux.cpp:98)
ThreadPosix::thread_callback(void * userdata) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/unix/thread_posix.cpp:71)
libpthread.so.0!start_thread(void * arg) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477)
libc.so.6!clone() (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/x86_64/clone.S:95)
  1. godot.linuxbsd PAUSED
libc.so.6!__GI___clock_nanosleep(clockid_t clock_id, int flags, const struct timespec * req, struct timespec * rem) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/clock_nanosleep.c:78)
libc.so.6!__GI___nanosleep(const struct timespec * requested_time, struct timespec * remaining) (/build/glibc-ZN95T4/glibc-2.31/posix/nanosleep.c:27)
OS_Unix::delay_usec(const OS_Unix * const this, uint32_t p_usec) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/unix/os_unix.cpp:239)
AudioDriverPulseAudio::thread_func(void * p_udata) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/pulseaudio/audio_driver_pulseaudio.cpp:511)
ThreadPosix::thread_callback(void * userdata) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/unix/thread_posix.cpp:71)
libpthread.so.0!start_thread(void * arg) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477)
libc.so.6!clone() (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/x86_64/clone.S:95)
  1. godot.linuxbsd PAUSED
libc.so.6!__GI___clock_nanosleep(clockid_t clock_id, int flags, const struct timespec * req, struct timespec * rem) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/clock_nanosleep.c:78)
libc.so.6!__GI___nanosleep(const struct timespec * requested_time, struct timespec * remaining) (/build/glibc-ZN95T4/glibc-2.31/posix/nanosleep.c:27)
OS_Unix::delay_usec(const OS_Unix * const this, uint32_t p_usec) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/unix/os_unix.cpp:239)
EditorExportPlatformAndroid::_check_for_changes_poll_thread(void * ud) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/platform/android/export/export.cpp:418)
ThreadPosix::thread_callback(void * userdata) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/unix/thread_posix.cpp:71)
libpthread.so.0!start_thread(void * arg) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477)
libc.so.6!clone() (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/x86_64/clone.S:95)
  1. godot.linuxbsd PAUSED
libc.so.6!__GI___clock_nanosleep(clockid_t clock_id, int flags, const struct timespec * req, struct timespec * rem) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/clock_nanosleep.c:78)
libc.so.6!__GI___nanosleep(const struct timespec * requested_time, struct timespec * remaining) (/build/glibc-ZN95T4/glibc-2.31/posix/nanosleep.c:27)
OS_Unix::delay_usec(const OS_Unix * const this, uint32_t p_usec) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/unix/os_unix.cpp:239)
EditorExportPlatformJavaScript::_server_thread_poll(void * data) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/platform/javascript/export/export.cpp:609)
ThreadPosix::thread_callback(void * userdata) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/unix/thread_posix.cpp:71)
libpthread.so.0!start_thread(void * arg) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477)
libc.so.6!clone() (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/x86_64/clone.S:95)
  1. godot.linuxbsd PAUSED
libc.so.6!__GI___clock_nanosleep(clockid_t clock_id, int flags, const struct timespec * req, struct timespec * rem) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/clock_nanosleep.c:78)
libc.so.6!__GI___nanosleep(const struct timespec * requested_time, struct timespec * remaining) (/build/glibc-ZN95T4/glibc-2.31/posix/nanosleep.c:27)
OS_Unix::delay_usec(const OS_Unix * const this, uint32_t p_usec) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/unix/os_unix.cpp:239)
EditorFileServer::_thread_start(void * s) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/editor/fileserver/editor_file_server.cpp:296)
ThreadPosix::thread_callback(void * userdata) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/unix/thread_posix.cpp:71)
libpthread.so.0!start_thread(void * arg) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477)
libc.so.6!clone() (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/x86_64/clone.S:95)
  1. godot.linuxbsd PAUSED
libpthread.so.0!futex_wait_cancelable(unsigned int expected, unsigned int * futex_word) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/nptl/futex-internal.h:183)
libpthread.so.0!__pthread_cond_wait_common(const struct timespec * abstime, clockid_t clockid, pthread_mutex_t * mutex, pthread_cond_t * cond) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_cond_wait.c:508)
libpthread.so.0!__pthread_cond_wait(pthread_cond_t * cond, pthread_mutex_t * mutex) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_cond_wait.c:638)
libstdc++.so.6!std::condition_variable::wait(std::unique_lock<std::mutex>&) (Unknown Source:0)
Semaphore::wait(const Semaphore * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/core/os/semaphore.h:58)
EditorResourcePreview::_thread(EditorResourcePreview * const this) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/editor/editor_resource_preview.cpp:211)
EditorResourcePreview::_thread_func(void * ud) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/editor/editor_resource_preview.cpp:99)
ThreadPosix::thread_callback(void * userdata) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/drivers/unix/thread_posix.cpp:71)
libpthread.so.0!start_thread(void * arg) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477)
libc.so.6!clone() (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/x86_64/clone.S:95)
  1. CPMMListener
libc.so.6!__GI___select(int nfds, fd_set * readfds, fd_set * writefds, fd_set * exceptfds, struct timeval * timeout) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/select.c:41)
libnvidia-glcore.so.455.28![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libpthread.so.0!start_thread(void * arg) (/build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477)
libc.so.6!clone() (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/x86_64/clone.S:95)

Console output


Godot Engine v4.0.dev.custom_build.c97dea47b - https://godotengine.org
ERROR: Can't find layer: VK_LAYER_KHRONOS_validation
   at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
ERROR: Can't find layer: VK_LAYER_LUNARG_standard_validation
   at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
ERROR: Can't find layer: VK_LAYER_GOOGLE_threading
   at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
DisplayServer::_create_window 0 want rect: 448, 240, 1024, 600 got rect 448, 240, 1024
, 600
DisplayServer::_window_changed: 0 rect: 2, 21, 1024, 600
DisplayServer::_window_changed: 0 rect: 2, 21, 1052, 1057
 
[1] LeaveNotify window=25165826 (0), mode='0' 
ERROR: Attempted to free invalid ID: 0
   at: _free_internal (drivers/vulkan/rendering_device_vulkan.cpp:6956)
[83] EnterNotify window=25165826 (0), mode='0' 
[202] ButtonPress window=25165826 (0), button_index=5 
[202] ButtonRelease window=25165826 (0), button_index=5 
[204] ButtonPress window=25165826 (0), button_index=5 
[204] ButtonRelease window=25165826 (0), button_index=5 
[206] ButtonPress window=25165826 (0), button_index=5 
[206] ButtonRelease window=25165826 (0), button_index=5 
[208] ButtonPress window=25165826 (0), button_index=5 
[208] ButtonRelease window=25165826 (0), button_index=5 
[480] ButtonPress window=25165826 (0), button_index=1 
DisplayServer::_create_window 1 want rect: 66, 55, 373, 241 got rect 66, 55, 373, 241
[481] MapNotify window=25165831 (1) 
[481] VisibilityNotify window=25165831 (1), state=0 
[481] VisibilityNotify window=25165826 (0), state=1 
[481] Expose window=25165831 (1), count='0' 
[481] ButtonRelease window=25165826 (0), button_index=1 
[482] FocusOut window=25165826 (0), mode='0' 
[482] FocusIn window=25165831 (1), mode='0' 

@Darkheron Please surround large blocks of text with triple backticks like this:

``` text here ```

This prevents them from taking too much space and also makes sure issue references aren’t accidentally created. I edited your comment, but remember to do this next time 🙂

Godot version: 4.0

OS/device including version:

Linux version 5.4.0-42-generic (buildd@lgw01-amd64-038) (gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2)) Nvidia GeForce RGX 2080Ti Vulkan 1.2 AMD Ryzen Threadripper 2950X 16-Core Processor Using the nvidia 450 driver.

Having the same problem. Not completely sure what is going on yet, but at first glance it seems to be blocking in vkDeviceWaitIdle for ages.

36 #0  0x00007ffff77c5aff in __GI___poll (fds=0x7fffffffc330, nfds=1, timeout=10) at ../sysdeps/unix/sysv/linux/poll.c:29
35 #1  0x00007fffeaa527e4 in ?? () from /lib/x86_64-linux-gnu/libnvidia-glcore.so.450.80.02                                                                                                 
34 #2  0x00007fffeae2c329 in ?? () from /lib/x86_64-linux-gnu/libnvidia-glcore.so.450.80.02                                                                                                 
33 #3  0x00007fffeae4af8d in ?? () from /lib/x86_64-linux-gnu/libnvidia-glcore.so.450.80.02                                                                                                 
32 #4  0x00007fffeae2b31d in ?? () from /lib/x86_64-linux-gnu/libnvidia-glcore.so.450.80.02                                                                                                 
31 #5  0x00007fffeae2cdd6 in ?? () from /lib/x86_64-linux-gnu/libnvidia-glcore.so.450.80.02                                                                                                 
30 #6  0x0000000002dd1176 in vkDeviceWaitIdle (device=0x83fbc70) at thirdparty/vulkan/loader/trampoline.c:894                                                                               
29 #7  0x0000000002dc8294 in VulkanContext::_clean_up_swap_chain (this=0x8041840, window=0x186ee7e8) at drivers/vulkan/vulkan_context.cpp:830                                               
28 #8  0x0000000002dc8204 in VulkanContext::window_destroy (this=0x8041840, p_window_id=1) at drivers/vulkan/vulkan_context.cpp:821                                                         
27 #9  0x0000000001ca9190 in DisplayServerX11::delete_sub_window (this=0x80209b0, p_id=1) at platform/linuxbsd/display_server_x11.cpp:733                                                   
26 #10 0x0000000003bfe3d3 in Window::_clear_window (this=0x9dc0a90) at scene/main/window.cpp:278                                                                                            
25 #11 0x0000000003c01226 in Window::_notification (this=0x9dc0a90, p_what=11) at scene/main/window.cpp:772                                                                                 
24 #12 0x0000000002098368 in Window::_notificationv (this=0x9dc0a90, p_notification=11, p_reversed=true) at ./scene/main/window.h:40                                                        
23 #13 0x00000000031c49e7 in Popup::_notificationv (this=0x9dc0a90, p_notification=11, p_reversed=true) at ./scene/gui/popup.h:39                                                           
22 #14 0x00000000031c510b in PopupPanel::_notificationv (this=0x9dc0a90, p_notification=11, p_reversed=true) at ./scene/gui/popup.h:65                                                      
21 #15 0x0000000003be0bf7 in TooltipPanel::_notificationv (this=0x9dc0a90, p_notification=11, p_reversed=true) at scene/main/viewport.cpp:165                                               
20 #16 0x0000000004cbaad5 in Object::notification (this=0x9dc0a90, p_notification=11, p_reversed=true) at core/object.cpp:806                                                               
19 #17 0x0000000003b68167 in Node::_propagate_exit_tree (this=0x9dc0a90) at scene/main/node.cpp:269                                                                                         
18 #18 0x0000000003b74ee0 in Node::_set_tree (this=0x9dc0a90, p_tree=0x0) at scene/main/node.cpp:2551                                                                                       
17 #19 0x0000000003b6d52e in Node::remove_child (this=0xf04a360, p_child=0x9dc0a90) at scene/main/node.cpp:1297                                                                             
16 #20 0x0000000003b6711f in Node::_notification (this=0x9dc0a90, p_notification=1) at scene/main/node.cpp:162                                                                              
15 #21 0x0000000001fd9954 in Node::_notificationv (this=0x9dc0a90, p_notificaion=1, p_reversed=true) at ./scene/main/node.h:45                                                             
14 #22 0x0000000002097c5f in Viewport::_notificationv (this=0x9dc0a90, p_notification=1, p_reversed=true) at ./scene/main/viewport.h:87                                                     
13 #23 0x0000000002098383 in Window::_notificationv (this=0x9dc0a90, p_notification=1, p_reversed=true) at ./scene/main/window.h:40                                                         
12 #24 0x00000000031c49e7 in Popup::_notificationv (this=0x9dc0a90, p_notification=1, p_reversed=true) at ./scene/gui/popup.h:39                                                            
11 #25 0x00000000031c510b in PopupPanel::_notificationv (this=0x9dc0a90, p_notification=1, p_reversed=true) at ./scene/gui/popup.h:65                                                       
10 #26 0x0000000003be0bf7 in TooltipPanel::_notificationv (this=0x9dc0a90, p_notification=1, p_reversed=true) at scene/main/viewport.cpp:165                                                
 9 #27 0x0000000004cbaad5 in Object::notification (this=0x9dc0a90, p_notification=1, p_reversed=true) at core/object.cpp:806                                                                
 8 #28 0x0000000004cb887d in Object::_predelete (this=0x9dc0a90) at core/object.cpp:354                                                                                                     
 7 #29 0x0000000004cc4409 in predelete_handler (p_object=0x9dc0a90) at core/object.cpp:1847                                                                                                 
 6 #30 0x0000000001cdde34 in memdelete<Object> (p_class=0x9dc0a90) at ./core/os/memory.h:111                                                                                                
 5 #31 0x0000000003b9d283 in SceneTree::_flush_delete_queue (this=0x81623d0) at scene/main/scene_tree.cpp:991                                                                               
 4 #32 0x0000000003b99d1d in SceneTree::iteration (this=0x81623d0, p_time=0.0166666675) at scene/main/scene_tree.cpp:419                                                                    
 3 #33 0x0000000001cdb9cc in Main::iteration () at main/main.cpp:2400                                                                                                                       
 2 #34 0x0000000001ca1260 in OS_LinuxBSD::run (this=0x7fffffffcf00) at platform/linuxbsd/os_linuxbsd.cpp:240                                                                                
 1 #35 0x0000000001c9eb6c in main (argc=4, argv=0x7fffffffd3e8) at platform/linuxbsd/godot_linuxbsd.cpp:58

Still looking.

@pouleyKetchoupp Hey i’m having the same exact problem as OP has, with the difference of the popup window showing but it dosen’t seem to render(transparent with borders and contents behind it are inside the window like a image). that the the whole application softlocks and i cant click or interact with anything in the application and i have to manually shut it down via htop.

Godot version

build from commit: 32be929 Godot Engine v4.0 master

OS/device including version:

Pop!_OS 20.04 LTS (64bit) Nvidia GTX 980 Driver version: 455.28 Kernel: 5.4.0-7642-generic

So i did as you instructed with debugging via vscode. I also uncommented line 87 from platform/linuxbsd/display_server_x11.cpp and this is the output that i got:

Stack Trace:

libc.so.6!__GI_raise(int sig) (/build/glibc-ZN95T4/glibc-2.31/sysdeps/unix/sysv/linux/raise.c:50)
libc.so.6!__GI_abort() (/build/glibc-ZN95T4/glibc-2.31/stdlib/abort.c:79)
libstdc++.so.6![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libstdc++.so.6!std::terminate() (Unknown Source:0)
libstdc++.so.6!__cxa_pure_virtual (Unknown Source:0)
Callable::call(const Callable * const this, const Variant ** p_arguments, int p_argcount, Variant & r_return_value, Callable::CallError & r_call_error) (/mnt/sdb1/gitworkspace/godot/core/callable.cpp:50)
DisplayServerX11::_send_window_event(DisplayServerX11 * const this, const DisplayServerX11::WindowData & wd, DisplayServer::WindowEvent p_event) (/mnt/sdb1/gitworkspace/godot/platform/linuxbsd/display_server_x11.cpp:2443)
DisplayServerX11::process_events(DisplayServerX11 * const this) (/mnt/sdb1/gitworkspace/godot/platform/linuxbsd/display_server_x11.cpp:2847)
OS_LinuxBSD::run(OS_LinuxBSD * const this) (/mnt/sdb1/gitworkspace/godot/platform/linuxbsd/os_linuxbsd.cpp:236)
main(int argc, char ** argv) (/mnt/sdb1/gitworkspace/godot/platform/linuxbsd/godot_linuxbsd.cpp:58)

Terminal Output:

Godot Engine v4.0.dev.custom_build.d5073c6b4 - https://godotengine.org
ERROR: Can't find layer: VK_LAYER_KHRONOS_validation
   at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
ERROR: Can't find layer: VK_LAYER_LUNARG_standard_validation
   at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
ERROR: Can't find layer: VK_LAYER_GOOGLE_threading
   at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
DisplayServer::_create_window 0 want rect: 448, 240, 1024, 600 got rect 448, 240, 1024, 600
 
[1] ConfigureNotify window=46137348 (0), event=46137348, above=0, override_redirect=0 
DisplayServer::_window_changed: 0 rect: 0, 37, 1024, 600
[1] ConfigureNotify window=46137348 (0), event=46137348, above=0, override_redirect=0 
[1] MapNotify window=46137348 (0) 
[1] VisibilityNotify window=46137348 (0), state=0 
[1] Expose window=46137348 (0), count='0' 
[1] FocusIn window=46137348 (0), mode='0' 
[1] EnterNotify window=46137348 (0), mode='0' 
[1] ConfigureNotify window=46137348 (0), event=46137348, above=0, override_redirect=0 
DisplayServer::_window_changed: 0 rect: 0, 37, 1920, 1043
[1] VisibilityNotify window=46137348 (0), state=1 
[1] Expose window=46137348 (0), count='0' 
[1] VisibilityNotify window=46137348 (0), state=0 
[1] Expose window=46137348 (0), count='1' 
[1] Expose window=46137348 (0), count='0' 
ERROR: Attempted to free invalid ID: 0
   at: _free_internal (drivers/vulkan/rendering_device_vulkan.cpp:6956)
[163] LeaveNotify window=46137348 (0), mode='0' 
[190] EnterNotify window=46137348 (0), mode='0' 
DisplayServer::_create_window 1 want rect: 97, 73, 295, 28 got rect 97, 73, 295, 28
[228] ConfigureNotify window=46137425 (1), event=46137425, above=4194315, override_redirect=1 
DisplayServer::_window_changed: 1 rect: 1920, 0, 295, 28
[228] MapNotify window=46137425 (1) 
[228] VisibilityNotify window=46137425 (1), state=0 
[228] Expose window=46137425 (1), count='0' 
[237] LeaveNotify window=46137348 (0), mode='0' 
[237] FocusOut window=46137348 (0), mode='0' 
[237] EnterNotify window=46137348 (0), mode='0' 
[237] FocusIn window=46137348 (0), mode='0' 
[237] ButtonPress window=46137348 (0), button_index=1 
[237] ButtonRelease window=46137348 (0), button_index=1 
[237] LeaveNotify window=46137348 (0), mode='0' 
[237] EnterNotify window=46137348 (0), mode='0' 
[237] ButtonPress window=46137348 (0), button_index=1 
[237] ButtonRelease window=46137348 (0), button_index=1 
[237] LeaveNotify window=46137348 (0), mode='0' 
DisplayServer::_create_window 2 want rect: 64, 71, 373, 241 got rect 64, 71, 373, 241
DisplayServer::_create_window 3 want rect: 126, 71, 314, 241 got rect 126, 71, 314, 241
delete_sub_window: 46137425 (1) 
[1] + Done                       "/usr/bin/gdb" --interpreter=mi --tty=${DbgTerm} 0<"/tmp/Microsoft-MIEngine-In-zhlwq3ao.g8m" 1>"/tmp/Microsoft-MIEngine-Out-zj0stgcz.8ka"

I’m new to contributing online so i apologize beforehand if i left out any information.