[Kazehakase-devel 2909] Re: 起動時に~/.kazehakase/clip.xmlがある場合にsegfault

Back to archive index

Kouhei Sutou kou****@cozmi*****
2008年 9月 9日 (火) 20:48:45 JST


須藤です。

In <61b10****@mail*****>
  "[Kazehakase-devel 2908] Re: 起動時に~/.kazehakase/clip.xmlがある場合にsegfault" on Tue, 9 Sep 2008 17:48:11 +0900,
  "Noritada Kobayashi" <norit****@gmail*****> wrote:

> >> 起動時に~/.kazehakase/clip.xmlがあるとRuby関連のsegfaultが起きる、
> >> というバグで、バックトレースも同バグのバグ報告に収められています。
> >
> > clip.xmlは単にGCのタイミングに関連しているだけかと思います。
> > 例えば、こうすると、clip.xmlがあってももう少し先に進みそうな気がします。
> 
> 確かにGCはタイミングの問題なので、clip.xmlはあまり関係なさそうですね……。

前は手元でも落ちた気がするんですが、今は落ちないんですよね。
(amd64/sid)

とりあえず、kazehakase-init-pre.rbの中でだけGCを止めて切り抜
けるとその後も動きつづけるということはないですか?

> > バックトレースをみると、
> >  #4  0xb6dff787 in str_alloc (klass=3067261960) at string.c:67
> >  #5  0xb6dff80c in str_new (klass=8, ptr=0x81141f8 ":", len=1) at string.c:89
> > となっていて、ソースをみるとstr_new()のklassはそのままstr_alloc()の
> > klassとして渡されるだけなのに大きく値が違っているので、もっと別の
> > 場所で何かが壊れているのだと思います。
> >
> >
> > それは別として、Rubyのend_procsたちは初期化されていてもよさそう
> > な気がします。そうすれば
> >  #1  0xb6d8ad2b in rb_mark_end_proc () at eval.c:7989
> > の中でwhile (link)でループに入ることもなく、gc_mark()も呼ばれないよ
> > うな気もします。
> >
> > ということでRubyにこのパッチを当てると挙動は変わりますか?
> 
> ありがとうございます。
> 当ててインストールしてみたのですが変わりませんでした……。

Rubyがバグっていなくてよかったです。
たぶん、というか、当然というか、風の方がヘボっているんだと思
います。

直せなかったら、最悪、Ruby拡張はdeprecatedということでお願い
します。たぶん、使っている人はいないと思いますし。

といっても、手元で再現しないので直せる気がしないのですが。。。


> # なんかruby1.8にreassignしたんですが、
> # libgtk-ruby1.8のほうにreassignされちゃいました……。

まぁ、どれにいっても私なので。。。




Kazehakase-devel メーリングリストの案内
Back to archive index