Bug#323023: libgtk2.0-0: Consumes enormous amounts of memory

Igor Khavkine k_igor_k at lycos.com
Sun Aug 14 06:59:13 UTC 2005


Package: libgtk2.0-0
Version: 2.6.9-1
Severity: important

When running any gtk2 app, the app's virtual memory usage goes up to
more than 500MB, stays there for a bit, then returns to normal, and
after that the app's window appears on the screen. I have 192MB of
physical RAM and 500MB of swap. The apps don't crash unless they can't
actually allocate that much memory. Incidentally, this renders the Gnome
desktop unusable for me, precisely for that reason.

I installed the libgtk2.0-0-dbg and libpango1.0-dbg packages and got a
backtrace from gnome-terminal during the peak of memory usage and the
culprit seems to be pango_read_line (same result from several similar
backtraces):

#0  pango_read_line (stream=0x8218a10, str=0x80ee160) at gstring.h:127
#1  0xb79f8572 in process_module_file (module_file=0x8218a10) at
modules.c:364
#2  0xb79f88d3 in read_modules () at modules.c:501
#3  0xb79f8b08 in build_map (info=0x821b108) at modules.c:589
#4  0xb79f7fe8 in pango_find_map (language=0x8416910,
engine_type_id=993, 
    render_type_id=994) at modules.c:146
#5  0xb79fc6a7 in get_lang_map (lang=0x19323e92) at pango-context.c:1017
#6  0xb79fc718 in itemize_state_update_for_new_run (state=0xbfffcff0)
    at pango-context.c:1033
#7  0xb79fc836 in itemize_state_process_run (state=0xbfffcff0)
    at pango-context.c:1074
#8  0xb79fcb18 in pango_itemize_with_base_dir (context=0xbfffcff0, 
    base_dir=422723218, text=0x8414dc8 "File", start_index=0, 
    length=422723217, attrs=0x19323e92, cached_iter=0x19323e92)
    at pango-context.c:1192
#9  0xb7a03f9f in pango_layout_check_lines (layout=0x8411bd8)
    at pango-layout.c:3262
#10 0xb7a02446 in pango_layout_get_extents_internal (layout=0x8411bd8, 
    ink_rect=0x0, logical_rect=0xbfffd2b4, line_extents=0x0)
    at pango-layout.c:2013
#11 0xb7a027b7 in pango_layout_get_extents (layout=0x19323e91, 
    ink_rect=0x19323e92, logical_rect=0x19323e92) at pango-layout.c:2178
#12 0xb7bd2b47 in gtk_label_size_request (widget=0x819fac0, 
---Type <return> to continue, or q <return> to quit---
    requisition=0x819fadc) at gtklabel.c:2014
#13 0xb7b1cdef in gtk_accel_label_size_request (widget=0x819fac0, 
    requisition=0x819fadc) at gtkaccellabel.c:281
#14 0xb78ce49f in g_cclosure_marshal_VOID__BOXED ()
   from /usr/lib/libgobject-2.0.so.0
#15 0xb78c1768 in g_cclosure_new_swap () from
/usr/lib/libgobject-2.0.so.0
#16 0xb78c1cce in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#17 0xb78d09d6 in g_signal_stop_emission () from
/usr/lib/libgobject-2.0.so.0
#18 0xb78d25e7 in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#19 0xb78d5b74 in g_signal_emit_by_name () from
/usr/lib/libgobject-2.0.so.0
#20 0xb7c28dcc in do_size_request (widget=0x819fac0) at
gtksizegroup.c:496
#21 0xb7c29117 in _gtk_size_group_compute_requisition (widget=0x819fac0, 
    requisition=0xbfffd828) at gtksizegroup.c:683
#22 0xb7cbee85 in IA__gtk_widget_size_request (widget=0x819fac0, 
    requisition=0xbfffd828) at gtkwidget.c:2612
#23 0xb7bee33d in gtk_menu_item_size_request (widget=0x819b6e0, 
    requisition=0x819b6fc) at gtkmenuitem.c:521
#24 0xb78ce49f in g_cclosure_marshal_VOID__BOXED ()
   from /usr/lib/libgobject-2.0.so.0
