GNOME Bugzilla – Bug 71374
Crash when changing processlist.
Last modified: 2011-02-04 16:09:56 UTC
Changed from viewing my processes to view all. And after a couple of sec. it crached. With this output in the terminal. gnome-system-monitor (pid:19081): Gtk-CRITICAL **: file gtkrbtree.c: line 959 (_gtk_rbtree_reorder): assertion `tree->root->count == length' failed gnome-system-monitor (pid:19081): Gtk-CRITICAL **: file gtkrbtree.c: line 959 (_gtk_rbtree_reorder): assertion `tree->root->count == length' failed gnome-system-monitor (pid:19081): Gtk-CRITICAL **: file gtktreemodel.c: line 334 (gtk_tree_path_free): assertion `path != NULL' failed gnome-system-monitor (pid:19081): Gtk-CRITICAL **: file gtktreemodel.c: line 334 (gtk_tree_path_free): assertion `path != NULL' failed gnome-system-monitor (pid:19081): Gtk-CRITICAL **: file gtktreemodel.c: line 334 (gtk_tree_path_free): assertion `path != NULL' failed gnome-system-monitor (pid:19081): Gtk-CRITICAL **: file gtktreemodel.c: line 334 (gtk_tree_path_free): assertion `path != NULL' failed gnome-system-monitor (pid:19081): Gtk-CRITICAL **: file gtktreemodel.c: line 334 (gtk_tree_path_free): assertion `path != NULL' failed gnome-system-monitor (pid:19081): Gtk-CRITICAL **: file gtktreemodel.c: line 334 (gtk_tree_path_free): assertion `path != NULL' failed gnome-system-monitor (pid:19081): Gtk-CRITICAL **: file gtktreemodel.c: line 334 (gtk_tree_path_free): assertion `path != NULL' failed gnome-system-monitor (pid:19081): Gtk-CRITICAL **: file gtktreemodel.c: line 334 (gtk_tree_path_free): assertion `path != NULL' failed gnome-system-monitor (pid:19081): Gtk-ERROR **: file gtktreestore.c: line 1945 (gtk_tree_store_sort_iter_changed): assertion failed: (node != NULL) aborting... And this backtrace. 0x4080a4a2 in g_logv (log_domain=0x404957d3 "Gtk", log_level=G_LOG_LEVEL_ERROR, format=0x40495da0 "file %s: line %d (%s): assertion failed: (%s)", args1=0xbfffee5c) at gmessages.c:542 542 gmessages.c: No such file or directory. in gmessages.c (gdb) bt
+ Trace 17701
Kevin: is this a procman bug or a gtk bug?
*** Bug 73563 has been marked as a duplicate of this bug. ***
*** Bug 73990 has been marked as a duplicate of this bug. ***
Kevin, are you sure this is a dupe of Bug 73990 ? Though the backtrace looks similar, i only very specificly get this error when i switch focus from the system monitor process view, to my xterm.. Just double checking ;-)
Upping to high because of the dups; wipro folks may pick up.
Just got this crash myself while system-monitor was idling on another desktop. No clue what trigerred it but it wasn't user interaction- I hadn't touched it in several minutes at least. Similar error message, to: --- gnome-system-monitor (pid:12099): Gtk-ERROR **: file gtktreestore.c: line 1998 (gtk_tree_store_sort_iter_changed): assertion failed: (node != NULL) aborting... /home/louie/art/themes/12099: No such file or directory. 172 wrapsyscall.c: No such file or directory. 593 gnome-ui-init.c: No such file or directory. 97 signals.c: No such file or directory. 560 gmessages.c: No such file or directory.
Hmm, I think this might be a treeview bug, but I've put in some debug spew to try to catch this bug: 2002-03-19 Kevin Vandersloot <kfv101@psu.edu> * proctable.c: add some debug spew to catch some of the crashses reported Hopefully, someone who gets this bug can't report the output. I personally never get this bug :( Chris, do you still get this bug on a regular basis? If so, can you test with my latest changes?
*** Bug 75388 has been marked as a duplicate of this bug. ***
Kevin, i can't reproduce this bug anymore in the way i described in bug 73990. (w/ system monitor 1.1.5, and gtk 2.0) Should i put the bug on needinfo for now? (So louie and Fredrik can try to see if their bugs still live)
I can't reproduce it with the latest snapshot from Red-Carpet.
Putting bug to need info in case anyone can reproduce this. Looks like its been fixed for now. (the bug was probably gtk2's tree related?)
I have managed to trigger it again. From the terminal: < ~ > gnome-system-monitor gnome-system-monitor (pid:9827): Gtk-CRITICAL **: file gtkrbtree.c: line 985 (_gtk_rbtree_reorder): assertion `tree->root->count == length' failed damn error madplay 9710 gnome-system-monitor (pid:9827): ** ERROR **: file proctable.c: line 584 (update_info): assertion failed: (0) aborting... Backtrace: Backtrace was generated from '/usr/bin/gnome-system-monitor' [New Thread 1024 (LWP 9827)] 0x407f3ca9 in __wait4 () from /lib/i686/libc.so.6
+ Trace 19960
Thread 1 (Thread 1024 (LWP 9827))
Frederik: Was there anything special about the madplay process when gsm crashed? Was it the process with the highest PID, or was it a deeply nested child process?
I can't find anything special about the process that should be updated when it crashes. madplay was on depth 3 when it crashed. And a couple of processes had higher pid.
Oh Frederik, also what processes if any are in your hidden process list?
*** Bug 77071 has been marked as a duplicate of this bug. ***
Can it be so that this bug is related to the fact that I got a SMP machine. Or has it been duplicated on UP machines as well. As I tested this today I started gnome-system-monitor before going to lunch. When I got back from lunch it still was running. But the I made a refresh in red-carpet and changed workspace. And then it crashed. That is thought about this bug. Any other ideas?
Frederik: what are your preference settings. Also do you have any hidden processes?
Kevin this is my settings: No hidden processes, Show threads, Both the show warning. I am not using show dependencies. Update interval is 3 sec. Theses process fields: name, user, memory, % cpu and id.
Cc'ing Michele so that he can take a look and respond to some of the questions, since he is seeing this as well :/
*** Bug 80213 has been marked as a duplicate of this bug. ***
changed from 'View my processes' to 'View all processed' and it worked fine. closing and restarting gave me the same problem again. summary: from my experience, if you change the view right after startup it continues to run, if you don't, it crashes.
That is not the case here. I just tried going from my processes->active->all after just restarting it. It took around 2-4 minutes then it crashed.
*** Bug 80353 has been marked as a duplicate of this bug. ***
Several dups; marking 2.0.0. If it still isn't duplicable for you, Kevin, feel free to punt, I guess.
Is there anyone here who can get on irc and run gnome-system-monitor in a debugger to help me debug this bug since I can never reproduce?
*** Bug 81572 has been marked as a duplicate of this bug. ***
*** Bug 81648 has been marked as a duplicate of this bug. ***
Wooho! I triggered it. To do it I had to sort by cpu usage, without process dependencies shown. Hmm, makes me think it's a treeview bug. Jonathan: sorry for spamming you. I think this might be a treeview bug. To trigger it have gnome-system-monitor sort by cpu (which uses a custom integer sorting routine) and don't display process dependencies. Some info: It will only happen randomly. It also appears that the row causing the trouble is the topmost one. I just caused the crash without procman having removed a single row so it appears that somehow the GtkTreeIter is being changed (I'm saving the GtkTreeIters for each process). I'm also using GtkTreeStore. Here's the terminal spew that I get: gnome-system-monitor:6168): Gtk-CRITICAL **: file gtkrbtree.c: line 985 (_gtk_rbtree_reorder): assertion `tree->root->count == length' failed (gnome-system-monitor:6168): Gtk-CRITICAL **: file gtktreeview.c: line 3950 (do_validate_rows): assertion `gtk_tree_model_iter_next (tree_view->priv->model, &iter)' failed. There is a disparity between the internal view of the GtkTreeView, and the GtkTreeModel. This generally means that the model has changed without letting the view know. Any display from now on is likely to be incorrect. Jonathan: let me know if you need more info. I will try to make a simple test case to see if I can trigger it. You can remove yourself from the cc list if you think this is a procman bug.
Okay, Jonathan I've made a simple test case. To test run the attached test and try changing the sort direction. Hopefully you can point out what I've done wrong or if it's a TreeView bug since the test case pretty much mimics how procman works.
Created attachment 8501 [details] test case to reproduce the crash
I'm investigating this bug, results so far: * does only happen with tree store (list store works fine) * gtk_tree_store_sort_iter_changed seems to corrupt the internal GTree I'll try to cook up a fix for this issue before 2.0.3 gets released. [putting on 2.0.3 for now]
Hmm, following patch seems to fix it. Yes, one missing line was causing these crashes :). Jonathan, can I commit this?
Created attachment 8522 [details] [review] fix
Kevin, thanks a lot for the testcase btw. /me likes testcases
committed on both branches.