After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 348170 - Totem eats memory like there's no tomorrow
Totem eats memory like there's no tomorrow
Status: RESOLVED DUPLICATE of bug 348222
Product: totem
Classification: Core
Component: xine-lib backend
1.5.x
Other Linux
: Normal normal
: ---
Assigned To: Maintainer alias for xine-lib component of Totem
Maintainer alias for xine-lib component of Totem
Depends on:
Blocks:
 
 
Reported: 2006-07-20 19:13 UTC by Fabio Bonelli
Modified: 2006-07-21 10:53 UTC
See Also:
GNOME target: ---
GNOME version: 2.15/2.16



Description Fabio Bonelli 2006-07-20 19:13:26 UTC
totem 1.5.4-0ubuntu1, xine-lib 1.1.2-2ubuntu2

Start totem and press just "1". The results at second 8 (!) is:

fabio    19768  4.8 59.8 1562568 266740 pts/1  Tl   21:02   0:08 /usr/bin/totem

Stack trace from the thread responsable:

  • #0 gdk_pixbuf_alpha_mode_get_type
    from /usr/lib/libgdk_pixbuf-2.0.so.0
  • #1 _pixops_scale
    from /usr/lib/libgdk_pixbuf-2.0.so.0
  • #2 gdk_pixbuf_scale
    from /usr/lib/libgdk_pixbuf-2.0.so.0
  • #3 gdk_pixbuf_scale_simple
    from /usr/lib/libgdk_pixbuf-2.0.so.0
  • #4 bacon_video_widget_dvd_event
  • #5 _gtk_marshal_BOOLEAN__BOXED
    from /usr/lib/libgtk-x11-2.0.so.0
  • #6 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #7 g_signal_chain_from_overridden
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #9 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #10 gtk_widget_get_default_style
    from /usr/lib/libgtk-x11-2.0.so.0
  • #11 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #12 gdk_window_is_viewable
    from /usr/lib/libgdk-x11-2.0.so.0
  • #13 gdk_window_process_all_updates
    from /usr/lib/libgdk-x11-2.0.so.0
  • #14 gtk_window_new
    from /usr/lib/libgtk-x11-2.0.so.0
  • #15 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #16 g_signal_chain_from_overridden
    from /usr/lib/libgobject-2.0.so.0
  • #17 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #18 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #19 gtk_container_check_resize
    from /usr/lib/libgtk-x11-2.0.so.0
  • #20 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #21 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #22 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #23 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #24 main

Comment 1 Fabio Bonelli 2006-07-20 19:17:01 UTC
Doesn't happen with xine-gstreamer: when pressing "1" the window doesn't even try to resize itself.
Comment 2 Bastien Nocera 2006-07-20 20:31:04 UTC
(In reply to comment #1)
> Doesn't happen with xine-gstreamer: when pressing "1" the window doesn't even
> try to resize itself.
 
Huh? "xine-gstreamer" ?
Comment 3 Bastien Nocera 2006-07-20 20:55:14 UTC
BTW, I can't reproduce that with the current CVS.
Comment 4 Fabio Bonelli 2006-07-21 00:40:38 UTC
Err... totem-gstreamer.

Better stacktrace:

  • #0 pixops_process
    at pixops.c line 1026
  • #1 _pixops_scale
    at pixops.c line 1623
  • #2 IA__gdk_pixbuf_scale
    at gdk-pixbuf-scale.c line 77
  • #3 IA__gdk_pixbuf_scale_simple
    at gdk-pixbuf-scale.c line 256
  • #4 bacon_video_widget_dvd_event
  • #5 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #6 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #7 g_signal_chain_from_overridden
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #9 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #10 gtk_widget_event_internal
    at gtkwidget.c line 3901
  • #11 IA__gtk_main_do_event
    at gtkmain.c line 1406
  • #12 gdk_window_process_updates_internal
    at gdkwindow.c line 2324
  • #13 IA__gdk_window_process_all_updates
    at gdkwindow.c line 2387
  • #14 gtk_window_check_resize
    at gtkwindow.c line 5700
  • #15 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #16 g_signal_chain_from_overridden
    from /usr/lib/libgobject-2.0.so.0
  • #17 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #18 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #19 gtk_container_idle_sizer
    at gtkcontainer.c line 1110
  • #20 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #21 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #22 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #23 IA__gtk_main
    at gtkmain.c line 1023
  • #24 main

Comment 5 Bastien Nocera 2006-07-21 07:29:30 UTC
I don't understand what this backtrace is supposed to be.
The only time gdk_pixbuf_scale_simple() is called, the result is unref 3 lines down.

Please try with the current HEAD, and be a bit more precise as to how much is leaked, and use something like valgrind to show the leak.
Comment 6 Fabio Bonelli 2006-07-21 10:14:38 UTC
There isn't a memory leak, at first sight I was thinking about an allocation inside an infinite loop, but it's just a bug in gdk_pixbuf_scale for which I file a bug 348222.

This is reproducible with totem-xine HEAD and GTK 2.10.0.

This bug now turns to: "totem tries to resize totem_logo.png to 1x1 when hitting '1'"
Comment 7 Bastien Nocera 2006-07-21 10:18:34 UTC
Ha, it's not me that's done it then :)

The second part is bug 348184 that I'll be looking at soon.

*** This bug has been marked as a duplicate of 348222 ***
Comment 8 Fabio Bonelli 2006-07-21 10:53:46 UTC
It seems so. :-)

BTW, thanks for your always-blazing-fast response time!