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 661058 - Critical warnings in GtkTreeViewAccessible when removing all columns.
Critical warnings in GtkTreeViewAccessible when removing all columns.
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Widget: GtkTreeView
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gtktreeview-bugs
gtktreeview-bugs
Depends on:
Blocks: 660347
 
 
Reported: 2011-10-06 09:24 UTC by Krzesimir Nowak
Modified: 2011-11-16 03:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Small test case. (3.48 KB, text/x-c++src)
2011-10-06 09:24 UTC, Krzesimir Nowak
Details

Description Krzesimir Nowak 2011-10-06 09:24:06 UTC
Created attachment 198414 [details]
Small test case.

Steps to reproduce:
1. Compile the given code (see comments at its beginning for quick copy paste commands).
2. Run it in terminal (I had it not maximized, so I could see both terminal and my application not overlapping).
3. When window shows up, press on "5", then on "3".
4. Focus the terminal.
5. Press on "7" and then on "5".
6. Quit test application by clicking the cross in the corner.

Expected result:
Application prints nothing on console.

Actual result:
(test:4400): Gtk-CRITICAL **: gtk_tree_view_get_cell_area: assertion `column == NULL || GTK_IS_TREE_VIEW_COLUMN (column)' failed

(test:4400): Gtk-CRITICAL **: gtk_tree_view_get_cell_area: assertion `column == NULL || GTK_IS_TREE_VIEW_COLUMN (column)' failed

If you are using gnome-shell, you could hit the activities corner twice between points 3. and 4. and receive not two critical warnings but three. This seems to be very reproducible.

There is only one thing that _may_ be unusual in this application - removing of all columns from first to last one in tree view in delete-event signal handler (line 86 in code).

Warnings do not show up when columns are removed in reverse order.
Comment 1 Murray Cumming 2011-10-09 12:24:35 UTC
(In reply to comment #0)
> There is only one thing that _may_ be unusual in this application - removing of
> all columns from first to last one in tree view in delete-event signal handler
> (line 86 in code).

And this is something that gtkmm does, so this bug does cause real problems.

CCing Benjamin Otte, because Mathias Clasen says that he is spending time fixing problems in this code in GTK+.
Comment 2 Benjamin Otte (Company) 2011-10-09 21:04:52 UTC
I can't reproduce this with GTK master, neither with accessibility enabled nor disabled.

Can you get a backtrace from those warnings?
Comment 3 Krzesimir Nowak 2011-10-10 09:06:34 UTC
(In reply to comment #2)
> I can't reproduce this with GTK master, neither with accessibility enabled nor
> disabled.

I hope you compiled it with -DSHOW_WARN - this is mentioned at the beginning of the source code. I haven't written about it in my bug report, sorry.

> Can you get a backtrace from those warnings?

This is backtrack from test application with gtk master.

  • #0 g_log
    at gmessages.c line 538
  • #1 g_return_if_fail_warning
  • #2 gtk_tree_view_get_cell_area
    at gtktreeview.c line 13556
  • #3 set_cell_visibility
    at gtktreeviewaccessible.c line 2284
  • #4 traverse_cells
    at gtktreeviewaccessible.c line 2929
  • #5 columns_changed
    at gtktreeviewaccessible.c line 1768
  • #6 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #7 g_closure_invoke
    at gclosure.c line 774
  • #8 signal_emit_unlocked_R
    at gsignal.c line 3272
  • #9 g_signal_emit_valist
    at gsignal.c line 3003
  • #10 g_signal_emit
    at gsignal.c line 3060
  • #11 gtk_tree_view_remove_column
    at gtktreeview.c line 11943
  • #12 window_closed
  • #13 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 85
  • #14 g_closure_invoke
    at gclosure.c line 774
  • #15 signal_emit_unlocked_R
    at gsignal.c line 3272
  • #16 g_signal_emit_valist
    at gsignal.c line 3013
  • #17 g_signal_emit
    at gsignal.c line 3060
  • #18 gtk_widget_event_internal
    at gtkwidget.c line 6132
  • #19 gtk_widget_event
    at gtkwidget.c line 5848
  • #20 gtk_main_do_event
    at gtkmain.c line 1778
  • #21 _gdk_event_emit
    at gdkevents.c line 71
  • #22 gdk_event_source_dispatch
    at gdkeventsource.c line 360
  • #23 g_main_dispatch
    at gmain.c line 2415
  • #24 g_main_context_dispatch
    at gmain.c line 2952
  • #25 g_main_context_iterate
    at gmain.c line 3024
  • #26 g_main_loop_run
    at gmain.c line 3218
  • #27 gtk_main
    at gtkmain.c line 1362
  • #28 main

Also, shiny new procedure to get 4 warnings (my personal record):
1. Compile the given code (see comments at its beginning for quick copy paste
commands).
2. Run it in terminal (I had it not maximized, so I could see both terminal and
my application not overlapping).
3. When window shows up, focus the terminal.
4. Press on "5", then on "3".
5. Bump the Gnome Shell "Activities" corner twice.
6. Focus the terminal.
7. Press on "7" and then on "5".
8. Quit test application by clicking the cross in the corner.
Comment 4 Murray Cumming 2011-11-07 13:04:31 UTC
Benjamin, may we push this?
Comment 5 Kristian Rietveld 2011-11-07 13:39:39 UTC
Push what exactly?  I haven't seen a patch in this bug report?
Comment 6 Murray Cumming 2011-11-07 13:41:58 UTC
Oh, sorry, I thought we had a patch.

Krzesimir, maybe you can try fixing this when you have a moment away from more urgent stuff.
Comment 7 Benjamin Otte (Company) 2011-11-16 03:44:10 UTC
So, I still wasn't able to reproduce it, but I think I know the problem and it should be fixed with the recent treeview accessible refactorings that I pushed to master.

I'm going to close this bug for now. If it still happens, please reopen and attack a new backtrace. Thanks.