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

Long plugin names cause paths to yabridge's sockets to be too long #387

Open
1 task done
zdenek-biberle opened this issue Dec 22, 2024 · 0 comments
Open
1 task done

Comments

@zdenek-biberle
Copy link

zdenek-biberle commented Dec 22, 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

I just installed Spitfire Audio's "Originals - Epic Brass and Woodwinds" plugin. When attempting to load it in REAPER, the VST2 version fails with "File name too long" and the VST3 version hangs.

It seems that the full name of the plugin, "Originals - Epic Brass and Woodwinds (64 Bit)", is just long enough to cause some of the paths to yabridge's sockets to not fit it in sun_path field of the sockaddr_un struct, i.e. they're longer than 107 characters. For example:

/run/user/1000/yabridge-Originals - Epic Brass and Woodwinds (64 Bit)-IJMPUZgi/host_plugin_audio_processor_0.sock

is 113 characters long.

What did you expect to happen?

I expected the plugin to load

What actually happened?

The VST2 version fails with a "File name too long" error and the VST3 version hangs.

Operating system

Arch Linux

How did you install yabridge?

https://archlinux.org/packages/multilib/x86_64/yabridge/

yabridge version

5.1.1

yabridgectl version

5.1.1

Wine version

Wine Staging 9.21

Plugin

Originals - Epic Brass and Woodwinds by Spitfire Audio

Plugin type

both VST2 and VST3

Plugin architecture

64-bit

Host

REAPER 7.28

Desktop environment or WM

No response

GPU model

No response

GPU drivers and kernel

No response

Debug log

VST2:

01:15:11 [error] 
01:15:11 [error] Error during initialization:
01:15:11 [error] File name too long
01:15:11 [error] 

VST3:

00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] Initializing yabridge version 5.1.1
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] library:       '/usr/lib/libyabridge-vst3.so'
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] host:          '/usr/bin/yabridge-host.exe'
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] plugin:        '/home/username/.wineaudio/drive_c/Program Files/Common Files/VST3/Originals - Epic Brass and Woodwinds (64 Bit).vst3'
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] plugin type:   'VST3'
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] realtime:      'yes'
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] sockets:       '/run/user/1000/yabridge-Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx'
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] wine prefix:   '/home/username/.wineaudio'
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] wine version:  '9.21 (Staging)'
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] 
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] config from:   '<defaults>'
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] hosting mode:  'individually, 64-bit'
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] other options: '<none>'
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] 
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] Enabled features:
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] - bitbridge support
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] - CLAP support
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] - VST3 support
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] 
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [Wine STDERR] Initializing yabridge host version 5.1.1
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [Wine STDERR] Preparing to load VST3 plugin at '/home/username/.wineaudio/drive_c/Program Files/Common Files/VST3/Originals - Epic Brass and Woodwinds (64 Bit).vst3'
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [host -> plugin] >> GetPluginFactory()
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [plugin -> host] >> Requesting <Configuration>
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [plugin <- host]    <Configuration>
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [Wine STDERR] Finished initializing '/home/username/.wineaudio/drive_c/Program Files/Common Files/VST3/Originals - Epic Brass and Woodwinds (64 Bit).vst3'
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [host <- plugin]    <IPluginFactory3* with 2 registered classes>
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [query interface] In IPluginFactory::queryInterface(): {0x4555A2AB, 0xC1234E57, 0x9B122910, 0x36878931}
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [host -> plugin] >> IPluginFactory3::setHostContext(context = <FUnknown*>)
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [Wine STDERR] [unknown interface] In FUnknown::queryInterface(): {0x58E595CC, 0xDB2D4969, 0x8B6AAF8C, 0x36A664E5}
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [host <- plugin]    kNotImplemented
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [query interface] In IPluginFactory::queryInterface(): {0x0007B650, 0xF24B4C0B, 0xA464EDB9, 0xF00B2ABB}
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [host -> plugin] >> IPluginFactory::createInstance(cid = {0x56535456, 0x7478776F, 0x72696769, 0x6E616C73}, _iid = IComponent::iid, &obj)
00:53:58 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [Wine STDERR] 0384:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFFFFFFFFFA, 0000000001C8FF50
00:53:59 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [Wine STDERR] terminate called after throwing an instance of 'std::system_error'
00:53:59 [Originals - Epic Brass and Woodwinds (64 Bit)-0DFJKQSx] [Wine STDERR]   what():  File name too long

Anything else?

I modified the generate_endpoint_base function in src/common/communication/common.cpp to not include the plugin name and this did indeed fix the issue. So perhaps using a short substring of the plugin's name instead of the full name would be a good idea?

I could of course rename the plugin to something shorter, but then the Spitfire Audio app gets even more screwy than it usually is, so I don't think that's a great solution.

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

1 participant