Kou, i found it, narrowed it down to the attached script.
tested it with rg2 Revision: 3589
affected ruby versions:
ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-linux]
here are my results:
ruby for x in /opt/ruby-gnome2/*; do echo -n "-I$x/lib -I$x -I$x/src/lib -I$x/src "; done
ruby/gc_bug_attempt.rb
“ruby:1.8.6, gtk:[2, 14, 7],rg2:[0, 19, 0]”
“start 02”
“created: #<Gtk::TreeView:0xb5dc76c4 ptr=0x827f050>”
“start 03”
“destroying: #<Gtk::TreeView:0xb5dc76c4 ptr=0x827f050>”
ruby/gc_bug_attempt.rb:33: [BUG] object allocation during garbage
collection phase
ruby 1.8.6 (2008-08-11) [i686-linux]
ruby/gc_bug_attempt.rb:33: [BUG] Segmentation fault
ruby 1.8.6 (2008-08-11) [i686-linux]
unaffected ruby version: ruby 1.8.6 (2008-03-03 patchlevel 114)
[i686-linux]
ruby for x in /opt/ruby-gnome2/*; do echo -n "-I$x/lib -I$x -I$x/src/lib -I$x/src "; done
ruby/gc_bug_attempt.rb
Xlib: extension “RANDR” missing on display “:0.0”.
“ruby:1.8.6, gtk:[2, 14, 7],rg2:[0, 19, 0]”
“start 02”
“created: #<Gtk::TreeView:0xb5d7f720 ptr=0x845a030>”
“start 03”
“destroying: #<Gtk::TreeView:0xb5d7f720 ptr=0x845a030>”
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
“created: #<Gtk::TreeView:0xb5d7f6f8 ptr=0x845a200>”
“start 04”
“destroying: #<Gtk::TreeView:0xb5d7f6f8 ptr=0x845a200>”
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
ruby/gc_bug_attempt.rb:20: warning: GRClosure invoking callback: already
destroyed
“created: #<Gtk::TreeView:0xb5d7f6bc ptr=0x845a3d0>”
…
if i trigger GC myself, then it needs 2 runs, if not, it needs around 11
runs on my athlon64/x86_32/3G ram, gentoo
just run it and press the button until the bug appears.
another thing, i got a question, at line 42 there is a block, is there
wrong something with that? i’d like to use that, i want to save some
settings done by the user on TreeViewColumn.destroy
hope it helps finding it
thank you
balint