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 668779 - Assertion in gtk_cell_renderer_get_aligned_area
Assertion in gtk_cell_renderer_get_aligned_area
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Widget: GtkTreeView
3.3.x
Other Linux
: Normal critical
: ---
Assigned To: gtktreeview-bugs
gtktreeview-bugs
Depends on:
Blocks:
 
 
Reported: 2012-01-26 20:53 UTC by William Jon McCann
Modified: 2015-08-12 07:43 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
bt (5.39 KB, text/plain)
2012-01-26 20:53 UTC, William Jon McCann
Details
Another backtrace, gtk+3 from git master (6.21 KB, text/plain)
2012-01-27 12:40 UTC, Stef Walter
Details
GDB backtrace for Nautilus 3.4.2 (5.42 KB, text/plain)
2012-10-29 14:10 UTC, John Doe
Details
Crash while using rhythmbox (65.70 KB, application/octet-stream)
2014-07-18 20:46 UTC, gnome.vrb
Details
attachment 1 (143.09 KB, image/png)
2014-07-18 20:58 UTC, gnome.vrb
Details
attachment 2.1 (143.09 KB, image/png)
2014-07-18 20:59 UTC, gnome.vrb
Details
attachment 2.2 (94.23 KB, image/png)
2014-07-18 21:00 UTC, gnome.vrb
Details
attachment 2.3 (133.38 KB, image/png)
2014-07-18 21:00 UTC, gnome.vrb
Details

Description William Jon McCann 2012-01-26 20:53:15 UTC
Created attachment 206224 [details]
bt

* Turn on the "places" sidebar.
 * Select one of the items in it
 * Resize the left pane to a very small size
 * Crash
Comment 1 André Klapper 2012-01-27 08:52:34 UTC
Crash => critical
Comment 2 Stef Walter 2012-01-27 12:40:01 UTC
After banging on it for a bit, I managed to get it to crash once.

Gtk:ERROR:gtkcellrenderer.c:1722:gtk_cell_renderer_get_aligned_area: assertion failed: (aligned_area->x >= cell_area->x && aligned_area->x <= cell_area->x + cell_area->width)

This looks like a GTK+ bug or regression.
Comment 3 Stef Walter 2012-01-27 12:40:50 UTC
Created attachment 206260 [details]
Another backtrace, gtk+3 from git master
Comment 4 Stef Walter 2012-01-27 13:01:24 UTC
Committed a related fix to seahorse which limits positions of the sidebar slider. So to reproduce this, revert the following commit from seahorse:

commit fbec92a60515a8d1855cbe9fe30189c118581829
Author: Stef Walter <stefw@gnome.org>
Date:   Fri Jan 27 13:55:47 2012 +0100

    Add maximum and minimum sidebar pane position
    
    Related to: https://bugzilla.gnome.org/show_bug.cgi?id=668779

As a note when reproducing this doesn't happen every time, need to play around with it a bit before the assertion occurs (show and hide sidebar, select various keyrings, select various items).
Comment 5 Milan Crha 2012-10-29 10:47:36 UTC
Similar downstream bug report from Evolution 3.4.4, unfortunately without steps:
https://bugzilla.redhat.com/show_bug.cgi?id=870438

Thread 1 (Thread 0xb772c8c0 (LWP 17442))

  • #0 __kernel_vsyscall
  • #1 __GI_raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 64
  • #2 __GI_abort
    at abort.c line 91
  • #3 g_assertion_message
  • #4 g_assertion_message_expr
    at gtestutils.c line 1872
  • #5 gtk_cell_renderer_get_aligned_area
  • #6 render_cell
    at gtkcellarea.c line 1151
  • #7 gtk_cell_area_box_foreach_alloc
    at gtkcellareabox.c line 1296
  • #8 gtk_cell_area_foreach_alloc
    at gtkcellarea.c line 1789
  • #9 gtk_cell_area_real_render
  • #10 gtk_cell_area_render
  • #11 gtk_icon_view_paint_item
    at gtkiconview.c line 3085
  • #12 gtk_icon_view_draw
    at gtkiconview.c line 1865
  • #13 gtk_icon_view_draw
    at gtkiconview.c line 1817
  • #14 _gtk_marshal_BOOLEAN__BOXEDv
    at gtkmarshalers.c line 130
  • #15 gtk_widget_draw_marshallerv
    at gtkwidget.c line 850
  • #16 g_type_class_meta_marshalv
    at gclosure.c line 997
  • #17 _g_closure_invoke_va
    at gclosure.c line 840
  • #18 g_signal_emit_valist
    at gsignal.c line 3211
  • #19 g_signal_emit
    at gsignal.c line 3356
  • #20 _gtk_widget_draw_internal
    at gtkwidget.c line 5828
  • #21 _gtk_widget_draw_internal
    at gtkwidget.c line 5804
  • #22 gtk_widget_send_expose
    at gtkwidget.c line 6211
  • #23 gtk_main_do_event
    at gtkmain.c line 1621
  • #24 _gdk_event_emit
    at gdkevents.c line 69
  • #25 _gdk_window_process_updates_recurse
    at gdkwindow.c line 3884
  • #26 _gdk_window_process_updates_recurse
    at gdkwindow.c line 3929
  • #27 _gdk_window_process_updates_recurse
    at gdkwindow.c line 3929
  • #28 _gdk_window_process_updates_recurse
    at gdkwindow.c line 3929
  • #29 _gdk_window_process_updates_recurse
    at gdkwindow.c line 3929
  • #30 gdk_x11_window_process_updates_recurse
    at gdkwindow-x11.c line 4850
  • #31 gdk_window_process_updates_internal
    at gdkwindow.c line 4070
  • #32 gdk_window_process_all_updates
    at gdkwindow.c line 4201
  • #33 gtk_container_idle_sizer
    at gtkcontainer.c line 1664
  • #34 gdk_threads_dispatch
    at gdk.c line 763
  • #35 g_idle_dispatch
    at gmain.c line 4657
  • #36 g_main_dispatch
    at gmain.c line 2539
  • #37 g_main_context_dispatch
    at gmain.c line 3075
  • #38 g_main_context_iterate
    at gmain.c line 3146
  • #39 g_main_loop_run
    at gmain.c line 3340
  • #40 gtk_main
    at gtkmain.c line 1161
  • #41 main
    at main.c line 696

