# Segfault from rbgtk-tree-view.c

**URL:** <https://www.ruby-forum.com/t/segfault-from-rbgtk-tree-view-c/228699>\
**Category:** Ruby-Gnome 2\
**Created:** [May 3, 2013, 7:25pm UTC](https://www.ruby-forum.com/t/segfault-from-rbgtk-tree-view-c/228699 "2013-05-03T19:25:48Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Detlef\_R](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@Detlef\_R](https://www.ruby-forum.com/u/Detlef_R)\
**Post date:** [May 3, 2013, 7:25pm UTC](https://www.ruby-forum.com/t/segfault-from-rbgtk-tree-view-c/228699/1 "2013-05-03T19:25:48Z")

</div>

Hi,

With github pull request 151 I’ve made the stock browser sample gtk3  
ready. If I scroll up and down in den list view, the program crashes  
with a segfault. It seems to be in the ruby bindings. The original C  
version doesn’t show this behavior.

$ ruby -v  
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86\_64-linux]

Here is the back trace:

Program received signal SIGSEGV, Segmentation fault.  
0x00007ffff7ac7028 in st\_lookup (table=0x7ffff6224bb0,  
key=key@entry=5548, value=value@entry=0x7fffffffc7c8) at st.c:341  
341 st.c: Datei oder Verzeichnis nicht gefunden.  
(gdb) bt  
#0 0x00007ffff7ac7028 in st\_lookup (table=0x7ffff6224bb0,  
key=key@entry=5548, value=value@entry=0x7fffffffc7c8) at st.c:341  
#1 0x00007ffff7b09fd9 in search\_method (klass=klass@entry=25135200,  
id=id@entry=5548) at vm\_method.c:374  
#2 0x00007ffff7b0bef1 in rb\_method\_entry\_get\_without\_cache  
(klass=25135200, id=5548) at vm\_method.c:393  
#3 0x00007ffff7b0bf8e in rb\_method\_entry (klass=,  
id=) at vm\_method.c:426  
#4 0x00007ffff7b1406b in vm\_method\_search (ic=0x133c688,  
klass=, id=) at vm\_insnhelper.c:1379  
#5 vm\_method\_search (ic=0x133c688, klass=, id=) at vm\_exec.c:38  
#6 vm\_exec\_core (th=th@entry=0x603520, initial=initial@entry=0) at  
insns.def:1014  
#7 0x00007ffff7b148b4 in vm\_exec (th=0x603520,  
th@entry=0x107f8b48fb894853) at vm.c:1220  
#8 0x00007ffff7b154d0 in invoke\_block\_from\_c (cref=0x0, blockptr=\<error  
reading variable: Cannot access memory at address 0x107f8b48fb894893\>,  
argv=0x7fffffffcc30, argc=4, self=24423280,  
block=0x17fed10, th=0x107f8b48fb894853) at vm.c:624  
#9 rb\_vm\_invoke\_proc (th=0x107f8b48fb894853, proc=0x17fed10,  
self=24423280, argc=4, argv=0x7fffffffcc30,  
blockptr=\<error reading variable: Cannot access memory at address  
0x107f8b48fb894893\>) at vm.c:670  
#10 0x00007ffff7b15882 in vm\_call0 (th=0x603520, recv=25134120,  
id=, argc=4, argv=0x7fffffffcc30, me=0x708040) at  
vm\_eval.c:79  
#11 0x00007ffff7b17358 in rb\_call0 (self=6, scope=CALL\_FCALL,  
argv=0x7fffffffcc30, argc=, mid=6008, recv=25134120) at  
vm\_eval.c:236  
#12 rb\_call (scope=CALL\_FCALL, argv=0x7fffffffcc30, argc=, mid=6008, recv=25134120) at vm\_eval.c:456  
#13 rb\_funcall (recv=recv@entry=25134120, mid=6008, n=n@entry=4) at  
vm\_eval.c:658  
#14 0x00007ffff002300c in cell\_data\_func (column=0x156b5f0,  
cell=0x15d6d80, model=, iter=,  
func=0x17f8428) at rbgtk-tree-view.c:84  
#15 0x00007fffef9f7c53 in apply\_cell\_attributes (renderer=0x15d6d80,  
info=0x17feb20, data=0x7fffffffce00) at  
/tmp/buildd/gtk+3.0-3.4.2/./gtk/gtkcellarea.c:1284  
#16 0x00007ffff5cedd00 in g\_hash\_table\_foreach (hash\_table=0x176a2a0,  
func=func@entry=0x7fffef9f7b40 \<apply\_cell\_attributes\>,  
user\_data=user\_data@entry=0x7fffffffce00)  
at /tmp/buildd/glib2.0-2.33.12+really2.32.4/./glib/ghash.c:1524  
#17 0x00007fffef9f7af6 in gtk\_cell\_area\_real\_apply\_attributes  
(area=, tree\_model=0x15a3440, iter=0x17a0d00,  
is\_expander=, is\_expanded=)  
at /tmp/buildd/gtk+3.0-3.4.2/./gtk/gtkcellarea.c:1313  
#18 0x00007fffef9fd53f in gtk\_cell\_area\_box\_apply\_attributes  
(area=, tree\_model=tree\_model@entry=0x15a3440,  
iter=iter@entry=0x17a0d00, is\_expander=,  
is\_expanded=) at  
/tmp/buildd/gtk+3.0-3.4.2/./gtk/gtkcellareabox.c:1317  
#19 0x00007fffefab60b8 in  
\_gtk\_marshal\_VOID\_\_OBJECT\_BOXED\_BOOLEAN\_BOOLEANv (closure=0x156bbc0,  
return\_value=, instance=0x15c7000, args=,  
marshal\_data=, n\_params=,  
param\_types=0x149c800) at  
/tmp/buildd/gtk+3.0-3.4.2/./gtk/gtkmarshalers.c:4874  
#20 0x00007ffff5fbc9a7 in \_g\_closure\_invoke\_va (closure=0x156bbc0,  
return\_value=0x0, instance=0x15c7000, args=0x7fffffffd198, n\_params=4,  
param\_types=0x149c800)  
at  
/tmp/buildd/glib2.0-2.33.12+really2.32.4/./gobject/gclosure.c:840  
#21 0x00007ffff5fd5006 in g\_signal\_emit\_valist (instance=0x15c7000,  
signal\_id=, detail=0,  
var\_args=var\_args@entry=0x7fffffffd198)  
at  
/tmp/buildd/glib2.0-2.33.12+really2.32.4/./gobject/gsignal.c:3211  
#22 0x00007ffff5fd5852 in g\_signal\_emit  
(instance=instance@entry=0x15c7000, signal\_id=,  
detail=detail@entry=0)  
at  
/tmp/buildd/glib2.0-2.33.12+really2.32.4/./gobject/gsignal.c:3356  
#23 0x00007fffef9f9954 in gtk\_cell\_area\_apply\_attributes  
(area=0x15c7000, tree\_model=0x15a3440, iter=iter@entry=0x7fffffffd410,  
is\_expander=0, is\_expanded=0)  
at /tmp/buildd/gtk+3.0-3.4.2/./gtk/gtkcellarea.c:2362  
#24 0x00007fffefbca8ad in gtk\_tree\_view\_column\_cell\_set\_cell\_data  
(tree\_column=tree\_column@entry=0x156b5f0, tree\_model=,  
iter=iter@entry=0x7fffffffd410,  
is\_expander=, is\_expanded=) at  
/tmp/buildd/gtk+3.0-3.4.2/./gtk/gtktreeviewcolumn.c:2872  
#25 0x00007fffefbb4246 in gtk\_tree\_view\_bin\_draw (cr=0x15d44d0,  
widget=0x14d8390) at /tmp/buildd/gtk+3.0-3.4.2/./gtk/gtktreeview.c:4956  
#26 gtk\_tree\_view\_draw (widget=0x14d8390, cr=0x15d44d0) at  
/tmp/buildd/gtk+3.0-3.4.2/./gtk/gtktreeview.c:5365  
#27 0x00007fffefaaf47f in \_gtk\_marshal\_BOOLEAN\_\_BOXEDv  
(closure=closure@entry=0xe19d80,  
return\_value=return\_value@entry=0x7fffffffd660,  
instance=instance@entry=0x14d8390,  
args=args@entry=0x7fffffffd828, marshal\_data=,  
n\_params=, param\_types=param\_types@entry=0xc05cb0) at  
/tmp/buildd/gtk+3.0-3.4.2/./gtk/gtkmarshalers.c:130  
#28 0x00007fffefbd4c9e in gtk\_widget\_draw\_marshallerv (closure=0xe19d80,  
return\_value=0x7fffffffd660, instance=0x14d8390, args=0x7fffffffd828,  
marshal\_data=,  
n\_params=, param\_types=0xc05cb0) at  
/tmp/buildd/gtk+3.0-3.4.2/./gtk/gtkwidget.c:850  
#29 0x00007ffff5fbc9a7 in \_g\_closure\_invoke\_va (closure=0xe19d80,  
return\_value=0x7fffffffd660, instance=0x14d8390, args=0x7fffffffd828,  
n\_params=1, param\_types=0xc05cb0)  
at  
/tmp/buildd/glib2.0-2.33.12+really2.32.4/./gobject/gclosure.c:840  
#30 0x00007ffff5fd5006 in g\_signal\_emit\_valist (instance=0x14d8390,  
signal\_id=, detail=0,  
var\_args=var\_args@entry=0x7fffffffd828)  
at  
/tmp/buildd/glib2.0-2.33.12+really2.32.4/./gobject/gsignal.c:3211  
#31 0x00007ffff5fd5852 in g\_signal\_emit  
(instance=instance@entry=0x14d8390, signal\_id=,  
detail=detail@entry=0)  
at  
/tmp/buildd/glib2.0-2.33.12+really2.32.4/./gobject/gsignal.c:3356  
#32 0x00007fffefbe5b4e in \_gtk\_widget\_draw\_internal (clip\_to\_size=1,  
cr=0x15d44d0, widget=0x14d8390) at  
/tmp/buildd/gtk+3.0-3.4.2/./gtk/gtkwidget.c:5828  
#33 \_gtk\_widget\_draw\_internal (widget=0x14d8390, cr=0x15d44d0,  
clip\_to\_size=) at  
/tmp/buildd/gtk+3.0-3.4.2/./gtk/gtkwidget.c:5804  
#34 0x00007fffefbe5d05 in gtk\_widget\_send\_expose  
(widget=widget@entry=0x14d8390, event=event@entry=0x7fffffffd9e0) at  
/tmp/buildd/gtk+3.0-3.4.2/./gtk/gtkwidget.c:6211  
#35 0x00007fffefaaf2a2 in gtk\_main\_do\_event (event=0x7fffffffd9e0) at  
/tmp/buildd/gtk+3.0-3.4.2/./gtk/gtkmain.c:1621  
#36 0x00007ffff14eda60 in \_gdk\_window\_process\_updates\_recurse  
(window=window@entry=0x1835000,  
expose\_region=expose\_region@entry=0x134db60)  
at /tmp/buildd/gtk+3.0-3.4.2/./gdk/gdkwindow.c:3883  
#37 0x00007ffff14eda0a in \_gdk\_window\_process\_updates\_recurse  
(window=window@entry=0x17ffea0,  
expose\_region=expose\_region@entry=0x134db60)  
at /tmp/buildd/gtk+3.0-3.4.2/./gdk/gdkwindow.c:3928  
—Type to continue, or q to quit—  
#38 0x00007ffff14eda0a in \_gdk\_window\_process\_updates\_recurse  
(window=window@entry=0x17ffd80,  
expose\_region=expose\_region@entry=0x134db60)  
at /tmp/buildd/gtk+3.0-3.4.2/./gdk/gdkwindow.c:3928  
#39 0x00007ffff14eda0a in \_gdk\_window\_process\_updates\_recurse  
(window=0x17ffb40, expose\_region=0x134db60) at  
/tmp/buildd/gtk+3.0-3.4.2/./gdk/gdkwindow.c:3928  
#40 0x00007ffff14eceb6 in gdk\_window\_process\_updates\_internal  
(window=window@entry=0x17ffb40) at  
/tmp/buildd/gtk+3.0-3.4.2/./gdk/gdkwindow.c:4069  
#41 0x00007ffff14ed338 in gdk\_window\_process\_all\_updates () at  
/tmp/buildd/gtk+3.0-3.4.2/./gdk/gdkwindow.c:4200  
#42 0x00007ffff14ed3a9 in gdk\_window\_update\_idle (data=)  
at /tmp/buildd/gtk+3.0-3.4.2/./gdk/gdkwindow.c:3818  
#43 0x00007ffff14d0980 in gdk\_threads\_dispatch (data=0x17a86e0) at  
/tmp/buildd/gtk+3.0-3.4.2/./gdk/gdk.c:763  
#44 0x00007ffff5cfd355 in g\_main\_dispatch (context=0x9afda0) at  
/tmp/buildd/glib2.0-2.33.12+really2.32.4/./glib/gmain.c:2539  
#45 g\_main\_context\_dispatch (context=context@entry=0x9afda0) at  
/tmp/buildd/glib2.0-2.33.12+really2.32.4/./glib/gmain.c:3075  
#46 0x00007ffff5cfd688 in g\_main\_context\_iterate (context=0x9afda0,  
block=block@entry=1, dispatch=dispatch@entry=1, self=\<error reading  
variable: Unhandled dwarf expression opcode 0xfa\>)  
at /tmp/buildd/glib2.0-2.33.12+really2.32.4/./glib/gmain.c:3146  
#47 0x00007ffff5cfda82 in g\_main\_loop\_run (loop=0x156c620) at  
/tmp/buildd/glib2.0-2.33.12+really2.32.4/./glib/gmain.c:3340  
#48 0x00007fffefaae3b5 in gtk\_main () at  
/tmp/buildd/gtk+3.0-3.4.2/./gtk/gtkmain.c:1161  
#49 0x00007ffff000f719 in rg\_s\_main (self=) at  
rbgtk.c:185  
#50 0x00007ffff7b19393 in vm\_call\_cfunc (me=0xe11510, blockptr=0x0,  
recv=, num=0, reg\_cfp=0x7ffff6b5af08, th=0x603520) at  
vm\_insnhelper.c:404  
#51 vm\_call\_method (th=th@entry=0x603520, cfp=cfp@entry=0x7ffff6b5af08,  
num=0, blockptr=0x0, flag=, id=,  
me=0xe11510, recv=14658920) at vm\_insnhelper.c:534  
#52 0x00007ffff7b0f229 in vm\_exec\_core (th=th@entry=0x603520,  
initial=initial@entry=0) at insns.def:1015  
#53 0x00007ffff7b148b4 in vm\_exec (th=th@entry=0x603520) at vm.c:1220  
#54 0x00007ffff7b1be9d in rb\_iseq\_eval\_main  
(iseqval=iseqval@entry=6468920) at vm.c:1461  
#55 0x00007ffff7a24e1a in ruby\_exec\_internal (n=0x62b538) at eval.c:204  
#56 0x00007ffff7a258bd in ruby\_exec\_node (n=n@entry=0x62b538) at  
eval.c:251  
#57 0x00007ffff7a2734e in ruby\_run\_node (n=0x62b538) at eval.c:244  
#58 0x000000000040091b in ?? ()  
#59 0x00007fffffffe3b8 in ?? ()  
#60 0x0000000200400920 in ?? ()  
#61 0x00007fffffffe3b0 in ?? ()  
#62 0x0000000000000000 in ?? ()  
(gdb)

Cheers, detlef

---

<div class="post-metadata">

**Author:** ![Detlef\_R](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@Detlef\_R](https://www.ruby-forum.com/u/Detlef_R)\
**Post date:** [May 7, 2013, 3:58pm UTC](https://www.ruby-forum.com/t/segfault-from-rbgtk-tree-view-c/228699/2 "2013-05-07T15:58:43Z")

</div>

Hi,

In [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
“[ruby-gnome2-devel-en] segfault from rbgtk-tree-view.c” on Fri, 03  
May 2013 19:24:24 +0200,  
Detlef R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> With github pull request 151 I’ve made the stock browser sample gtk3  
> ready. If I scroll up and down in den list view, the program crashes  
> with a segfault. It seems to be in the ruby bindings. The original C  
> version doesn’t show this behavior.

Thanks for your report.  
I could reproduce the problem and fixed it.

Could you try again?

## Thanks,

kou

---

<div class="post-metadata">

**Author:** ![Detlef\_R](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@Detlef\_R](https://www.ruby-forum.com/u/Detlef_R)\
**Post date:** [May 8, 2013, 8:21pm UTC](https://www.ruby-forum.com/t/segfault-from-rbgtk-tree-view-c/228699/3 "2013-05-08T20:21:08Z")

</div>

Hi,

Am 07.05.2013 15:57, schrieb Kouhei S.:

> I could reproduce the problem and fixed it.
> 
> Could you try again?

Works like a charm 🙂

Thank you! detlef

---

<div class="post-metadata">

**Author:** ![Detlef\_R](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@Detlef\_R](https://www.ruby-forum.com/u/Detlef_R)\
**Post date:** [May 9, 2013, 2:17pm UTC](https://www.ruby-forum.com/t/segfault-from-rbgtk-tree-view-c/228699/4 "2013-05-09T14:17:52Z")

</div>

Hi,

In [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
“Re: [ruby-gnome2-devel-en] segfault from rbgtk-tree-view.c” on Wed,  
08 May 2013 20:19:30 +0200,  
Detlef R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Am 07.05.2013 15:57, schrieb Kouhei S.:
> 
> > I could reproduce the problem and fixed it.
> > 
> > Could you try again?
> 
> Works like a charm 🙂

Thanks for confirming it!

–  
kou