#25 0xb78c1768 in g_cclosure_new_swap () from
/usr/lib/libgobject-2.0.so.0
#26 0xb78c1cce in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#27 0xb78d09d6 in g_signal_stop_emission () from
/usr/lib/libgobject-2.0.so.0
#28 0xb78d25e7 in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#29 0xb78d5b74 in g_signal_emit_by_name () from
/usr/lib/libgobject-2.0.so.0
#30 0xb7c28dcc in do_size_request (widget=0x819b6e0) at
gtksizegroup.c:496
#31 0xb7c29117 in _gtk_size_group_compute_requisition (widget=0x819b6e0, 
    requisition=0xbfffdd4c) at gtksizegroup.c:683
#32 0xb7cbee85 in IA__gtk_widget_size_request (widget=0x819b6e0, 
    requisition=0xbfffdd4c) at gtkwidget.c:2612
#33 0xb7becd00 in gtk_menu_bar_size_request (widget=0x8106920, 
    requisition=0x810693c) at gtkmenubar.c:223
#34 0xb78ce49f in g_cclosure_marshal_VOID__BOXED ()
   from /usr/lib/libgobject-2.0.so.0
#35 0xb78c1768 in g_cclosure_new_swap () from
/usr/lib/libgobject-2.0.so.0
#36 0xb78c1cce in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#37 0xb78d09d6 in g_signal_stop_emission () from
/usr/lib/libgobject-2.0.so.0
#38 0xb78d25e7 in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#39 0xb78d5b74 in g_signal_emit_by_name () from
/usr/lib/libgobject-2.0.so.0
#40 0xb7c28dcc in do_size_request (widget=0x8106920) at
gtksizegroup.c:496
#41 0xb7c29117 in _gtk_size_group_compute_requisition (widget=0x8106920, 
    requisition=0xbfffe278) at gtksizegroup.c:683
#42 0xb7cbee85 in IA__gtk_widget_size_request (widget=0x8106920, 
    requisition=0xbfffe278) at gtkwidget.c:2612
#43 0xb7cbad4e in gtk_vbox_size_request (widget=0x8197ff0, 
    requisition=0x819800c) at gtkvbox.c:122
#44 0xb78ce49f in g_cclosure_marshal_VOID__BOXED ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/libgobject-2.0.so.0
#45 0xb78c1768 in g_cclosure_new_swap () from
/usr/lib/libgobject-2.0.so.0
#46 0xb78c1cce in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#47 0xb78d09d6 in g_signal_stop_emission () from
/usr/lib/libgobject-2.0.so.0
#48 0xb78d25e7 in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#49 0xb78d5b74 in g_signal_emit_by_name () from
/usr/lib/libgobject-2.0.so.0
#50 0xb7c28dcc in do_size_request (widget=0x8197ff0) at
gtksizegroup.c:496
#51 0xb7c29117 in _gtk_size_group_compute_requisition (widget=0x8197ff0, 
    requisition=0xbfffe78c) at gtksizegroup.c:683
#52 0xb7cbee85 in IA__gtk_widget_size_request (widget=0x8197ff0, 
    requisition=0xbfffe78c) at gtkwidget.c:2612
#53 0xb7cce5cd in gtk_window_size_request (widget=0x818c858, 
    requisition=0x818c874) at gtkwindow.c:4203
#54 0xb78ce49f in g_cclosure_marshal_VOID__BOXED ()
   from /usr/lib/libgobject-2.0.so.0
#55 0xb78c1768 in g_cclosure_new_swap () from
/usr/lib/libgobject-2.0.so.0
#56 0xb78c1cce in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#57 0xb78d09d6 in g_signal_stop_emission () from
/usr/lib/libgobject-2.0.so.0
#58 0xb78d25e7 in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#59 0xb78d5b74 in g_signal_emit_by_name () from
/usr/lib/libgobject-2.0.so.0
#60 0xb7c28dcc in do_size_request (widget=0x818c858) at
gtksizegroup.c:496
#61 0xb7c29117 in _gtk_size_group_compute_requisition (widget=0x818c858, 
    requisition=0xbfffecf4) at gtksizegroup.c:683
---Type <return> to continue, or q <return> to quit---
#62 0xb7cbee85 in IA__gtk_widget_size_request (widget=0x818c858, 
    requisition=0xbfffecf4) at gtkwidget.c:2612
#63 0xb7cd0df4 in gtk_window_realize (widget=0x818c858) at
gtkwindow.c:4006
#64 0xb78cdbda in g_cclosure_marshal_VOID__VOID ()
   from /usr/lib/libgobject-2.0.so.0
