Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Yabridge doesn't work in Kubuntu 24.10 in Ardour, Bitwig Studio and Presonus Studio One #377

Open
1 task done
Skygge666 opened this issue Oct 20, 2024 · 24 comments
Open
1 task done

Comments

@Skygge666
Copy link

Skygge666 commented Oct 20, 2024

Thanks for giving yabridge a shot!

  • I read through both the troubleshooting and the known issues sections, and my issue wasn't listed there

Problem description

In the new (K)ubuntu 24.10 (Oracular oriole) all plugins I have (MTPower Drumkit, EZDrummer 3) cause these DAWs to crash: Ardour, Bitwig Studio and Studio One. Before system upgrade, under 24.04 everything was fine. Now If I add one of these plugins or try to rescan plugins, these DAWs take whole RAM (32G in my case) then crash. What's strange, under Reaper or Tracktion Waveform the plugins are working ok. Idk what happened. I waited for new wine release and proper Oracular repo, what happened today, but it changed nothing. Attached screenshot from Studio One but it looks the same for Ardour and Bitwig Studio.

obraz

What did you expect to happen?

I expected to load and run the plugins

What actually happened?

Ardour, Bitwig and Studio One start to consume all RAM available then crash.

Operating system

Kubuntu 24.10 (Oracular oriole)

How did you install yabridge?

binary from releases page

yabridge version

5.1.0

yabridgectl version

5.1.0

Wine version

winehq-staging 9.20~oracular-1

Plugin

MT Power Drumkit, EZDrummer 3 (demo)

Plugin type

VST3

Plugin architecture

64-bit

Host

Bitwig Studio, Ardour 8.10, Presonus Studio One 6.6

Desktop environment or WM

KDE Plasma 6.1 (Wayland)

GPU model

NVidia RTX 3060

GPU drivers and kernel

Nvidia drivers 555, Kernel 6.11-lowlatency

Debug log

No response

Anything else?

No response

@vudone
Copy link

vudone commented Oct 21, 2024

Same problem here, in ubuntu 24.10.

I have just updated last night.. The wine-hq repositories (for oracular, the name of ubuntu24.10) installs winehq-9.20. I tried to downgrade winehq but it does not repair the problem.

In my case when i launch Ardour (with any yabridge plugin) it keep freezie. If i launch a new ardour project, ir works fine. In any moment I load a yabridge plugin, Ardour freezie.

I tried Ardour 8.6 and ardour 8.10, same issue

@vudone
Copy link

vudone commented Oct 21, 2024

I tried to debug the code with gdb. This is whats gdb shows when the software keep Freezie. Seems like is the moment when i load Melodyne with yabridge. I dont know if this screenshots are usefull.

Captura desde 2024-10-21 10-12-56

Captura desde 2024-10-21 10-15-21

Captura desde 2024-10-21 10-16-16

@vudone
Copy link

vudone commented Oct 23, 2024

The yabridge binary release didnt work in my ubuntu 24.10. I have compiled it in my computer (with winehq-9.20) and now seems to work

@Skygge666
Copy link
Author

Skygge666 commented Oct 23, 2024

Self-compiled Yabridge seems to work. Thanks @vudone for your tip.

@mahlonsmith
Copy link

mahlonsmith commented Oct 23, 2024

Also just updated to Ubuntu 24.10, with the same problem under Ardour.

Another interesting note: Everything seemed fine using Carla as the plugin host. Memory bloat and scanning timeouts in Ardour.

Building yabridge from source, all good in both environments.

@paulopinheiro
Copy link

I confirm the bug in Ubuntu 24.10. The problem does not occur on Carla, Reaper, Muse, Waveform13 or even Audacity. It happens with Ardour and Mixbus.
When you try to load the plugin, Yabridge isn't even called. Ardour is probably in a loop trying to load somehow, which increases memory and CPU use.
That also happens when you try to scan the plugin as a new one to add to the Ardour cache list.
But there's one more piece of information about it: if you try to scan the same plugin in the command line with ardour-vst-scanner it adds to the Ardour cache with no issues. So maybe it's something about the shell environment?

@paulopinheiro
Copy link

Unfortunately, I was unable to compile yabridge from source. The process ends without errors, but at the end I don't have all the expected generated files (there is no yabridgectl, for example).

@vudone
Copy link

vudone commented Oct 24, 2024

Hi @paulopinheiro. Im not in home now, but i think that yabridge works for u. Yesterday when I compiled yabridge i had to compile 2 packages really.

In the root folder, with meson and ninja, u compile some files. thats ok, its part of the project.

In order to compile the yabridgectl bin u need to access to the YABDRIGEFOLDER/tools/yabridgectl folder.

and there launch:

$ cargo run --release

yabdrigectl will be compiled. Copy it with the rest of yabridge files (probably ~/.local/share/yabridge)

And thats all.

@eugenialoli
Copy link

I hope the developer provides us with a new ubuntu binary package soon. There isn't one for the latest released version and compiling it from source is a big complicated on my system.

@Skygge666
Copy link
Author

Skygge666 commented Oct 24, 2024

As a temporary workaround you can download from my homepage working Yabridge for 24.10 (64-bit only!) compiled by me. I will remove this link as soon as developer makes new release.

I removed the download link since version 5.1.1 (and hopefully all newer) seems to work fine.

@Skygge666
Copy link
Author

Skygge666 commented Oct 24, 2024

List of files included:


libyabridge-chainloader-clap.so
libyabridge-chainloader-vst2.so
libyabridge-chainloader-vst3.so
libyabridge-clap.so
libyabridge-vst2.so
libyabridge-vst3.so
README.md
yabridgectl
yabridge-host.exe
yabridge-host.exe.so

You can install this the same way as usual binary release. If you have installed yabridge already - just replace these files and run
yabridgectl sync

