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 71374 - Crash when changing processlist.
Crash when changing processlist.
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Widget: GtkTreeView
2.0.x
Other Linux
: High critical
: ---
Assigned To: gtktreeview-bugs
gtktreeview-bugs
: 73563 73990 75388 77071 80213 80353 81572 81648 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2002-02-13 14:00 UTC by Fredrik Henrysson
Modified: 2011-02-04 16:09 UTC
See Also:
GNOME target: Old
GNOME version: ---


Attachments
test case to reproduce the crash (2.23 KB, text/plain)
2002-05-16 01:47 UTC, Kevin Vandersloot
  Details
fix (1.44 KB, patch)
2002-05-16 21:57 UTC, Kristian Rietveld
none Details | Review

Description Fredrik Henrysson 2002-02-13 14:00:44 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
  • #0 g_logv
  • #1 g_log
  • #2 gtk_tree_store_sort_iter_changed
    at gtktreestore.c line 1945
  • #3 gtk_tree_store_set_valist
    at gtktreestore.c line 980
  • #4 gtk_tree_store_set
    at gtktreestore.c line 1016
  • #5 update_info
    at proctable.c line 584
  • #6 refresh_list
    at proctable.c line 750
  • #7 proctable_update_list
    at proctable.c line 816
  • #8 proctable_update_all
    at proctable.c line 828
  • #9 cb_timeout
    at callbacks.c line 595
  • #10 g_timeout_dispatch
    at gmain.c line 2974
  • #11 g_main_dispatch
    at gmain.c line 1616
  • #12 g_main_context_dispatch
    at gmain.c line 2155
  • #13 g_main_context_iterate
    at gmain.c line 2236
  • #14 g_main_loop_run
    at gmain.c line 2456
  • #15 gtk_main
    at gtkmain.c line 793
  • #16 main
    at procman.c line 547
  • #17 __libc_start_main
    at ../sysdeps/generic/libc-start.c line 129

Comment 1 Luis Villa 2002-02-14 06:28:30 UTC
Kevin: is this a procman bug or a gtk bug?
Comment 2 Kevin Vandersloot 2002-03-10 14:57:47 UTC
*** Bug 73563 has been marked as a duplicate of this bug. ***
Comment 3 Kevin Vandersloot 2002-03-10 14:58:00 UTC
*** Bug 73990 has been marked as a duplicate of this bug. ***
Comment 4 Chris Chabot 2002-03-11 00:33:48 UTC
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 ;-)
Comment 5 Luis Villa 2002-03-13 22:00:09 UTC
Upping to high because of the dups; wipro folks may pick up.
Comment 6 Luis Villa 2002-03-15 23:20:50 UTC
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.
Comment 7 Kevin Vandersloot 2002-03-20 01:35:07 UTC
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?
Comment 8 Kevin Vandersloot 2002-03-20 01:36:01 UTC
*** Bug 75388 has been marked as a duplicate of this bug. ***
Comment 9 Chris Chabot 2002-03-20 11:10:42 UTC
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)
Comment 10 Fredrik Henrysson 2002-03-20 12:53:56 UTC
I can't reproduce it with the latest snapshot from Red-Carpet. 
Comment 11 Chris Chabot 2002-03-20 13:58:13 UTC
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?)
Comment 12 Fredrik Henrysson 2002-03-28 09:27:21 UTC
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