Comment 6 John Doe 2012-10-29 14:09:39 UTC
I have the same problem with Nautilus 3.4.2 on a Gentoo Linux system. It crashes with the following error message:

**
Gtk:ERROR:gtkcellrenderer.c:1727:gtk_cell_renderer_get_aligned_area: assertion failed: (aligned_area->x >= cell_area->x && aligned_area->x <= cell_area->x + cell_area->width)
Aborted

Steps to reproduce:
1) Open Nautilus
2) Click on the "Home" directory in the Places sidebar
3) Reduce the width of the Places sidebar until it is very narrow

In all truth, I can make it crash by selecting other directories too, such as "File system" or "Trash", but it doesn't always crash. I can't really understand the exact conditions for it to crash realiably.

I'm attaching a backtrace. In order to obtain it, I recompiled nautilus, gtk+ and glib with the following Portage variables:

CFLAGS="-march=core2 -O1 -pipe -ggdb"
CXXFLAGS="-march=core2 -O1 -pipe -ggdb"
FEATURES="nostrip"

Please tell me if more informations are needed.
Comment 7 John Doe 2012-10-29 14:10:33 UTC
Created attachment 227536 [details]
GDB backtrace for Nautilus 3.4.2
Comment 8 Christoph Reiter (lazka) 2013-06-09 14:28:02 UTC
I can still reproduce with 3.8.2

Here is a small test case:

1. execute it
2. click on the resize grip (bottom right corner)
3. resize the window to with -> 0 and back
4. repeat multiple times
4. after 5-20 times resizing it crashes


###################
from gi.repository import Gtk, Pango

class CellRendererTextWindow(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title="CellRendererText Example")

        self.set_default_size(150, 200)

        self.liststore = Gtk.ListStore(str, str)
        for i in range(50):
            self.liststore.append(["gtk-info", "bla"])

        treeview = Gtk.TreeView(model=self.liststore)
        treeview.set_headers_visible(False)

        renderer_text = Gtk.CellRendererPixbuf()
        column_text = Gtk.TreeViewColumn("Text", renderer_text, stock_id=0)
        column_text.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
        column_text.set_fixed_width(50)
        treeview.append_column(column_text)

        sw = Gtk.ScrolledWindow()
        sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
        sw.add(treeview)

        self.add(sw)


win = CellRendererTextWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
###########
Comment 9 Snark 2014-02-28 08:11:14 UTC
I found this bug while looking for why a renderer implementation in ekiga which was previously good was giving headaches.

I tried the above example with 3.10.7-1 (debian unstable), and it crashes.

In the case of ekiga, no resizing of the window is involved ; it's just that the widget's information gets updated and for some reason the size computations are off... We override get_preferred_height and get_preferred_width, and the implementation updates the parent properties before calling the parent methods to compute the size.

I'm quite surprised a two year old bug with several reports and even a minimal example is still UNCONFIRMED... Is there something I can do to help?
Comment 10 gnome.vrb 2014-07-18 20:46:57 UTC
Created attachment 281146 [details]
Crash while using rhythmbox

Crashes while using rhythmbox on latest debian sid amd64.
Comment 11 gnome.vrb 2014-07-18 20:53:31 UTC
Steps to reproduce:

1. Open rhythmbox -> postcast -> New downloads ( I had 5 podcasts entry as shown in the attachment 1 [details].1 )

2. Select the column divider before 'Title' column  ( attachment 2 [details].1 ). 

3. Now resize it to extreme right, so that only 'Date' column is displayed in the entire space. ( attachment 2 [details].2 ) Do not release the mouse.

4. Repeat the resize process from extreme right to extreme left ( attachment 2 [details].3 ). Do not release the mouse.

5. Keep repeating 3 and 4.

6. rhythmbox crashes.
Comment 12 gnome.vrb 2014-07-18 20:58:25 UTC
Created attachment 281147 [details]
attachment 1 [details]
Comment 13 gnome.vrb 2014-07-18 20:59:15 UTC
Created attachment 281148 [details]
attachment 2 [details].1
Comment 14 gnome.vrb 2014-07-18 21:00:06 UTC
Created attachment 281149 [details]
attachment 2 [details].2
Comment 15 gnome.vrb 2014-07-18 21:00:52 UTC
Created attachment 281150 [details]
attachment 2 [details].3
Comment 16 Marc-Andre Laperle 2015-08-12 02:48:19 UTC
I haven't been able to reproduce the crash with the comment 8 anymore so I bisected the git repo to find the first good commit and found that this commit fixed it:
commit a3cd0ee7d8a610feff39984254306cec4a6c9c73
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 1 10:16:01 2014 -0400

    Revert "Use minimum/natural size semantics"
    
    This reverts commit 6d53c2339f79baa0b295ecc614f41f9daab2e132.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=731054 showed some
    major regressions caused by this commit.


So this is fixed as of GTK 3.13.3. Could someone close this bug and mark this as duplicate of bug 731054? Thanks!
Comment 17 Christoph Reiter (lazka) 2015-08-12 07:43:31 UTC
I haven't seen that crash in quite some time, so sounds plausible.
Thanks for bisecting.