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

mate-volume-control-applet crashes after wakeup from hibernate #89

Open
muesli4 opened this issue Apr 30, 2017 · 17 comments
Open

mate-volume-control-applet crashes after wakeup from hibernate #89

muesli4 opened this issue Apr 30, 2017 · 17 comments

Comments

@muesli4
Copy link
Contributor

muesli4 commented Apr 30, 2017

Whenever my computer is woken up from hibernate and I hover my mouse over the status icon of mate-volume-control-applet the program crashes. I never encountered the issue with --debug enabled (at least as far as I remember). This time I had it running from a terminal and caught the following output:

(mate-volume-control-applet:19648): Gtk-WARNING **: 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-applet:19648): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(mate-volume-control-applet:19648): Gdk-CRITICAL **: gdk_window_get_scale_factor: assertion 'GDK_IS_WINDOW (window)' failed
**
Gtk:ERROR:gtkwidget.c:5813:gtk_widget_get_frame_clock: assertion failed: (window != NULL)
Abgebrochen (Speicherabzug geschrieben)

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@monsta
Copy link
Contributor

monsta commented May 7, 2017

Looks the same as https://bugs.debian.org/856072...
Which GTK+3 version do you have?

@muesli4
Copy link
Contributor Author

muesli4 commented May 8, 2017

Yes it does. My GTK+ version is 3.22.12.

@monsta
Copy link
Contributor

monsta commented May 8, 2017

Ok, can you try obtaining a backtrace via gdb?

@muesli4
Copy link
Contributor Author

muesli4 commented May 8, 2017

This is from a crash I had when my pulseaudio server was busy and I had no connection to it. My local pulseaudio daemon lost the connection. Then the applet crashed. (In short: I'm not entirely sure whether it's the same bug.)

I've never done this before, so let me know if I can do anything else. I added the complete output (of coredumpctl gdb): output.txt.

Update: I checked the coredump of this mornings crash and it seems to be the same bug.

@monsta
Copy link
Contributor

monsta commented May 9, 2017

Interesting, I didn't know about coredumpctl, will check it out later. I usually run the app via gdb manually and then get the backtrace with bt full command.

The backtrace shows that the bug is probably inside GTK+3 though... the library names hint about that.
Can you install the debug packages? It helps a lot, because the backtrace will contain all the function names, their argument values, the line numbers in the code, etc.
Which distro do you use? If it's Debian/Ubuntu or their derivatives, I can tell you the package names you need to install.

@muesli4
Copy link
Contributor Author

muesli4 commented May 24, 2017

