jessie gnome-applets battstat-applet 3.8.1 problems (memory leak ?)

Dave Denholm debian at divenal.plus.com
Mon Jan 23 19:46:09 UTC 2017


Hi,
   apologies for what is probably a poor bug report.

I recently upgraded an old eeepc from wheezy to jessie. The battery
status vanished from the desktop, and it took me longer than it ought
to have to discover I need alt-rightclick to add applets to a panel.
(Even though rightclick on its own doesn't seem to do anything..?)


Anyway, having finally got it working, I noticed today that every couple of
minutes or so, it went to 100% cpu for, say, 15 seconds.  strace only
showed calls to gettimeofday() during these loops. (At other times it
was the usual sort of network and file calls you see for an X app, with
polls timing out, and things.) I downloaded the dbg versions and attaching
gdb, but any time it was busy looping, the backtrace only ever showed
library stuff, never the application code. (Examples below.)

I then noticed it was consuming huge amount of memory (300Mb
resident ?), so I decided to disable it and look for an alternative.
Note that I generally suspend/resume this machine overnight, so the
uptime had probably been several days by this stage.

Having restarted it, I'm starting to think it might be a memory /
resource leak. The backtraces could be indicating that the gnome
library is spending increasing amounts of time managing a growing list
of some sort of resource. After running for about an hour, it's the
second largest consumer of memory after skype. RSIZE has grown from
about 21M to 35M.

Please let me know if there's anything I can do to help investigate.
Unfortunately, I'm not at all familiar with any of the gnome or gtk
code.

Oh, almost forgot - this is battstat app vsn 3.8.1, using the upower
backend (according to the 'about' box).

Following are random backtraces while gdb was attached while the
process was consuming 100% cpu. Sorry I don't have debug versions of
libglib.

(gdb) where
#0  0xb6c69dbb in g_bit_unlock () from /lib/i386-linux-gnu/libglib-2.0.so.0
#1  0xb6cd1e47 in g_variant_n_children () from /lib/i386-linux-gnu/libglib-2.0.so.0
#2  0xb6cd1e90 in g_variant_get_child_value () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb6ccba8b in g_variant_get_variant () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb6ccfdfa in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb6ccfc36 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#6  0xb6cd0f98 in g_variant_iter_next () from /lib/i386-linux-gnu/libglib-2.0.so.0
#7  0xb67b0f9b in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#8  0xb67a01bf in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#9  0xb6c91510 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0xb6c94cc3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0

#11 0xb6c950d9 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#12 0xb6c95489 in g_main_loop_run () from /lib/i386-linux-gnu/libglib-2.0.so.0
#13 0xb71009de in gtk_main () from /usr/lib/i386-linux-gnu/libgtk-3.so.0
#14 0xb76fe0f0 in ?? () from /usr/lib/libpanel-applet-4.so.0
#15 0x0804b5ae in main (argc=<error reading variable: can't compute CFA for this frame>, 
    argv=<error reading variable: can't compute CFA for this frame>) at battstat_applet.c:1647

(gdb) where
#0  0xb6cd1e50 in g_variant_n_children () from /lib/i386-linux-gnu/libglib-2.0.so.0
#1  0xb6cd1e90 in g_variant_get_child_value () from /lib/i386-linux-gnu/libglib-2.0.so.0
#2  0xb6ccfc21 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb6cd0f98 in g_variant_iter_next () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb67b0f9b in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#5  0xb67a01bf in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#6  0xb6c91510 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#7  0xb6c94cc3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
...

(gdb) where
#0  __strcmp_ssse3 () at ../sysdeps/i386/i686/multiarch/strcmp-ssse3.S:2249
#1  0xb6d8de5e in ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#2  0xb6c83671 in g_hash_table_lookup () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb6d8f688 in g_param_spec_pool_lookup () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#4  0xb6d8a013 in g_object_notify () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#5  0xb6de72ff in ?? () from /usr/lib/i386-linux-gnu/libupower-glib.so.3
#6  0xb62d3a82 in ffi_call_SYSV () from /usr/lib/i386-linux-gnu/libffi.so.6
#7  0xb62d3556 in ffi_call () from /usr/lib/i386-linux-gnu/libffi.so.6
#8  0xb6d8407f in g_cclosure_marshal_generic () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#9  0xb6d82394 in ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#10 0xb6d8384b in g_closure_invoke () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#11 0xb6d95761 in ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#12 0xb6d9dfea in g_signal_emit_valist () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#13 0xb6d9e1e5 in g_signal_emit () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#14 0xb67b1008 in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#15 0xb67a01bf in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#16 0xb6c91510 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#17 0xb6c94cc3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
...

(gdb) where
#0  __GI___pthread_getspecific (key=0) at pthread_getspecific.c:57
#1  0xb6cdb136 in g_private_get () from /lib/i386-linux-gnu/libglib-2.0.so.0
#2  0xb6cb222f in g_slice_free1 () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb6cd1975 in g_variant_unref () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb6cd0fa0 in g_variant_iter_next () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb67b0f9b in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#6  0xb67a01bf in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#7  0xb6c91510 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#8  0xb6c94cc3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
...

(gdb) where
#0  0xb6c63f33 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#1  0xb6cdb119 in g_private_get () from /lib/i386-linux-gnu/libglib-2.0.so.0
#2  0xb6cb222f in g_slice_free1 () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb6cd1975 in g_variant_unref () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb6ccfc3e in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb6cd0f98 in g_variant_iter_next () from /lib/i386-linux-gnu/libglib-2.0.so.0
#6  0xb67b0f9b in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#7  0xb67a01bf in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#8  0xb6c91510 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#9  0xb6c94cc3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0

(gdb) where
#0  0xb6b870be in __memcpy_ssse3 () at ../sysdeps/i386/i686/multiarch/memcpy-ssse3.S:136
#1  0xb6cd66ea in g_variant_serialised_get_child () from /lib/i386-linux-gnu/libglib-2.0.so.0
#2  0xb6cd1ee1 in g_variant_get_child_value () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb6ccdf8f in g_variant_iter_next_value () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb6cd0f5d in g_variant_iter_next () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb6de724c in ?? () from /usr/lib/i386-linux-gnu/libupower-glib.so.3
#6  0xb62d3a82 in ffi_call_SYSV () from /usr/lib/i386-linux-gnu/libffi.so.6
#7  0xb62d3556 in ffi_call () from /usr/lib/i386-linux-gnu/libffi.so.6
#8  0xb6d8407f in g_cclosure_marshal_generic () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#9  0xb6d82394 in ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#10 0xb6d8384b in g_closure_invoke () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#11 0xb6d95761 in ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#12 0xb6d9dfea in g_signal_emit_valist () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#13 0xb6d9e1e5 in g_signal_emit () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#14 0xb67b1008 in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#15 0xb67a01bf in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#16 0xb6c91510 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#17 0xb6c94cc3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
...

(gdb) where
#0  0xb6cd8ff0 in g_variant_type_get_string_length () from /lib/i386-linux-gnu/libglib-2.0.so.0
#1  0xb6cd9727 in g_variant_type_is_subtype_of () from /lib/i386-linux-gnu/libglib-2.0.so.0
#2  0xb6ccb3a4 in g_variant_is_of_type () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb6ccba51 in g_variant_get_variant () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb6ccfdfa in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb6ccfc36 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#6  0xb6cd0f98 in g_variant_iter_next () from /lib/i386-linux-gnu/libglib-2.0.so.0
#7  0xb67b0f9b in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#8  0xb67a01bf in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#9  0xb6c91510 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0xb6c94cc3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
...


Dave



More information about the pkg-gnome-maintainers mailing list