axkg / terminatorX

Synchronized turntables to scratch on digital vinyl
https://terminatorX.org
GNU General Public License v2.0
8 stars 4 forks source link

Broken UI on GNOME in Debian Trixie with AMD graphics #10

Open nykula opened 2 months ago

nykula commented 2 months ago

Hello! On a fresh Debian Testing install with GNOME, on top of AMD integrated graphics, after terminatorX loads a sound, the audio scroll widget disappears along with the menu, and the program crashes after a while. This happens in both Wayland and X11 sessions. When I launch terminatorX in terminal, the latter is flooded with such warnings when the issue happens:

(terminatorX:281565): Gdk-CRITICAL **: 13:53:24.142: gdk_x11_window_get_xid: assertion 'GDK_IS_X11_WINDOW (window)' failed
play WARN alsa: can't encode 0-bit Unknown or not applicable

(terminatorX:281565): Gtk-WARNING **: 13:53:30.725: drawing failure for widget 'GtkTx': NULL pointer

(terminatorX:281565): Gtk-WARNING **: 13:53:30.725: drawing failure for widget 'GtkWindow': NULL pointer

Here are the versions of terminatorX and its dependencies:

debconf/testing,now 1.5.87 all [installed]
libasound2t64/testing,now 1.2.12-1 amd64 [installed,automatic]
libatk1.0-0t64/testing 2.54.0-1 amd64 [upgradable from: 2.53.1-2]
libaudiofile1/testing,now 0.3.6-6+b2 amd64 [installed,automatic]
libc6/testing,now 2.40-2 amd64 [installed]
libcairo2/testing,now 1.18.2-1 amd64 [installed,automatic]
libcap2/testing,now 1:2.66-5 amd64 [installed]
libgcc-s1/testing,now 14.2.0-3 amd64 [installed]
libgdk-pixbuf-2.0-0/testing,now 2.42.12+dfsg-1 amd64 [installed,automatic]
libglib2.0-0t64/testing,now 2.82.0-1 amd64 [installed,automatic]
libgtk-3-0t64/testing,now 3.24.43-3 amd64 [installed,automatic]
libjack-jackd2-0/testing,now 1.9.22~dfsg-3 amd64 [installed,automatic]
liblrdf0/testing,now 0.6.1-4+b1 amd64 [installed,automatic]
libmad0/testing,now 0.15.1b-10.2 amd64 [installed,automatic]
libpango-1.0-0/testing,now 1.54.0+ds-2 amd64 [installed,automatic]
libpulse0/testing,now 16.1+dfsg1-5.1 amd64 [installed,automatic]
libstdc++6/testing,now 14.2.0-3 amd64 [installed]
libvorbisfile3/testing,now 1.3.7-2 amd64 [installed,automatic]
libx11-6/testing,now 2:1.8.7-1+b1 amd64 [installed,automatic]
libxml2/testing,now 2.9.14+dfsg-1.3+b3 amd64 [installed,automatic]
mpg123/testing,now 1.32.7-1 amd64 [installed,automatic]
sox/testing,now 14.4.2+git20190427-4+b2 amd64 [installed,automatic]
terminatorx/testing,now 4.2.0-3 amd64 [installed]
vorbis-tools/testing,now 1.4.2-2 amd64 [installed,automatic]
zlib1g/testing,now 1:1.3.dfsg+really1.3.1-1 amd64 [installed]

Here is the video card model, I haven't installed any custom drivers, only what Debian provides out of the box:

04:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [Radeon Vega Series / Radeon Vega Mobile Series] (rev c4)

I understand that by using Testing instead of Stable I'm likely to get bugs, but this means that there has appeared an incompatibility of terminatorX with recent versions of GTK or something, so please try debugging this when you have time, while these versions haven't made their way to Stable yet.

axkg commented 2 months ago

Thanks for your report, I do get the GTK+ error messages, albeit no crashing so far. Unfortunately even running with a debug-enabled GTK+ didn't help to identify the root cause yet. Hope to find some time to give it another shot soon.

nykula commented 2 months ago

Here are the steps I found that sometimes reproduce the crash. Launch terminatorX, connect MIDI control input using Helvum, tap MIDI button in terminatorX, move two-axis joystick along X axis, tap Bind (to Speed), tap Close, load audio file, tap Power, start rotating joystick.

(terminatorX:37114): Gtk-CRITICAL **: 00:54:55.658: gtk_label_set_text: assertion 'GTK_IS_LABEL (label)' failed
AddressSanitizer:DEADLYSIGNAL
=================================================================
==37114==ERROR: AddressSanitizer: SEGV on unknown address 0x0140000000bb (pc 0x7fa3f4bf27e7 bp 0x511000466344 sp 0x7ffe4f3231d0 T0)
==37114==The signal is caused by a READ memory access.
    #0 0x7fa3f4bf27e7 in gtk_label_set_text (/lib/x86_64-linux-gnu/libgtk-3.so.0+0x1f27e7) (BuildId: 193497d3ee906e04b310d52a58789757c17ebcc1)
    #1 0x55d20cbaa723 in tX_midiin::midi_binding_gui::timer(void*) ../src/tX_midiin.cc:381

It doesn't always crash, many times it just says to terminal:

(terminatorX:37540): Gtk-CRITICAL **: 01:03:33.141: gtk_label_set_text: assertion 'GTK_IS_LABEL (label)' failed

Or replaces the text of a random widget, such as a table column header or a button, with the Type/Number/Channel info.