I will probably have to rebuild GTK+3 from source as Archlinux does not include debug information by default (afaik it even strips existing information). It could probably take some time. :(

@monsta monsta changed the title mate-volume-control-applet crashes after wakup from hibernate mate-volume-control-applet crashes after wakeup from hibernate May 25, 2017
@monsta
Copy link
Contributor

monsta commented May 25, 2017

Yes, I heard about it several times. Other distros also strip the debug info, but they move it into separate packages which you can install if needed...

@muesli4
Copy link
Contributor Author

muesli4 commented Jul 1, 2017

I compiled gtk3 with debug symbols now (I would add it as a file, but github won't let me):

           PID: 26611 (mate-volume-con)
           UID: 1000 (moritz)
           GID: 1000 (moritz)
        Signal: 6 (ABRT)
     Timestamp: Sat 2017-07-01 23:12:47 CEST (19s ago)
  Command Line: mate-volume-control-applet
    Executable: /usr/bin/mate-volume-control-applet
 Control Group: /user.slice/user-1000.slice/session-c1.scope
          Unit: session-c1.scope
         Slice: user-1000.slice
       Session: c1
     Owner UID: 1000 (moritz)
       Boot ID: a493c709ab3f4ef8a9b8f6f061cb1d56
    Machine ID: 6ba34f4e8c114cc58f9e847a8d1cf795
      Hostname: phi
       Storage: /var/lib/systemd/coredump/core.mate-volume-con.1000.a493c709ab3f4ef8a9b8f6f061cb1d56.26611.1498943567000000000000.lz4
       Message: Process 26611 (mate-volume-con) of user 1000 dumped core.
                
                Stack trace of thread 26611:
                #0  0x00007f29cef72670 raise (libc.so.6)
                #1  0x00007f29cef73d00 abort (libc.so.6)
                #2  0x00007f29cf572c9d g_assertion_message (libglib-2.0.so.0)
                #3  0x00007f29cf572d2a g_assertion_message_expr (libglib-2.0.so.0)
                #4  0x00007f29d06b4a76 gtk_widget_get_frame_clock (libgtk-3.so.0)
                #5  0x00007f29d06c35ea gtk_widget_realize (libgtk-3.so.0)
                #6  0x00007f29d06c3850 gtk_widget_map (libgtk-3.so.0)
                #7  0x00007f29d043662c gtk_box_forall (libgtk-3.so.0)
                #8  0x00007f29d04861ff gtk_container_map (libgtk-3.so.0)
                #9  0x00007f29cf824ff0 n/a (libgobject-2.0.so.0)
                #10 0x00007f29cf83ffbf g_signal_emit_valist (libgobject-2.0.so.0)
                #11 0x00007f29cf8406ef g_signal_emit (libgobject-2.0.so.0)
                #12 0x00007f29d06c3802 gtk_widget_map (libgtk-3.so.0)
                #13 0x00007f29d06da706 gtk_window_map (libgtk-3.so.0)
                #14 0x00007f29cf8250e6 n/a (libgobject-2.0.so.0)
                #15 0x00007f29cf83ffbf g_signal_emit_valist (libgobject-2.0.so.0)
                #16 0x00007f29cf8406ef g_signal_emit (libgobject-2.0.so.0)
                #17 0x00007f29d06c3802 gtk_widget_map (libgtk-3.so.0)
                #18 0x00007f29d06d1c64 gtk_window_show (libgtk-3.so.0)
                #19 0x00007f29cf824ead g_closure_invoke (libgobject-2.0.so.0)
                #20 0x00007f29cf8375be n/a (libgobject-2.0.so.0)
                #21 0x00007f29cf83fcd5 g_signal_emit_valist (libgobject-2.0.so.0)
                #22 0x00007f29cf8406ef g_signal_emit (libgobject-2.0.so.0)
                #23 0x00007f29d06bcee6 gtk_widget_show (libgtk-3.so.0)
                #24 0x00007f29d066ffce gtk_tooltip_position (libgtk-3.so.0)
                #25 0x00007f29d06709b7 tooltip_popup_timeout (libgtk-3.so.0)
                #26 0x00007f29d0043450 gdk_threads_dispatch (libgdk-3.so.0)
                #27 0x00007f29cf54d333 n/a (libglib-2.0.so.0)
                #28 0x00007f29cf54c8b5 g_main_context_dispatch (libglib-2.0.so.0)
                #29 0x00007f29cf54cc78 n/a (libglib-2.0.so.0)
                #30 0x00007f29cf54cf92 g_main_loop_run (libglib-2.0.so.0)
                #31 0x00007f29d05577fd gtk_main (libgtk-3.so.0)
                #32 0x00000000004058c1 main (mate-volume-control-applet)
                #33 0x00007f29cef5f43a __libc_start_main (libc.so.6)
                #34 0x00000000004059ba _start (mate-volume-control-applet)
                
                Stack trace of thread 26613:
                #0  0x00007f29cf02224d poll (libc.so.6)
                #1  0x00007f29cf54cbf9 n/a (libglib-2.0.so.0)
                #2  0x00007f29cf54cf92 g_main_loop_run (libglib-2.0.so.0)
                #3  0x00007f29cfd4e426 n/a (libgio-2.0.so.0)
                #4  0x00007f29cf573ac5 n/a (libglib-2.0.so.0)
                #5  0x00007f29cf2eb297 start_thread (libpthread.so.0)
                #6  0x00007f29cf02c1ef __clone (libc.so.6)
                
                Stack trace of thread 26612:
                #0  0x00007f29cf02224d poll (libc.so.6)
                #1  0x00007f29cf54cbf9 n/a (libglib-2.0.so.0)
                #2  0x00007f29cf54cd0c g_main_context_iteration (libglib-2.0.so.0)
                #3  0x00007f29cf54cd51 n/a (libglib-2.0.so.0)
                #4  0x00007f29cf573ac5 n/a (libglib-2.0.so.0)
                #5  0x00007f29cf2eb297 start_thread (libpthread.so.0)
                #6  0x00007f29cf02c1ef __clone (libc.so.6)

GNU gdb (GDB) 8.0
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/mate-volume-control-applet...(no debugging symbols found)...done.

warning: core file may not match specified executable file.
[New LWP 26611]
[New LWP 26613]
[New LWP 26612]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `mate-volume-control-applet'.
Program terminated with signal SIGABRT, Aborted.
#0  0x00007f29cef72670 in raise () from /usr/lib/libc.so.6
[Current thread is 1 (Thread 0x7f29d146e980 (LWP 26611))]
(gdb) bt full
#0  0x00007f29cef72670 in raise () at /usr/lib/libc.so.6
#1  0x00007f29cef73d00 in abort () at /usr/lib/libc.so.6
#2  0x00007f29cf572c9d in g_assertion_message () at /usr/lib/libglib-2.0.so.0
#3  0x00007f29cf572d2a in g_assertion_message_expr () at /usr/lib/libglib-2.0.so.0
#4  0x00007f29d06b4a76 in gtk_widget_get_frame_clock (widget=0x20d3bf0) at gtkwidget.c:5813
#5  0x00007f29d06c35ea in gtk_widget_realize (widget=widget@entry=0x20d3bf0) at gtkwidget.c:5483
        priv = 0x20d3b00
        region = <optimized out>
        __func__ = "gtk_widget_realize"
#6  0x00007f29d06c3850 in gtk_widget_map (widget=0x20d3bf0) at gtkwidget.c:4991
        priv = 0x20d3b00
        __func__ = "gtk_widget_map"
#7  0x00007f29d043662c in gtk_box_forall (container=<optimized out>, include_internals=<optimized out>, callback=0x7f29d0480f80 <gtk_container_map_child>, callback_data=0x0) at gtkbox.c:2671
        box = <optimized out>
        priv = 0x2053b80
        child = <optimized out>
        children = 0x0
#8  0x00007f29d04861ff in gtk_container_map (widget=0x2053cb0) at gtkcontainer.c:3681
#9  0x00007f29cf824ff0 in  () at /usr/lib/libgobject-2.0.so.0
#10 0x00007f29cf83ffbf in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#11 0x00007f29cf8406ef in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#12 0x00007f29d06c3802 in gtk_widget_map (widget=0x2053cb0) at gtkwidget.c:4993
        priv = 0x2053bc0
        __func__ = "gtk_widget_map"
#13 0x00007f29d06da706 in gtk_window_map (widget=0x20e22d0) at gtkwindow.c:6252
        child = 0x2053cb0
        window = 0x20e22d0
        priv = <optimized out>
---Type <return> to continue, or q <return> to quit---
        link = <optimized out>
        display = <optimized out>
#14 0x00007f29cf8250e6 in  () at /usr/lib/libgobject-2.0.so.0
#15 0x00007f29cf83ffbf in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#16 0x00007f29cf8406ef in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#17 0x00007f29d06c3802 in gtk_widget_map (widget=0x20e22d0) at gtkwidget.c:4993
        priv = 0x20e21e0
        __func__ = "gtk_widget_map"
#18 0x00007f29d06d1c64 in gtk_window_show (widget=0x20e22d0) at gtkwindow.c:6157
        window = 0x20e22d0
        priv = <optimized out>
        container = 0x20e22d0
        is_plug = <optimized out>
#19 0x00007f29cf824ead in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#20 0x00007f29cf8375be in  () at /usr/lib/libgobject-2.0.so.0
#21 0x00007f29cf83fcd5 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#22 0x00007f29cf8406ef in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#23 0x00007f29d06bcee6 in gtk_widget_show (widget=0x20e22d0) at gtkwidget.c:4794
        widget = 0x20e22d0
#24 0x00007f29d066ffce in gtk_tooltip_position (new_tooltip_widget=0x1d00780, display=0x1cad0e0, tooltip=0x2092e70) at gtktooltip.c:922
        width = <optimized out>
        height = <optimized out>
        x = <optimized out>
        monitor = <optimized out>
        workarea = {x = 1728, y = 0, width = 31077120, height = 0}
        cursor_size = <optimized out>
        border = {left = 13400, right = 4111, top = 32765, bottom = 0}
        y = <optimized out>
---Type <return> to continue, or q <return> to quit---
        x = 18
        y = 14
        screen = <optimized out>
        window = <optimized out>
        tooltip_widget = 0x1d00780
        tooltip = 0x2092e70
        return_value = <optimized out>
#25 0x00007f29d066ffce in gtk_tooltip_show_tooltip (display=display@entry=0x1cad0e0)
    at gtktooltip.c:1157
        x = 18
        y = 14
        screen = <optimized out>
        window = <optimized out>
        tooltip_widget = 0x1d00780
        tooltip = 0x2092e70
        return_value = <optimized out>
#26 0x00007f29d06709b7 in tooltip_popup_timeout (data=0x1cad0e0) at gtktooltip.c:1235
        display = 0x1cad0e0
        tooltip = 0x2092e70
#27 0x00007f29d0043450 in gdk_threads_dispatch (data=0x1e214c0) at gdk.c:743
        dispatch = 0x1e214c0
        ret = 0
#28 0x00007f29cf54d333 in  () at /usr/lib/libglib-2.0.so.0
#29 0x00007f29cf54c8b5 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#30 0x00007f29cf54cc78 in  () at /usr/lib/libglib-2.0.so.0
#31 0x00007f29cf54cf92 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#32 0x00007f29d05577fd in gtk_main () at gtkmain.c:1312
        loop = 0x2067f00
#33 0x00000000004058c1 in main ()

@monsta
Copy link
Contributor

monsta commented Jul 6, 2017

@raveit65: looks like https://bugzilla.redhat.com/1418334 is about this one, the backtrace is the same...

@raveit65
Copy link
Member

raveit65 commented Jul 6, 2017

Yes, nice bugs you will always find at rhbz :-)

@raveit65
Copy link
Member

raveit65 commented Jul 6, 2017

But as always, i was never affected by this issue. I use only suspend to ram sometimes.

@monsta
Copy link
Contributor

monsta commented Jul 6, 2017

Not that I actually searched rhbz... but google led me there when I looked for similar backtraces. 🙂
Seems like a rare bug, only 2-3 reports out there. It really looks like a bug in GTK+, but we'll probably have to find a workaround, and I have no idea about it.

@muesli4
Copy link
Contributor Author

muesli4 commented Jul 7, 2017

I think it is somehow related to pulseaudio and their native TCP protocoll, which allows to connect multiple instances over LAN. Several times the applet crashed when disconnecting and also after suspend to ram. This seems to be the trigger, but not necessarily the cause (which explains why it occurs seldom).

My guess is that the bug is connected to GtkStatusIcon, which is deprecated (making a fix unlikely).

@monsta
Copy link
Contributor

monsta commented Jul 7, 2017

It might be, but other tray icons of GTK+ apps, which probably also use GtkStatusIcon, aren't affected.

@raveit65
Copy link
Member

raveit65 commented Sep 6, 2019

Looks like this report is related too https://bugzilla.redhat.com/show_bug.cgi?id=1694251

@raveit65
Copy link
Member

I opened a newer report with a proper and newer stacktrace.
#201
@muesli4
Can we close this one in favor for the other report?

@lukefromdc
Copy link
Member

Is this one confirmed to be fixed by the last change to libmatemixer or not?

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

4 participants