Thread 1 (Thread 1024 (LWP 9827))

  • #0 __wait4
    from /lib/i686/libc.so.6
  • #1 __DTOR_END__
    from /lib/i686/libc.so.6
  • #2 waitpid
    at wrapsyscall.c line 172
  • #3 libgnomeui_segv_handle
    at gnome-ui-init.c line 593
  • #4 pthread_sighandler
    at signals.c line 97
  • #5 <signal handler called>
  • #6 g_logv
  • #7 g_log
  • #8 update_info
    at proctable.c line 584
  • #9 refresh_list
    at proctable.c line 754
  • #10 proctable_update_list
    at proctable.c line 820
  • #11 proctable_update_all
    at proctable.c line 832
  • #12 cb_timeout
    at callbacks.c line 597
  • #13 g_timeout_dispatch
    at gmain.c line 2980
  • #14 g_main_dispatch
    at gmain.c line 1617
  • #15 g_main_context_dispatch
    at gmain.c line 2161
  • #16 g_main_context_iterate
    at gmain.c line 2242
  • #17 g_main_loop_run
    at gmain.c line 2462
  • #18 gtk_main
    at gtkmain.c line 916
  • #19 main
    at procman.c line 546
  • #20 __libc_start_main
    at ../sysdeps/generic/libc-start.c line 129
  • #0 __wait4
    from /lib/i686/libc.so.6
  • #0 __wait4
    from /lib/i686/libc.so.6
  • #1 __DTOR_END__
    from /lib/i686/libc.so.6
  • #2 waitpid
    at wrapsyscall.c line 172
  • #3 libgnomeui_segv_handle
    at gnome-ui-init.c line 593
  • #4 pthread_sighandler
    at signals.c line 97
  • #5 <signal handler called>
  • #6 g_logv

Comment 13 Kevin Vandersloot 2002-03-28 13:37:12 UTC
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?
Comment 14 Fredrik Henrysson 2002-03-28 14:08:34 UTC
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.

Comment 15 Kevin Vandersloot 2002-03-28 23:53:52 UTC
Oh Frederik, also what processes if any are in your hidden process list?
Comment 16 Luis Villa 2002-04-10 22:20:29 UTC
*** Bug 77071 has been marked as a duplicate of this bug. ***
Comment 17 Fredrik Henrysson 2002-04-23 10:55:34 UTC
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?
Comment 18 Kevin Vandersloot 2002-04-28 17:44:17 UTC
Frederik: what are your preference settings. Also do you have any
hidden processes?
Comment 19 Fredrik Henrysson 2002-04-28 18:11:02 UTC
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.


Comment 20 Luis Villa 2002-04-29 14:45:47 UTC
Cc'ing Michele so that he can take a look and respond to some of the
questions, since he is seeing this as well :/
Comment 21 Luis Villa 2002-04-29 14:45:54 UTC
*** Bug 80213 has been marked as a duplicate of this bug. ***
Comment 22 Michele Campeotto 2002-04-29 15:00:26 UTC
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.
Comment 23 Fredrik Henrysson 2002-04-29 16:06:20 UTC
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.

Comment 24 Heath Harrelson 2002-04-30 17:20:27 UTC
*** Bug 80353 has been marked as a duplicate of this bug. ***
Comment 25 Luis Villa 2002-05-01 08:17:51 UTC
Several dups; marking 2.0.0. If it still isn't duplicable for you,
Kevin, feel free to punt, I guess.
Comment 26 Kevin Vandersloot 2002-05-06 20:59:21 UTC
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?
Comment 27 Luis Villa 2002-05-12 22:47:22 UTC
*** Bug 81572 has been marked as a duplicate of this bug. ***
Comment 28 Kevin Vandersloot 2002-05-15 23:08:59 UTC
*** Bug 81648 has been marked as a duplicate of this bug. ***
Comment 29 Kevin Vandersloot 2002-05-16 01:09:37 UTC
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.
Comment 30 Kevin Vandersloot 2002-05-16 01:46:53 UTC
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.
Comment 31 Kevin Vandersloot 2002-05-16 01:47:48 UTC
Created attachment 8501 [details]
test case to reproduce the crash
Comment 32 Kristian Rietveld 2002-05-16 21:03:56 UTC
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]
Comment 33 Kristian Rietveld 2002-05-16 21:56:25 UTC
Hmm, following patch seems to fix it. Yes, one missing line was
causing these crashes :).

Jonathan, can I commit this?
Comment 34 Kristian Rietveld 2002-05-16 21:57:04 UTC
Created attachment 8522 [details] [review]
fix
Comment 35 Kristian Rietveld 2002-05-16 21:58:07 UTC
Kevin, thanks a lot for the testcase btw.

/me likes testcases

Comment 36 Kristian Rietveld 2002-05-16 22:21:08 UTC
committed on both branches.