On 04/11/2025 16:27, ichthyo wrote:
Hello Yoshimi-devs,
starting a new topic for the problems first detected by Derek Hall on
Ubuntu
Original Bug report: https://sourceforge.net/p/yoshimi/bugs/40/
Facts established thus far:
- FLTK 1.4 is the first Version with Wayland support.
They use a hybrid approach, so that the FLTK toolkit switches
to the graphics backend appropriate for the given setup.
- the crash happens under Wayland / Gnome, immediately at the point
when the main UI is created (the splash screen still displays)
- the audio engine is irrelevant.
yoshimi --null # crashes
yoshimi -i # no GUI, no crash
- *WORKAROUND* the selection of the FLTK backend is configurable
https://www.fltk.org/doc-1.4/osissues.html#osissues_wl_x11_hybrid
it can be controlled with an environment variable.
In theory it can be controlled even from within the program
before starting the UI.
FLTK_BACKEND=x11 yoshimi # works under Ubnuntu 25.10
FLTK_BACKEND=wayland yoshimi # crashes under Ubuntu, also with --null
However, Wayland is not going away, so we should *resolve* this issue!
- we have several stacktraces with v2.3.4.1 (previous release, Ubuntu
package)
and v2.3.5.1 (latest release, my PPA)
https://launchpad.net/~ichthyo/+archive/ubuntu/music
- the stacktrace is always similar. It happens when FLTK flushes some
redraw events. *No yoshimi code* is involved in the actual stacktrace,
but obviously, Yoshimi somehow triggered the problem by a combination
of features not so commonly used.
====== Stacktrace from Yoshimi 2.3.5.1 ========
#0 0x0000557ac9197a27 in ?? ()
#1 0x00007853314c9bfd in Fl_Group::draw_child(Fl_Widget&) const ()
from /lib/x86_64-linux-gnu/libfltk.so.1.4
#2 0x00007853314c9e52 in Fl_Group::draw_children() () from /lib/x86_64-
linux-gnu/libfltk.so.1.4
#3 0x00007853314c9bfd in Fl_Group::draw_child(Fl_Widget&) const ()
from /lib/x86_64-linux-gnu/libfltk.so.1.4
#4 0x00007853314c9e52 in Fl_Group::draw_children() () from /lib/x86_64-
linux-gnu/libfltk.so.1.4
#5 0x000078533151e20b in Fl_Window::draw() () from /lib/x86_64-linux-
gnu/libfltk.so.1.4
#6 0x00007853315497ee in Fl_Wayland_Window_Driver::flush() () from /
lib/x86_64-linux-gnu/libfltk.so.1.4
#7 0x0000785331547b09 in ?? () from /lib/x86_64-linux-gnu/libfltk.so.1.4
#8 0x000078533038e88c in xdg_surface_configure
(user_data=0x78530443d4d0, xdg_surface=<optimized out>, serial=263)
at ../src/libdecor.c:357
#9 0x000078532f981ed6 in ?? () from /lib/x86_64-linux-gnu/libffi.so.8
#10 0x000078532f97eba6 in ?? () from /lib/x86_64-linux-gnu/libffi.so.8
#11 0x000078532f9814ae in ffi_call () from /lib/x86_64-linux-gnu/
libffi.so.8
#12 0x00007853303a198b in ?? () from /lib/x86_64-linux-gnu/libwayland-
client.so.0
#13 0x00007853303a27c9 in ?? () from /lib/x86_64-linux-gnu/libwayland-
client.so.0
#14 0x00007853303a2bc3 in wl_display_dispatch_queue_pending () from /
lib/x86_64-linux-gnu/libwayland-client.so.0
#15 0x00007853303a633a in wl_display_dispatch_queue_timeout () from /
lib/x86_64-linux-gnu/libwayland-client.so.0
#16 0x00007853303a640f in wl_display_dispatch_queue () from /lib/x86_64-
linux-gnu/libwayland-client.so.0
#17 0x000078533153fe5b in ?? () from /lib/x86_64-linux-gnu/libfltk.so.1.4
#18 0x000078533153e9d0 in
Fl_Unix_Screen_Driver::poll_or_select_with_delay(double) () from /lib/
x86_64-linux-gnu/libfltk.so.1.4
#19 0x000078533154a9a1 in Fl_Unix_System_Driver::wait(double) () from /
lib/x86_64-linux-gnu/libfltk.so.1.4
#20 0x0000557ac91ad8dc in ?? ()
#21 0x00007853306a3d64 in start_thread (arg=<optimized out>) at ./nptl/
pthread_create.c:448
#22 0x00007853307373bc in __GI___clone3 () at ../sysdeps/unix/sysv/
linux/x86_64/clone3.S:78
What can we do?
Will and myself just discussed some options per mail.
We both agree that we should try to narrow down the surface of the problem.
So the first idea would be to create a striped-down variant of Yoshimi.
Seemingly we do not need the synth engine running.
Is there a way to launch only a single window and not to define the
other sub windows at all?
Another thing worth trying would be if we can reproduce the crash
with a Debian? Because, I'd guess the Debian people would be very
interested to know about this kind of integration problems with
Wayland. While Ubuntu basically just consumes and packages Debian.
Thus it seems relevant to know if this happens only on Ubuntu
or on any Gnome desktop using Wayland. (Maybe even on KDE / Plasma?)
Not sure if this is helpful...
On Manjaro with KDE Plasma running a Wayland session I am able to start
and play with Yoshimi (just compiled from git), albeit with the slider
issue reported a while back [1]
Some system info:
KDE Plasma Version: 6.3.6
KDE Frameworks Version: 6.18.0
Qt Version: 6.9.2
Kernel Version: 6.16.8-1-MANJARO (64-bit)
The installed version of Wayland (reported by the package manager) is:
1.24.0-1
And FLTK (also from the package manager):
1.4.4-2
After issues with Yoshimi and QMidiArp and plugins in Rosegarden and
discovering that X11 and Wayland can actually coexist with KDE Plasma,
I've settled back on X11 as default for the moment.
Lorenzo
[1] https://www.freelists.org/post/yoshimi/Yoshimi-235,3
-- Hermann
_______________________________________________
Yoshimi-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/yoshimi-devel
_______________________________________________
Yoshimi-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/yoshimi-devel