Properties and Filters windows make obs hang on wayland when closed

Hello,

I am having an issue with OBS using Wayland on Linux.

Basically when opening the Properties and Filters (through the gear icon near the volume bar in the mixer panel) windows in OBS it makes OBS hang (recording is attached).

The issue does not happen on X and only on Wayland.

I am using Fedora 36 beta with Gnome 42 (The same issue also happens on KDE 5.24.3 and Gnome 41).

I have also tested on a non Nvidia GPU (Intel integrated graphics) and the issue does not happen there at all, so that leads me to believe that somehow the NV driver causes it.

The issue happens on the official flatpak and rpm builds of OBS.

The issue happens even when not changing anything inside the windows.

My specs:
CPU: Ryzen 5 2600
GPU: GTX 1070Ti with drivers 510.60.02
OS: Fedora 36 beta

Bug report log:
nvidia-bug-report.log.gz (299.4 KB)

Thanks in advance

The recording:

The issue is still happening with 510.68.02 .

@oranhero
Thanks for highlighting issue on forum. I am able to duplicate issue locally and filed a bug 3638326 internally for tracking purpose.

@amrits Thanks for the response.
Will progress on this bug be shared in this thread?

Yes I will update but you can anytime refer bug number here asking for the update.

@amrits Do you happen to know if the bug can be duplicated with the newly released 515.43.04?

@oranhero We are still working on it, shall update once we have fix for it.

@amrits I can still reproduce the bug with 515.48.07.

Are there any updates on the bug?

@oranhero can you check what version of the egl-wayland library you have installed? Most distributions package it separately from the main driver. This issue should be fixed with the latest version 1.1.10.

@ekurzinger I have version 1.1.10 installed but the issue still persists.

The original uploaded log was on version 1.1.9.

I am now uploading an updated log with 1.1.10 installed.

nvidia-bug-report.log.gz (302.0 KB)

Oh shoot, very sorry, I just realized that the fix didn’t get pushed to our GitHub mirror. I’ve done so now egl-wayland: fix eglSwapInterval with GBM compositors · NVIDIA/egl-wayland@53b6a87 · GitHub

I will also tag a new version since it’s a fairly important fix and we probably want to have distros pick it up. If you want to try it in the meantime you could build the library from source.

@ekurzinger Can you reply here when you have a new release?

Yes, absolutely, will do.

@ekurzinger I have built egl-wayland with that commit as RPM package for testing and can confirm the issue no longer persists. Will mark as solved when there is an official release with the fix.

@ekurzinger I am noticing something weird, when closing the same windows with the X button in the window titlebar, OBS is crashing and in the terminal (when running obs through the terminal) I get:

obs: pthread_mutex_lock.c:94: ___pthread_mutex_lock: Assertion 'mutex->__data.__owner == 0' failed.
and sometimes a segmentation fault.

I am not sure if this a fault of OBS or something with the egl-wayland library. (maybe i didn’t build it correctly? though the hanging does not happen anymore)

log:
nvidia-bug-report.log.gz (500.2 KB)

I compiled egl-wayland-git version from AUR. The error in OBS still persists. Firefox also randomly gives “crash”. I don’t understand this.

I can reproduce the firefox crash when resizing the window or clicking on some of the extensions in the toolbar.

log:
nvidia-bug-report.log.gz (522.3 KB)

@ekurzinger So according to this: Crashes when windows are resized on HEAD · Issue #59 · NVIDIA/egl-wayland · GitHub the crashing of firefox and other wayland apps is caused by the mentioned commit.

I have looked at the log I attached for the obs segfault and I found these interesting lines:

#0 0x00007f9ea888fc3c __pthread_kill_implementation (libc.so.6 + 0x8fc3c)
#1 0x00007f9ea883f9c6 raise (libc.so.6 + 0x3f9c6)
#2 0x00007f9ea88297f4 abort (libc.so.6 + 0x297f4)
#3 0x00007f9ea882971b __assert_fail_base.cold (libc.so.6 + 0x2971b)
#4 0x00007f9ea8838576 __assert_fail (libc.so.6 + 0x38576)
#5 0x00007f9ea88912a0 pthread_mutex_lock (libc.so.6 + 0x912a0)
#6 0x00007f9e8003a3ec destroy_callback (libnvidia-egl-wayland.so.1 + 0x83ec)

It seems to be coming from egl-wayland in destroy_callback