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 98630 - mallopt crash or hang
mallopt crash or hang
Status: RESOLVED INCOMPLETE
Product: gtk+
Classification: Platform
Component: Widget: Other
2.0.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2002-11-15 19:06 UTC by linas
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: 2.0



Description linas 2002-11-15 19:06:20 UTC
I've got a crazy crash/hang that occurs when I close a 
gtkhtml window.  I am not sure if its gtkhtml's fault,
gtk's fault, glib's fault, something in libc6 or possibly 
a weird guile-glib interaction  ... ??? 

Stack trace:
  • #1 mallopt
    from /lib/libc.so.6
  • #2 malloc
    from /lib/libc.so.6
  • #3 g_try_malloc
    from /usr/lib/libglib-2.0.so.0
  • #4 gdk_pixbuf_copy
    from /usr/lib/libgdk_pixbuf-2.0.so.0
  • #5 gtk_style_apply_default_background
    from /usr/lib/libgtk-x11-2.0.so.0
  • #6 gtk_style_render_icon
    from /usr/lib/libgtk-x11-2.0.so.0
  • #7 gtk_icon_set_render_icon
    from /usr/lib/libgtk-x11-2.0.so.0
  • #8 gtk_widget_render_icon
    from /usr/lib/libgtk-x11-2.0.so.0
  • #9 gtk_image_get
    from /usr/lib/libgtk-x11-2.0.so.0
  • #10 _gtk_marshal_BOOLEAN__BOXED
    from /usr/lib/libgtk-x11-2.0.so.0
  • #11 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #12 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #13 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #15 gtk_signal_emit
    from /usr/lib/libgtk-x11-2.0.so.0
  • #16 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #17 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #18 gtk_container_propagate_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #19 gtk_container_get_focus_hadjustment
    from /usr/lib/libgtk-x11-2.0.so.0
  • #20 gtk_box_set_child_packing
    from /usr/lib/libgtk-x11-2.0.so.0
  • #21 gtk_container_forall
    from /usr/lib/libgtk-x11-2.0.so.0
  • #22 gtk_container_get_focus_hadjustment
    from /usr/lib/libgtk-x11-2.0.so.0
  • #23 _gtk_marshal_BOOLEAN__BOXED
    from /usr/lib/libgtk-x11-2.0.so.0
  • #24 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #25 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #26 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #27 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #28 gtk_signal_emit
    from /usr/lib/libgtk-x11-2.0.so.0
  • #29 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #30 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #31 gtk_container_propagate_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #32 gtk_container_get_focus_hadjustment
    from /usr/lib/libgtk-x11-2.0.so.0
  • #33 gtk_bin_get_type
    from /usr/lib/libgtk-x11-2.0.so.0
  • #34 gtk_container_forall
    from /usr/lib/libgtk-x11-2.0.so.0
  • #35 gtk_container_get_focus_hadjustment
    from /usr/lib/libgtk-x11-2.0.so.0
  • #36 _gtk_button_paint
    from /usr/lib/libgtk-x11-2.0.so.0
  • #37 _gtk_marshal_BOOLEAN__BOXED
    from /usr/lib/libgtk-x11-2.0.so.0
  • #38 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #39 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #40 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #41 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #42 gtk_signal_emit
    from /usr/lib/libgtk-x11-2.0.so.0
  • #43 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #44 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #45 gtk_container_propagate_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #46 gtk_toolbar_new
    from /usr/lib/libgtk-x11-2.0.so.0
  • #47 _gtk_marshal_BOOLEAN__BOXED
    from /usr/lib/libgtk-x11-2.0.so.0
  • #48 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #49 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #50 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #51 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #52 gtk_signal_emit
    from /usr/lib/libgtk-x11-2.0.so.0
  • #53 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #54 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #55 gtk_container_propagate_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #56 gtk_container_get_focus_hadjustment
    from /usr/lib/libgtk-x11-2.0.so.0
  • #57 bonobo_widget_clobber_focus
    from /usr/lib/libbonoboui-2.so.0
  • #58 gtk_container_forall
    from /usr/lib/libgtk-x11-2.0.so.0
  • #59 gtk_container_get_focus_hadjustment
    from /usr/lib/libgtk-x11-2.0.so.0
  • #60 bonobo_widget_clobber_focus
    from /usr/lib/libbonoboui-2.so.0
  • #61 _gtk_marshal_BOOLEAN__BOXED
    from /usr/lib/libgtk-x11-2.0.so.0
  • #62 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #63 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #64 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #65 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #66 gtk_signal_emit
    from /usr/lib/libgtk-x11-2.0.so.0
  • #67 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #68 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #69 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #70 gdk_window_clear_area_e
    from /usr/lib/libgdk-x11-2.0.so.0
  • #71 gdk_window_process_all_updates
    from /usr/lib/libgdk-x11-2.0.so.0
  • #72 gdk_window_process_all_updates
    from /usr/lib/libgdk-x11-2.0.so.0
  • #73 g_timeout_add
    from /usr/lib/libglib-2.0.so.0
  • #74 g_get_current_time
    from /usr/lib/libglib-2.0.so.0
  • #75 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #76 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #77 g_main_context_iteration
    from /usr/lib/libglib-2.0.so.0
  • #78 gtk_main_iteration_do
    from /usr/lib/libgtk-x11-2.0.so.0
  • #79 idle_timeout_main_loop
    at idle-timer.c line 722
  • #80 g_main_context_wakeup
    from /usr/lib/libglib-2.0.so.0
  • #81 g_get_current_time
    from /usr/lib/libglib-2.0.so.0
  • #82 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #83 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #84 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #85 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #86 guile_inner_main
    at main.c line 424
  • #87 gh_call3
    from /usr/lib/libguile.so.9
  • #88 scm_boot_guile
    from /usr/lib/libguile.so.9
  • #89 scm_internal_lazy_catch
    from /usr/lib/libguile.so.9
  • #90 scm_boot_guile
    from /usr/lib/libguile.so.9
  • #91 scm_boot_guile
    from /usr/lib/libguile.so.9
  • #92 gh_enter
    from /usr/lib/libguile.so.9
  • #93 main
    at main.c line 500
  • #0 mallopt
    from /lib/libc.so.6
  • #1 mallopt
    from /lib/libc.so.6
  • #2 malloc
    from /lib/libc.so.6
  • #3 g_malloc
    from /usr/lib/libglib-2.0.so.0
  • #4 pango_get_mirror_char
    from /usr/lib/libpango-1.0.so.0
  • #5 pango_log2vis_get_embedding_levels
    from /usr/lib/libpango-1.0.so.0
  • #6 pango_itemize
    from /usr/lib/libpango-1.0.so.0
  • #7 pango_layout_get_pixel_size
    from /usr/lib/libpango-1.0.so.0
  • #8 pango_layout_get_cursor_pos
    from /usr/lib/libpango-1.0.so.0
  • #9 pango_layout_get_extents
    from /usr/lib/libpango-1.0.so.0
  • #10 pango_layout_get_pixel_extents
    from /usr/lib/libpango-1.0.so.0
  • #11 gtk_cell_renderer_text_new
    from /usr/lib/libgtk-x11-2.0.so.0
  • #12 gtk_cell_renderer_text_new
    from /usr/lib/libgtk-x11-2.0.so.0
  • #13 gtk_cell_renderer_render
    from /usr/lib/libgtk-x11-2.0.so.0
  • #14 gtk_tree_view_column_cell_get_size
    from /usr/lib/libgtk-x11-2.0.so.0
  • #15 _gtk_tree_view_column_cell_render
    from /usr/lib/libgtk-x11-2.0.so.0
  • #16 gtk_tree_view_get_type
    from /usr/lib/libgtk-x11-2.0.so.0
  • #17 gtk_tree_view_get_type
    from /usr/lib/libgtk-x11-2.0.so.0
  • #18 _gtk_marshal_BOOLEAN__BOXED
    from /usr/lib/libgtk-x11-2.0.so.0
  • #19 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #20 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #21 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #22 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #23 gtk_signal_emit
    from /usr/lib/libgtk-x11-2.0.so.0
  • #24 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #25 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #26 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #27 gdk_window_clear_area_e
    from /usr/lib/libgdk-x11-2.0.so.0
  • #28 gdk_window_process_all_updates
    from /usr/lib/libgdk-x11-2.0.so.0
  • #29 gdk_window_process_all_updates
    from /usr/lib/libgdk-x11-2.0.so.0
  • #30 g_timeout_add
    from /usr/lib/libglib-2.0.so.0
  • #31 g_get_current_time
    from /usr/lib/libglib-2.0.so.0
  • #32 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #33 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #34 g_main_context_iteration
    from /usr/lib/libglib-2.0.so.0
  • #35 gtk_main_iteration_do
    from /usr/lib/libgtk-x11-2.0.so.0
  • #36 idle_timeout_main_loop
    at idle-timer.c line 722
  • #37 g_main_context_wakeup
    from /usr/lib/libglib-2.0.so.0
  • #38 g_get_current_time
    from /usr/lib/libglib-2.0.so.0
  • #39 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #40 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #41 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #42 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #43 guile_inner_main
    at main.c line 424
  • #44 gh_call3
    from /usr/lib/libguile.so.9
  • #45 scm_boot_guile
    from /usr/lib/libguile.so.9
  • #46 scm_internal_lazy_catch
    from /usr/lib/libguile.so.9
  • #47 scm_boot_guile
    from /usr/lib/libguile.so.9
  • #48 scm_boot_guile
    from /usr/lib/libguile.so.9
  • #49 gh_enter
    from /usr/lib/libguile.so.9
  • #50 main
    at main.c line 500

I'm not sure how to debug this, short of the  brute-force approach of
installing libc6 from source, and trying to figure out what mallopt 
does ...:-(   Any suggestions?

Is this bug unique? Is it a dup of another one? Is this a 'known bug'?
Comment 1 Owen Taylor 2002-11-15 23:05:18 UTC
Basically you are causing memory corruption somewhere.

A) Try setting the MALLOC_CHECK_ env variable to 2,
   this turns on more strict checking in glibc.
B) Use a memory checking tool like valgrind.
Comment 2 Owen Taylor 2002-11-17 15:34:43 UTC
Nothing we can do here from the GTK+ side.
Comment 3 Elijah Newren 2003-07-04 23:25:41 UTC
For future reference if anyone runs across the bug, the stack trace
looks similar to the ones in bug 98308, bug 112548 (which had some
potentially interesting comments at the end), and bug 115666.  Each of
these bug reports was on a Debian testing/unstable system.