You are not logged in.
Pages: 1
Hi there, I recently updated to Devuan Daedalus and I realized today, that the volume control applet was missing from panel in my MATE desktop environment. Now then, mate-media, which packages the applet, is not available in Debian Bookworm for some crashing reason[0]. Luckily, I found compatible packages from Ubuntu Jammy Jellyfish[1].
$ ls -1 Downloads/deb/ubuntu/
mate-media_1.26.0-1_amd64.deb
mate-media-common_1.26.0-1_all.deb
mate-media-dbgsym_1.26.0-1_amd64.ddeb
And with some shell-foo I repackaged the Ubuntu deb files, removing the zstd compression.
$ cat Downloads/deb/transform_zst_to_xz.sh
#!/bin/bash
[ -f "${1}" ] || exit 1
case "${1}"
in
*.deb) ;;
*.ddeb) ;;
*) exit 2 ;;
esac
run()
{
local filepath="$(realpath "${1}")"
local filename="$(basename "${1}")"
local pkgname="${filename%\.*}"
mkdir "${pkgname}"
pushd "${pkgname}" || exit 3
ar x "${filepath}"
mkdir DEBIAN
tar -C DEBIAN --zstd -xf control.tar.zst
tar --zstd -xf data.tar.zst
rm -f control.tar.zst data.tar.zst debian-binary
popd >/dev/null
dpkg-deb --build "${pkgname}"
[ ${?} -eq 0 ] && rm -rf "${pkgname}"
}
run "${1}"
exit 0
Also get libglib and libgtk3 debug symbols from debug apt source[2]. See here:
$ cat /etc/apt/sources.list.d/debug.list
deb http://deb.debian.org/debian-debug/ bookworm-debug main
$ apt-get install libgtk-3-0-dbgsym libglib2.0-0-dbgsym
Finally, I can do
$ gdb /usr/bin/mate-volume-control-status-icon
and wait for the crash and get a more complete backtrace with infos from glib and gtk.
P.S.: There are several reports upstream and downstream, but all have missing symbols from glib and gtk. I had the very same backtrace, once, without information from glib and gtk data structures. Now, I am waiting for the next crash, which did not happen again.
[0] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=971783
[1] https://launchpad.net/ubuntu/+source/mate-media
[2] https://wiki.debian.org/AutomaticDebugPackages
Last edited by geki (2022-12-28 21:20:37)
Offline
Finally got a backtrace. I had played a bit with the bluetooth speaker, had cycled it on and off several times. Switched off in the end. A while later hovered the icon in the notification area on the panel.
If you got any better understanding on what frame and variables to inspect, let me know. I have it open for a while longer...
[Thread 0x7fffeffff6c0 (LWP 5100) exited]
(mate-volume-control-status-icon:2404): Gtk-WARNING **: 11:44:51.182: Calling gtk_widget_realize() on a widget that isn't inside a toplevel window is not going to work very well. Widgets must be inside a toplevel container before realizing them.
(mate-volume-control-status-icon:2404): GLib-GObject-CRITICAL **: 11:44:51.182: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
(mate-volume-control-status-icon:2404): Gdk-CRITICAL **: 11:44:51.182: gdk_window_get_scale_factor: assertion 'GDK_IS_WINDOW (window)' failed
**
Gtk:ERROR:../../../gtk/gtkwidget.c:5875:gtk_widget_get_frame_clock: assertion failed: (window != NULL)
Bail out! Gtk:ERROR:../../../gtk/gtkwidget.c:5875:gtk_widget_get_frame_clock: assertion failed: (window != NULL)Thread 1 "mate-volume-con" received signal SIGABRT, Aborted.
0x00007ffff702accc in ?? () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt full
#0 0x00007ffff702accc in () at /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff6fdbef2 in raise () at /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007ffff6fc6472 in abort () at /lib/x86_64-linux-gnu/libc.so.6
#3 0x00007ffff719eec8 in g_assertion_message
(domain=<optimized out>, file=0x7ffff7ab9071 "../../../gtk/gtkwidget.c", line=<optimized out>, func=<optimized out>, message=<optimized out>) at ../../../glib/gtestutils.c:3256
lstr = "5875\000\177\000\000\000\202![\360ו\222\200H\333UUU\000\000\305y\253\367\377\177\000"
s = 0x555555d5d200 "m\240?"
#4 0x00007ffff71fee2a in g_assertion_message_expr
(domain=domain@entry=0x7ffff7a3f133 "Gtk", file=file@entry=0x7ffff7ab9071 "../../../gtk/gtkwidget.c", line=line@entry=5875, func=func@entry=0x7ffff7abd4f0 <__func__.214> "gtk_widget_get_frame_clock", expr=expr@entry=0x7ffff7ab79c5 "window != NULL") at ../../../glib/gtestutils.c:3282
s = 0x55555580d600 "assertion failed: (window != NULL)"
#5 0x00007ffff796a556 in gtk_widget_get_frame_clock (widget=widget@entry=0x555555b8d220 [GtkLabel])
at ../../../gtk/gtkwidget.c:5875
window = <optimized out>
__func__ = "gtk_widget_get_frame_clock"
#6 0x00007ffff797926f in gtk_widget_realize (widget=widget@entry=0x555555b8d220 [GtkLabel])
at ../../../gtk/gtkwidget.c:5545
priv = 0x555555b8d130
region = <optimized out>
__func__ = "gtk_widget_realize"
#7 0x00007ffff7979468 in gtk_widget_map (widget=0x555555b8d220 [GtkLabel]) at ../../../gtk/gtkwidget.c:5049
priv = 0x555555b8d130
__func__ = "gtk_widget_map"
#8 0x00007ffff76cd7c0 in gtk_box_forall
(container=<optimized out>, include_internals=<optimized out>, callback=0x7ffff771b240 <gtk_container_map_child>, callback_data=0x0) at ../../../gtk/gtkbox.c:2678
box = <optimized out>
priv = 0x555555ba8060
child = <optimized out>
children = 0x0
#9 0x00007ffff771f69f in gtk_container_map (widget=0x555555ba8190 [GtkBox]) at ../../../gtk/gtkcontainer.c:3697
#10 0x00007ffff72ce4e0 in _g_closure_invoke_va
(closure=closure@entry=0x5555555d7bb0, return_value=return_value@entry=0x0, instance=instance@entry=0x555555ba8190, args=args@entry=0x7fffffffd480, n_params=0, param_types=0x0) at ../../../gobject/gclosure.c:895
marshal = 0x7ffff72ccb60 <g_type_class_meta_marshalv>
marshal_data = 0xb8
in_marshal = 1
real_closure = 0x5555555d7b90
__func__ = "_g_closure_invoke_va"
#11 0x00007ffff72e7bbf in g_signal_emit_valist
(instance=0x555555ba8190, signal_id=38, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd480)
at ../../../gobject/gsignal.c:3456
return_accu = <optimized out>accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
accumulator = 0x0emission = {next = 0x7fffffffd6a0, instance = 0x555555ba8190, ihint = {signal_id = 38, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x5555556d48b0 [GtkBox/GtkContainer/GtkWidget/GInitiallyUnowned]}
--Type <RET> for more, q to quit, c to continue without paging--
instance_type = <optimized out>emission_return = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
rtype = 0x4 [void]
static_scope = 0
fastpath_handler = <optimized out>
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = <optimized out>
instance_and_params = <optimized out>
signal_return_type = <optimized out>
param_values = <optimized out>
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#12 0x00007ffff72e7dbf in g_signal_emit
(instance=instance@entry=0x555555ba8190, signal_id=<optimized out>, detail=detail@entry=0)
at ../../../gobject/gsignal.c:3606var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffd560, reg_save_area = 0x7fffffffd4a0}}
#13 0x00007ffff7979412 in gtk_widget_map (widget=widget@entry=0x555555ba8190 [GtkBox])
at ../../../gtk/gtkwidget.c:5051
priv = 0x555555ba80a0
__func__ = "gtk_widget_map"
#14 0x00007ffff7992480 in gtk_window_map (widget=0x5555557c4540 [GtkTooltipWindow]) at ../../../gtk/gtkwindow.c:6316
child = 0x555555ba8190 [GtkBox]
window = 0x5555557c4540 [GtkTooltipWindow]
priv = 0x5555557c42e0
gdk_window = <optimized out>
link = <optimized out>
display = <optimized out>
#15 0x00007ffff72ce5a9 in _g_closure_invoke_va
(closure=closure@entry=0x5555555d7bb0, return_value=return_value@entry=0x0, instance=instance@entry=0x5555557c4540, args=args@entry=0x7fffffffd7a0, n_params=0, param_types=0x0) at ../../../gobject/gclosure.c:895
marshal = 0x7ffff72ccb60 <g_type_class_meta_marshalv>
marshal_data = 0xb8
in_marshal = 0
real_closure = 0x5555555d7b90
__func__ = "_g_closure_invoke_va"
#16 0x00007ffff72e7bbf in g_signal_emit_valist
(instance=0x5555557c4540, signal_id=38, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd7a0)
at ../../../gobject/gsignal.c:3456
return_accu = <optimized out>accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
accumulator = 0x0--Type <RET> for more, q to quit, c to continue without paging--
emission = {next = 0x7fffffffd9d0, instance = 0x5555557c4540, ihint = {signal_id = 38, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x555555bf4ee0 [GtkTooltipWindow/GtkWindow/GtkBin/GtkContainer/GtkWidget/GInitiallyUnowned]}
instance_type = <optimized out>emission_return = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
rtype = 0x4 [void]
static_scope = 0
fastpath_handler = <optimized out>
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = <optimized out>
instance_and_params = <optimized out>
signal_return_type = <optimized out>
param_values = <optimized out>
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#17 0x00007ffff72e7dbf in g_signal_emit
(instance=instance@entry=0x5555557c4540, signal_id=<optimized out>, detail=detail@entry=0)
at ../../../gobject/gsignal.c:3606var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffd880, reg_save_area = 0x7fffffffd7c0}}
#18 0x00007ffff7979412 in gtk_widget_map (widget=widget@entry=0x5555557c4540 [GtkTooltipWindow])
at ../../../gtk/gtkwidget.c:5051
priv = 0x5555557c4450
__func__ = "gtk_widget_map"
#19 0x00007ffff7987fbb in gtk_window_show (widget=0x5555557c4540 [GtkTooltipWindow]) at ../../../gtk/gtkwindow.c:6211
window = 0x5555557c4540 [GtkTooltipWindow]
priv = 0x5555557c42e0
container = 0x5555557c4540 [GtkTooltipWindow]
is_plug = <optimized out>
#23 0x00007ffff72e7dbf in <emit signal ??? on instance 0x5555557c4540 [GtkTooltipWindow]>
(instance=instance@entry=0x5555557c4540, signal_id=<optimized out>, detail=detail@entry=0)
at ../../../gobject/gsignal.c:3606var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffdcc0, reg_save_area = 0x7fffffffdc00}}
#20 0x00007ffff72ce3b0 in g_closure_invoke
(closure=closure@entry=0x5555555c1e50, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffda60, invocation_hint=invocation_hint@entry=0x7fffffffd9e0) at ../../../gobject/gclosure.c:832
marshal = 0x7ffff72ccca0 <g_type_class_meta_marshal>
marshal_data = 0xa0
in_marshal = 0
real_closure = 0x5555555c1e30
__func__ = "g_closure_invoke"
#21 0x00007ffff72e0d2d in signal_emit_unlocked_R
(node=node@entry=0x5555555c1ea0, detail=detail@entry=0, instance=instance@entry=0x5555557c4540, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffda60)
at ../../../gobject/gsignal.c:3726
--Type <RET> for more, q to quit, c to continue without paging--
accumulator = 0x0emission = {next = 0x0, instance = 0x5555557c4540, ihint = {signal_id = 36, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x555555bf4ee0 [GtkTooltipWindow/GtkWindow/GtkBin/GtkContainer/GtkWidget/GInitiallyUnowned]}
class_closure = 0x5555555c1e50
hlist = <optimized out>
handler_list = <optimized out>
return_accu = 0x0accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = 36
max_sequential_handler_number = 2484
return_value_altered = <optimized out>
#22 0x00007ffff72e7bf5 in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffdbe0) at ../../../gobject/gsignal.c:3549
instance_and_params = 0x7fffffffda60
signal_return_type = <optimized out>
param_values = 0x7fffffffda78
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#24 0x00007ffff7973186 in gtk_widget_show (widget=0x5555557c4540 [GtkTooltipWindow]) at ../../../gtk/gtkwidget.c:4852
parent = 0x0
__func__ = "gtk_widget_show"
#25 0x00007ffff7924e15 in gtk_tooltip_position
(device=<optimized out>, new_tooltip_widget=<optimized out>, display=0x555555688820 [GtkTrayIcon], tooltip=0x555555cac510 [GtkTooltip]) at ../../../gtk/gtktooltip.c:980
window = 0x555555bca030 [GdkX11Window]
screen = 0x5555555a2020 [GdkX11Screen]
anchor_rect = {x = -4, y = -4, width = 36, height = 32}
rect_anchor_dx = 0
cursor_size = 32
settings = <optimized out>
widget_window = <optimized out>
effective_toplevel = <optimized out>
toplevel = 0x555555688820 [GtkTrayIcon]
anchor_rect_padding = <optimized out>
x = 21
y = 15
screen = <optimized out>
device = <optimized out>
window = <optimized out>
tooltip_widget = 0x555555688820 [GtkTrayIcon]
tooltip = 0x555555cac510 [GtkTooltip]
return_value = <optimized out>
#26 gtk_tooltip_show_tooltip (display=display@entry=0x55555559c0e0 [GdkX11Display]) at ../../../gtk/gtktooltip.c:1050
x = 21
y = 15
screen = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
device = <optimized out>
window = <optimized out>
tooltip_widget = 0x555555688820 [GtkTrayIcon]
tooltip = 0x555555cac510 [GtkTooltip]
return_value = <optimized out>
#27 0x00007ffff7925011 in tooltip_popup_timeout (data=<optimized out>) at ../../../gtk/gtktooltip.c:1128
display = 0x55555559c0e0 [GdkX11Display]
tooltip = 0x555555cac510 [GtkTooltip]
#28 0x00007ffff7526b47 in gdk_threads_dispatch (data=0x5555558f20e0) at ../../../gdk/gdk.c:769
dispatch = 0x5555558f20e0
ret = 0
#29 0x00007ffff71d619a in g_timeout_dispatch
(source=0x5555558c1f00, callback=<optimized out>, user_data=<optimized out>) at ../../../glib/gmain.c:5007
timeout_source = 0x5555558c1f00
again = <optimized out>
#30 0x00007ffff71d567f in g_main_dispatch (context=0x5555555c3b60) at ../../../glib/gmain.c:3444
dispatch = 0x7ffff71d6170 <g_timeout_dispatch>
prev_source = 0x0
begin_time_nsec = 0
was_in_call = 0
user_data = 0x5555558f20e0
callback = 0x7ffff7526b20 <gdk_threads_dispatch>
cb_funcs = <optimized out>
cb_data = 0x555555d0afd0
need_destroy = <optimized out>
source = 0x5555558c1f00
current = 0x5555556248c0
i = 0
__func__ = "g_main_dispatch"
#31 g_main_context_dispatch (context=0x5555555c3b60) at ../../../glib/gmain.c:4162
#32 0x00007ffff71d5a38 in g_main_context_iterate
(context=0x5555555c3b60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
at ../../../glib/gmain.c:4238
max_priority = 2147483647
timeout = 500
some_ready = 1
nfds = <optimized out>
allocated_nfds = 5
fds = 0x55555561a1d0
#33 0x00007ffff71d5cef in g_main_loop_run (loop=0x5555556ef1f0) at ../../../glib/gmain.c:4438
__func__ = "g_main_loop_run"
#34 0x00007ffff7807bf5 in gtk_main () at ../../../gtk/gtkmain.c:1329
loop = 0x5555556ef1f0
#35 0x000055555555ac67 in main (argc=<optimized out>, argv=<optimized out>)
at ./mate-volume-control/status-icon-main.c:95
error = 0x0
status_icon = 0x555555819c30 [GvcStatusIcon]
app = 0x5555555cb220 [GApplication]entries = {{long_name = 0x55555556032a "version", short_name = 118 'v', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x555555564140 <show_version>, description = 0x555555560460 "Version of this application", arg_description = 0x0}, {long_name = 0x555555560483 "debug", short_name = 100 'd', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x55555556413c <debug>, description = 0x55555556047c "Enable debug", arg_description = 0x0}, {long_name = 0x0, short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x0, description = 0x0, arg_description = 0x0}}
(gdb)
Offline
Now then, mate-media, which packages the applet, is not available in Debian Bookworm for some crashing reason[0]. Luckily, I found compatible packages from Ubuntu Jammy Jellyfish
Why didn't you try the version from unstable?
There are several reports upstream and downstream, but all have missing symbols from glib and gtk
This one seems to have those: https://github.com/mate-desktop/mate-me … -819028411
I think this would be better pursued in the bug report(s) rather than here. Sorry but I can't help otherwise.
EDIT: did you see the suggested workaround? The volumeicon-alsa package should also work in MATE if you can't get the native volume systray thingie working.
Last edited by Head_on_a_Stick (2022-12-29 11:43:45)
Brianna Ghey — Rest In Power
Offline
Hi Head_on_a_Stick and thanks for your input! I did not know about the debug apt sources at that time. I guess there would have been a dbgsym package for mate-media, too. Well, now I can get Ubuntu packages installed on Debian based distros, hah.
The backtrace frames are empty like all the others, example snipped:
#22 0x00007ffff792c510 in () at /usr/lib/libgtk-3.so.0
#23 0x00007ffff792c709 in () at /usr/lib/libgtk-3.so.0
Mine have far more infos. I will check this evening, if I can get something out of the backtrace, heh. And yes, I reported my backtrace to the debian bug report.
Offline
Pages: 1