mate-desktop / mate-media

Media tools for MATE
https://mate-desktop.org
GNU General Public License v2.0
19 stars 25 forks source link

mate-media: INT_cairo_region_destroy(): mate-volume-control-applet killed by SIGABRT #202

Open raveit65 opened 1 year ago

raveit65 commented 1 year ago

This is one of repeating bugs which occurred very often in fedora in the last years and were reported by users via fedora bug reporting tool. This is a blocker bug which prevent me to switch the applet to in-process build to avoid that the whole panel crashes. No in-process --> no wayland session.

Actual behaviour

Truncated backtrace:
Thread no. 1 (11 frames)
 #6 INT_cairo_region_destroy at ../src/cairo-region.c:430
 #7 gdk_window_append_old_updated_area at ../gdk/gdkwindow.c:1165
 #8 gdk_window_process_updates_internal at ../gdk/gdkwindow.c:4022
 #9 gdk_window_process_updates_with_mode at ../gdk/gdkwindow.c:4215
 #11 _g_closure_invoke_va at ../gobject/gclosure.c:895
 #14 _gdk_frame_clock_emit_paint at ../gdk/gdkframeclock.c:657
 #15 gdk_frame_clock_paint_idle at ../gdk/gdkframeclockidle.c:597
 #20 g_main_context_iterate.isra.0 at ../glib/gmain.c:4276
 #22 gtk_main at ../gtk/gtkmain.c:1329
 #23 _mate_panel_applet_factory_main_internal at /usr/src/debug/mate-panel-1.26.3-1.fc38.x86_64/libmate-panel-applet/mate-panel-applet.c:2459
 #24 mate_panel_applet_factory_main at /usr/src/debug/mate-panel-1.26.3-1.fc38.x86_64/libmate-panel-applet/mate-panel-applet.c:2487

Full stacktrace: https://bugzilla.redhat.com/attachment.cgi?id=1980725

Steps to reproduce the behaviour

User info: I have the volume control in a panel at the top of the screen. I launched a game that changed my screen resolution. I'm guessing the change of resolution triggered a re-layout of the panel. I can't reproduce this issue.

MATE general version

1.26.x

Package version

mate-media-1.26.1-1.fc38

Linux Distribution

Fedora 38

Link to bugreport of your Distribution (requirement)

https://bugzilla.redhat.com/show_bug.cgi?id=2227548

@mate-desktop/core-team

lukefromdc commented 1 year ago

I've never once worked with the frame clock stuff, but going through that backtrace it looks like we might be sending garbage to a GtkWindow used for a channel bar, a tooltip, or some other widget. With three different things crashing, my guess is the same bad data causes all three, and it just depends on what gets the garbage first.

Wondering if a sound device is being removed, the RAM associated with it freed, and then libmate-mixer is reading that RAM after something else has written to it?

lukefromdc commented 1 year ago

See https://github.com/mate-desktop/libmatemixer/issues/39

raveit65 commented 1 year ago

This issue isn't caused by unplug a usb device like in your links. Description is complete different.

lukefromdc commented 1 year ago

If so, we have even more problems. Who on the team has the most experience with the audio device handling code? Something has to be corrupting data for all this crap to happen.

Also note that since I cannot duplicate the crash I have no way to test a proposed fix other than to ensure it doesn't break anything else

lukefromdc commented 1 year ago

These are the build options I use for libmatemixer, last one is so Checkinstall doesn't pick up the compiled schemas file, leaving it for the Postinst script to handle.Last two are ignored as they are boilerplate from other packages:

./autogen.sh --prefix=/usr libdir=/usr/lib/x86_64-linux-gnu --sysconfdir=/etc --enable-shared=yes --enable-static=no --disable-maintainer-mode --disable-schemas-compile

lukefromdc commented 1 year ago

I get this configuration summary:

Configure summary:

    libmatemixer 1.27.0
    ===================

    Prefix ........................: /usr
    Source code location ..........: .
    Compiler ......................: gcc
    Compiler flags ................: -g -O2
    Warning flags .................: -Wall -Wmissing-prototypes

    Build Null module .............: yes
    Build PulseAudio module .......: yes
    Build ALSA module .............: yes (udev: yes)
    Build OSS module ..............: no
raveit65 commented 1 year ago

Same like what i use for 10 years for fedora https://src.fedoraproject.org/rpms/libmatemixer/blob/rawhide/f/libmatemixer.spec#_67