#65 0xb78c1768 in g_cclosure_new_swap () from
/usr/lib/libgobject-2.0.so.0
#66 0xb78c1cce in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#67 0xb78d09d6 in g_signal_stop_emission () from
/usr/lib/libgobject-2.0.so.0
#68 0xb78d25e7 in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#69 0xb78d299e in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#70 0xb7cc590e in IA__gtk_widget_realize (widget=0x818c858) at
gtkwidget.c:2286
#71 0xb7cc59c7 in IA__gtk_widget_realize (widget=0x8197ff0) at
gtkwidget.c:2282
#72 0xb7cc59c7 in IA__gtk_widget_realize (widget=0x8199fc0) at
gtkwidget.c:2282
#73 0xb7cc59c7 in IA__gtk_widget_realize (widget=0x840f9b0) at
gtkwidget.c:2282
#74 0xb7cc59c7 in IA__gtk_widget_realize (widget=0x81af2d0) at
gtkwidget.c:2282
#75 0x080748cc in terminal_window_set_active ()
#76 0x08074b8d in terminal_window_get_active ()
#77 0xb7be546f in _gtk_marshal_VOID__POINTER_UINT (closure=0x80c8380, 
    return_value=0x0, n_param_values=3, param_values=0xbffff51c, 
    invocation_hint=0xbffff42c, marshal_data=0x1) at
gtkmarshalers.c:2195
#78 0xb78c1cce in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#79 0xb78d1568 in g_signal_stop_emission () from
/usr/lib/libgobject-2.0.so.0
#80 0xb78d25e7 in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#81 0xb78d299e in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#82 0xb7bfa357 in gtk_notebook_switch_page (notebook=0x8199fc0,
page=Variable "page" is not available.
)
    at gtknotebook.c:3858
#83 0xb7bfc19d in IA__gtk_notebook_insert_page_menu (notebook=0x8199fc0, 
    child=0x840f9b0, tab_label=0x8411c38, menu_label=0x0, position=0)
    at gtknotebook.c:4386
#84 0xb7bfc7ad in IA__gtk_notebook_append_page (notebook=0x8199fc0, 
    child=0x840f9b0, tab_label=0x8411c38) at gtknotebook.c:4133
#85 0x08074049 in terminal_window_add_screen ()
#86 0x0805ea22 in terminal_app_new_terminal ()
#87 0x0805de23 in terminal_skey_do_popup ()
#88 0x0805e58d in main ()

Igor

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i586)
Shell:  /bin/sh linked to /bin/dash
Kernel: Linux 2.6.10
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages libgtk2.0-0 depends on:
ii  libatk1.0-0               1.10.1-2       The ATK accessibility toolkit
ii  libc6                     2.3.5-3        GNU C Library: Shared libraries an
ii  libfontconfig1            2.3.2-1        generic font configuration library
ii  libfreetype6              2.1.10-1       FreeType 2 font engine, shared lib
ii  libglib2.0-0              2.6.6-1        The GLib library of C routines
ii  libgtk2.0-bin             2.6.9-1        The programs for the GTK+ graphica
ii  libgtk2.0-common          2.6.9-1        Common files for the GTK+ graphica
ii  libjpeg62                 6b-10          The Independent JPEG Group's JPEG 
ii  libpango1.0-0             1.8.2-1        Layout and rendering of internatio
ii  libpng12-0                1.2.8rel-1     PNG library - runtime
ii  libtiff4                  3.7.3-1        Tag Image File Format (TIFF) libra
ii  libx11-6                  6.8.2.dfsg.1-5 X Window System protocol client li
ii  libxcursor1               1.1.3-1        X cursor management library
ii  libxext6                  6.8.2.dfsg.1-5 X Window System miscellaneous exte
ii  libxft2                   2.1.7-1        FreeType-based font drawing librar
ii  libxi6                    6.8.2.dfsg.1-5 X Window System Input extension li
ii  libxinerama1              6.8.2.dfsg.1-5 X Window System multi-head display
ii  libxrandr2                6.8.2.dfsg.1-5 X Window System Resize, Rotate and
ii  libxrender1               1:0.9.0-2      X Rendering Extension client libra
ii  xlibs                     6.8.2.dfsg.1-5 X Window System client libraries m
ii  zlib1g                    1:1.2.3-3      compression library - runtime

Versions of packages libgtk2.0-0 recommends:
ii  hicolor-icon-theme            0.8-1      default fallback theme for FreeDes

-- no debconf information





More information about the Pkg-gnome-maintainers mailing list