@paulopinheiro
Copy link

Hi @paulopinheiro. Im not in home now, but i think that yabridge works for u. Yesterday when I compiled yabridge i had to compile 2 packages really.

In the root folder, with meson and ninja, u compile some files. thats ok, its part of the project.

In order to compile the yabridgectl bin u need to access to the YABDRIGEFOLDER/tools/yabridgectl folder.

and there launch:

$ cargo run --release

yabdrigectl will be compiled. Copy it with the rest of yabridge files (probably ~/.local/share/yabridge)

And thats all.

Thank you very much. That's the missing part. I didn't find those steps on README.
I'll still have to compile the 32 bits modules but the 64 bits based plugins are already working.

@gitterdude
Copy link

Skygge's version isn't compiled against libdl, librt and libpthreads. Maybe that's why it works.

ldd .local/share/yabridge-skygge/libyabridge-vst3.so  :
	linux-vdso.so.1 (0x00007874de582000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007874de000000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007874de2db000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007874de2ad000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007874ddc00000)
	/lib64/ld-linux-x86-64.so.2 (0x00007874de584000)

ldd .local/share/yabridge-org/libyabridge-vst3.so :
	linux-vdso.so.1 (0x000070317c53b000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x000070317c000000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x000070317c28c000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x000070317bfd2000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000070317bc00000)
	/lib64/ld-linux-x86-64.so.2 (0x000070317c53d000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x000070317c37e000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x000070317c379000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x000070317c285000)

@erroreyes
Copy link

List of files included:


libyabridge-chainloader-clap.so
libyabridge-chainloader-vst2.so
libyabridge-chainloader-vst3.so
libyabridge-clap.so
libyabridge-vst2.so
libyabridge-vst3.so
README.md
yabridgectl
yabridge-host.exe
yabridge-host.exe.so

You can install this the same way as usual binary release. If you have installed yabridge already - just replace these files and run yabridgectl sync

I love you!

PS, Renoise is also another DAW where plugins work without any issues after an update to 24.10, even when adding new VST2 and VST3 plugins.

@erroreyes
Copy link

erroreyes commented Nov 11, 2024

I built yabridge on my laptop, including the 32-bit host, updated all my plugins, and everything seems to be working fine.

yabridge-error.eyes.zip

@duncte123
Copy link

Tried the builds of both @erroreyes and @Skygge666, neither worked on my system for Auto-Tune pro (please don't suggest alternatives, they do not function in the same way I misuse the plugin)

Wine: wine-9.21 (Staging)
Daw: Bitwig Studio producer 5.2.5
OS: Kubuntu 24.04.1 LTS x86_64

Bitwig logs:
engine.log
BitwigStudio.log

@robbert-vdh
Copy link
Owner

When you try to load the plugin, Yabridge isn't even called. Ardour is probably in a loop trying to load somehow, which increases memory and CPU use.

@paulopinheiro Could you check if that's what's happening? Since the yabridge host application seems to be launching just fine, can you run Ardour from the command line with YABRIDGE_DEBUG_FILE=/tmp/yabridge.log set and then check in /tmp/yabridge.log to see if the host is starting multiple times? Also, does this only happen with the Ardour binaries from ardour.org or also with Ardour 8.6 installed through Ubuntu's repos?

@robbert-vdh
Copy link
Owner

The problem is likely indeed the line from the backtrace. Weirdly enough there's no problem if you run Ardour's plugin scanner standalone. But when run from Ardour, the posix_spawn_file_actions_addclose() calls seem to somehow be both a lot slower then usual, and they somehow leak memory. The reason why a version compiled on Ubuntu 24.10 (or anything else that has glibc 2.34 or newer, like Ubuntu 22.04) is that when yabridge is compiled on one of those distros, it uses a more efficient way to close file descriptors:

// NOTE: If the Wine process outlives the host, then it may cause issues if
// our process is still keeping the host's file descriptors alive
// that. This can prevent Ardour from restarting after an unexpected
// shutdown. Because of this we won't use `vfork()`, but instead we'll
// just manually close all non-STDIO file descriptors.
#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34)
posix_spawn_file_actions_addclosefrom_np(&actions, STDERR_FILENO + 1);
#else
const int max_fds = static_cast<int>(sysconf(_SC_OPEN_MAX));
for (int fd = STDERR_FILENO + 1; fd < max_fds; fd++) {
posix_spawn_file_actions_addclose(&actions, fd);
}
#endif

I don't know what's changed in Ubuntu 24.10 that's causing posix_spawn_file_actions_addclose() to leak memory in the way it does, but the workaround for this would be to move the check if posix_spawn_file_actions_addclosefrom_np() is available at runtime and use that if it is. I'll try to find some time to work on that soon.

@robbert-vdh robbert-vdh pinned this issue Nov 12, 2024
@Skygge666
Copy link
Author

Hi, the 5.1.1 seems to be fixed. Thanks!

@erroreyes
Copy link

erroreyes commented Nov 14, 2024 via email

@Skygge666
Copy link
Author

Skygge666 commented Nov 14, 2024

5.1.1 works for me also in Bitwig.
5.1.1 was released last week. Maybe you mean 5.1.0?
obraz

@erroreyes
Copy link

erroreyes commented Nov 15, 2024 via email

@gitterdude
Copy link

5.1.1 still doesn't work here in Ardour on Xubuntu 24.10.
Neither the official release nor the one I compiled myself in Ubuntu 20.04

The self-compiled version from Ubuntu 24.04 works, as 5.1.0 also did.

@paulopinheiro
Copy link

I built yabridge on my laptop, including the 32-bit host, updated all my plugins, and everything seems to be working fine.

yabridge-error.eyes.zip

This one works for me on UbuntuStudio 24.10
Thank you very much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants