ただただしです。

「tDiary 2.0.2をruby 1.8.3上で動かすとSegmentation faultになる」という報
告をあちこちで受けてまして、原因を探ろうとしたんですがGCに行き当たってし
まいお手上げです。確実に再現する環境も特定できていませんが、アドバイスい
ただけますか。

gdbでbacktrace取ってみたんですけど、こんな感じでいいんでしょうか。OSは
Debian sargeです:

---- ここから ----
Program received signal SIGSEGV, Segmentation fault.
gc_mark_children (ptr=18494968, lev=13) at gc.c:753
753       if (obj->as.basic.flags == 0) return;       /* free cell */
(gdb) bt                     
#0  gc_mark_children (ptr=18494968, lev=13) at gc.c:753
#1  0x0806ea47 in gc_mark_children (ptr=1076451708, lev=12) at gc.c:855
#2  0x0806e358 in mark_entry (key=12521, value=66, lev=66) at gc.c:648
#3  0x080af9f7 in st_foreach (table=0x81e6f40, func=0x806e340 <mark_entry>, arg=11)
    at st.c:496              
#4  0x0806e385 in mark_tbl (tbl=0x0, lev=66) at gc.c:658
#5  0x0806e63e in gc_mark_children (ptr=1076452708, lev=11) at gc.c:910
#6  0x0806e358 in mark_entry (key=2937, value=66, lev=66) at gc.c:648
#7  0x080af9f7 in st_foreach (table=0x81e6fd0, func=0x806e340 <mark_entry>, arg=10)
    at st.c:496              
#8  0x0806e385 in mark_tbl (tbl=0x0, lev=66) at gc.c:658
#9  0x0806e64d in gc_mark_children (ptr=1076452628, lev=10) at gc.c:911
#10 0x0806e61a in gc_mark_children (ptr=1076448548, lev=9) at gc.c:905
#11 0x0806e358 in mark_entry (key=10373, value=66, lev=66) at gc.c:648
#12 0x080af9f7 in st_foreach (table=0x81e4b88, func=0x806e340 <mark_entry>, arg=8)
    at st.c:496              
#13 0x0806e385 in mark_tbl (tbl=0x0, lev=66) at gc.c:658
#14 0x0806e64d in gc_mark_children (ptr=1076457388, lev=8) at gc.c:911
#15 0x0806e358 in mark_entry (key=10293, value=66, lev=66) at gc.c:648
#16 0x080af9f7 in st_foreach (table=0x80fc5c0, func=0x806e340 <mark_entry>, arg=7)
    at st.c:496              
#17 0x0806e385 in mark_tbl (tbl=0x0, lev=66) at gc.c:658
#18 0x0806e64d in gc_mark_children (ptr=1075658016, lev=7) at gc.c:911
#19 0x0806e358 in mark_entry (key=2937, value=66, lev=66) at gc.c:648
#20 0x080af9f7 in st_foreach (table=0x80fc8c8, func=0x806e340 <mark_entry>, arg=6)
    at st.c:496              
#21 0x0806e385 in mark_tbl (tbl=0x0, lev=66) at gc.c:658
#22 0x0806e64d in gc_mark_children (ptr=1075657956, lev=6) at gc.c:911
#23 0x0806e61a in gc_mark_children (ptr=1075657996, lev=5) at gc.c:905
#24 0x0806e358 in mark_entry (key=2937, value=66, lev=66) at gc.c:648
#25 0x080af9f7 in st_foreach (table=0x80fca60, func=0x806e340 <mark_entry>, arg=4)
    at st.c:496              
#26 0x0806e385 in mark_tbl (tbl=0x0, lev=66) at gc.c:658
#27 0x0806e64d in gc_mark_children (ptr=1075657916, lev=4) at gc.c:911
#28 0x0806e61a in gc_mark_children (ptr=1075648416, lev=3) at gc.c:905
#29 0x0806e61a in gc_mark_children (ptr=1075648436, lev=2) at gc.c:905
#30 0x0806e61a in gc_mark_children (ptr=1076030388, lev=1) at gc.c:905
#31 0x0806e313 in mark_locations_array (x=0xbfff6f58, n=0) at gc.c:626
#32 0x0806f11e in rb_gc_mark_frame (frame=0xbfff6ea0) at gc.c:1268#33 0x0806f2cb in garbage_collect () at gc.c:1336
#34 0x0806df35 in rb_newobj () at gc.c:391
#35 0x0808553b in rb_class_allocate_instance (klass=66) at object.c:1580
#36 0x08068751 in call_cfunc (func=0x8085530 <rb_class_allocate_instance>,
    recv=1076103968, len=0, argc=0, argv=0x0) at eval.c:5536
#37 0x0805c40a in rb_call0 (klass=1075657956, recv=1076103968, id=1, oid=66, argc=0,
    argv=0x0, body=0x401d3c80, flags=2) at eval.c:5672
#38 0x0805ccf5 in rb_call (klass=1075657956, recv=1076103968, mid=1, argc=0,
    argv=0x0, scope=1) at eval.c:5900
#39 0x0805d024 in vafuncall (recv=1076103968, mid=66, n=0, ar=0xbfff6934)
    at ruby.h:638            
#40 0x0805d0ac in rb_funcall (recv=66, mid=66, n=66) at eval.c:5994
#41 0x080854dc in rb_obj_alloc (klass=1076103968) at object.c:1568
#42 0x0807ec43 in r_object0 (arg=0xbfff6cf0, proc=0, ivp=0x0, extmod=4)
---Type <return> to continue, or q <return> to quit---
    at marshal.c:1272        
#43 0x0807ee57 in r_object (arg=0x42) at marshal.c:1356
#44 0x0807e7db in r_object0 (arg=0xbfff6cf0, proc=0, ivp=0xbfff6cf0, extmod=4)
    at marshal.c:1170        
#45 0x0807ee57 in r_object (arg=0x42) at marshal.c:1356
#46 0x0807e0e3 in r_ivar (obj=1075659940, arg=0xbfff6cf0) at marshal.c:967
#47 0x0807e549 in r_object0 (arg=0xbfff6cf0, proc=0, ivp=0xbfff6cf0, extmod=4)
    at marshal.c:1022        
#48 0x0807ee57 in r_object (arg=0x42) at marshal.c:1356
#49 0x0807eda9 in r_object0 (arg=0xbfff6cf0, proc=0, ivp=0x401d4530, extmod=21)
    at marshal.c:1184        
#50 0x0807ee57 in r_object (arg=0x42) at marshal.c:1356
#51 0x0807eda9 in r_object0 (arg=0xbfff6cf0, proc=0, ivp=0x4022e510,
    extmod=4294967295) at marshal.c:1184
#52 0x0807ee57 in r_object (arg=0x42) at marshal.c:1356
#53 0x0805bd19 in rb_ensure (b_proc=0x807ee60 <load>, data1=3221187824,
    e_proc=0x807ee70 <load_ensure>, data2=3221187824) at eval.c:5342
#54 0x0807effe in marshal_load (argc=66, argv=0x42) at marshal.c:1429
#55 0x0806874a in call_cfunc (func=0x807ee90 <marshal_load>, recv=1075590076, len=0,
    argc=0, argv=0xbfff6f58) at eval.c:5533
#56 0x0805c40a in rb_call0 (klass=1075590016, recv=1075590076, id=9537, oid=66,
    argc=1, argv=0xbfff6f58, body=0x401c331c, flags=0) at eval.c:5672
#57 0x0805ccf5 in rb_call (klass=1075590016, recv=1075590076, mid=9537, argc=1,
    argv=0xbfff6f58, scope=0) at eval.c:5900
#58 0x08057d6f in rb_eval (self=1076031228, n=0x42) at ruby.h:638
#59 0x0805c723 in rb_call0 (klass=1076036508, recv=1076031228, id=9537, oid=66,
    argc=0, argv=0xbfff778c, body=0x402af688, flags=-1073776756) at eval.c:5806
#60 0x0805ccf5 in rb_call (klass=1076036508, recv=1076031228, mid=9537, argc=1,
    argv=0xbfff7788, scope=1) at eval.c:5900
#61 0x08057d6f in rb_eval (self=1076031228, n=0x42) at ruby.h:638
#62 0x080576ec in rb_eval (self=1076031228, n=0x42) at eval.c:3562
#63 0x0805653c in rb_eval (self=1076031228, n=0x42) at eval.c:2842
#64 0x08057562 in rb_eval (self=1076031228, n=0x42) at eval.c:3236
#65 0x0805c723 in rb_call0 (klass=1076036508, recv=1076031228, id=11145, oid=66,
    argc=0, argv=0x0, body=0x402b02e0, flags=0) at eval.c:5806
#66 0x0805ccf5 in rb_call (klass=1076036508, recv=1076031228, mid=11145, argc=0,
    argv=0x0, scope=0) at eval.c:5900
#67 0x08057d6f in rb_eval (self=1076324868, n=0x42) at ruby.h:638
#68 0x0805714e in rb_eval (self=1076324868, n=0x42) at eval.c:3100
#69 0x0805741a in rb_eval (self=1076324868, n=0x42) at eval.c:3187
#70 0x0805c723 in rb_call0 (klass=1076452708, recv=1076324868, id=12345, oid=66, 
    argc=0, argv=0xbfffa7b0, body=0x401a4a5c, flags=-1073764436) at eval.c:5806
#71 0x0805ccf5 in rb_call (klass=1076452708, recv=1076324868, mid=12345, argc=2, 
    argv=0xbfffa7a8, scope=1) at eval.c:5900
#72 0x08057d6f in rb_eval (self=1076324868, n=0x42) at ruby.h:638
#73 0x0805c723 in rb_call0 (klass=1076452708, recv=1076324868, id=12337, oid=66, 
    argc=0, argv=0xbfffaff0, body=0x401a7e64, flags=-1073762320) at eval.c:5806
#74 0x0805ccf5 in rb_call (klass=1076452708, recv=1076324868, mid=12337, argc=2, 
    argv=0xbfffafe8, scope=0) at eval.c:5900
#75 0x08057d6f in rb_eval (self=1076323848, n=0x42) at ruby.h:638
#76 0x08057619 in rb_eval (self=1076323848, n=0x42) at eval.c:3542
#77 0x0805c723 in rb_call0 (klass=1076291548, recv=1076323848, id=11145, oid=66, 
    argc=0, argv=0xbfffbe9c, body=0x40272594, flags=-1073758564) at eval.c:5806
---Type <return> to continue, or q <return> to quit---
#78 0x0805ccf5 in rb_call (klass=1076291548, recv=1076323848, mid=11145, argc=1, 
    argv=0xbfffbe98, scope=0) at eval.c:5900
#79 0x08057d6f in rb_eval (self=1076324868, n=0x42) at ruby.h:638
#80 0x0805714e in rb_eval (self=1076324868, n=0x42) at eval.c:3100
#81 0x0805653c in rb_eval (self=1076324868, n=0x42) at eval.c:2842
#82 0x0805c723 in rb_call0 (klass=1076448708, recv=1076324868, id=2961, oid=66, 
    argc=0, argv=0xbfffd614, body=0x4021a8dc, flags=-1073752556) at eval.c:5806
#83 0x0805ccf5 in rb_call (klass=1076448708, recv=1076324868, mid=2961, argc=3, 
    argv=0xbfffd608, scope=1) at eval.c:5900
#84 0x0805d1ee in rb_funcall2 (recv=0, mid=66, argc=66, argv=0x42) at ruby.h:638
#85 0x0805f918 in rb_obj_call_init (obj=66, argc=66, argv=0x42) at eval.c:7372
#86 0x080855ac in rb_class_new_instance (argc=66, argv=0x42, klass=66)
    at object.c:1606         
#87 0x0806874a in call_cfunc (func=0x8085580 <rb_class_new_instance>, 
    recv=1076448708, len=0, argc=0, argv=0xbfffd608) at eval.c:5533
#88 0x0805c40a in rb_call0 (klass=1075657976, recv=1076448708, id=3369, oid=66, 
    argc=3, argv=0xbfffd608, body=0x401d2a9c, flags=0) at eval.c:5672
#89 0x0805ccf5 in rb_call (klass=1075657976, recv=1076448708, mid=3369, argc=3, 
    argv=0xbfffd608, scope=0) at eval.c:5900
#90 0x08057d6f in rb_eval (self=1075652976, n=0x42) at ruby.h:638
#91 0x08057619 in rb_eval (self=1075652976, n=0x42) at eval.c:3542
#92 0x0805741a in rb_eval (self=1075652976, n=0x42) at eval.c:3187
#93 0x0805741a in rb_eval (self=1075652976, n=0x42) at eval.c:3187
#94 0x0805e80c in rb_load (fname=1075589376, wrap=0) at eval.c:6685
#95 0x0805f254 in rb_require_safe (fname=1075589476, safe=0) at eval.c:7006
#96 0x08068722 in call_cfunc (func=0x805ece0 <rb_f_require>, recv=1075652976, len=0, 
    argc=0, argv=0xbffff438) at eval.c:5530
#97 0x0805c40a in rb_call0 (klass=1075657876, recv=1075652976, id=9545, oid=66, 
    argc=1, argv=0xbffff438, body=0x401c47a8, flags=2) at eval.c:5672
#98 0x0805ccf5 in rb_call (klass=1075657876, recv=1075652976, mid=9545, argc=1, 
    argv=0xbffff438, scope=1) at eval.c:5900
#99 0x08057d6f in rb_eval (self=1075652976, n=0x42) at ruby.h:638
#100 0x0805418d in ruby_exec_internal () at eval.c:1543
#101 0x080541c6 in ruby_exec () at eval.c:1563
#102 0x080541f0 in ruby_run () at eval.c:1573
#103 0x08052335 in main (argc=66, argv=0x42, envp=0xbffffc0c) at main.c:46
---- ここまで ----


━━━━━━━━━━━━━━━━━━━
ただただし <http://sho.spc.gr.jp/>
    ♪ツッコミは、短く鋭く愛を込めて。
━━━━━━━━━━━━━━━━━━━