[#27919] 1.8.4 Preview2 検証 — "URABE Shyouhei aka. mput" <root@...>

卜部です。

33 messages 2005/12/01

[#27997] 1.8.4 documents? — "URABE Shyouhei aka. mput" <root@...>

卜部です。

22 messages 2005/12/12
[#28017] Re: 1.8.4 documents? — Koji Arai <jca02266@...> 2005/12/13

新井です。

[#28082] ruby_1_8 Segmentation fault on Cygwin — yanagi@...

柳田です。

13 messages 2005/12/21
[#28083] Re: ruby_1_8 Segmentation fault on Cygwin — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/12/21

山本です。

[#28140] ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError) — Tanaka Akira <akr@...17n.org>

HP-UX で HP aC++/ANSI C を使って作った ruby で、openssl や drb のテストをすると、

34 messages 2005/12/27
[#28141] Re: ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError) — WATANABE Tetsuya <Tetsuya.WATANABE@...> 2005/12/28

渡辺哲也です。

[#28142] Re: ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError) — Tanaka Akira <akr@...17n.org> 2005/12/28

In article <200512280307.jBS37nnj005909@pbsg500.nifty.com>,

[#28147] Re: ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/12/28

山本です。

[#28149] Re: ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError) — Tanaka Akira <akr@...17n.org> 2005/12/28

In article <20051228210640.13C71A10.ocean@m2.ccsnet.ne.jp>,

[#28151] Re: ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError) — WATANABE Tetsuya <Tetsuya.WATANABE@...> 2005/12/29

渡辺哲也です。

[#28152] Re: ia64-hpux11.23/socket.sl: this executable file can't load extensionlibraries (LoadError) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/12/29

山本です。

[#28153] Re: ia64-hpux11.23/socket.sl: this executable file can't load extensionlibraries (LoadError) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/12/29

山本です。

[#28154] thread based generator.rb — Tanaka Akira <akr@...17n.org> 2005/12/29

In article <20051229114438.44D19F00.ocean@m2.ccsnet.ne.jp>,

[ruby-dev:28046] Re: ruby 1.8 dumps core

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2005-12-19 03:09:21 UTC
List: ruby-dev #28046
山本です。

>rb_funcall では甘いんじゃないですかね。
>
>次のように ruby_xmalloc とかの garbage_collect 呼び出し条件
>を細工して常に GC させるようにすると、[ruby-dev:27905] のパッ
>チを当てても yaml っぽい感じで落ちます。

完治は無理でも、直せるところは直しておこうと HEAD でいじってみた結果、
私の環境では RUBY_ALWAYS_GC で SEGV することはなくなりました。しかしながら、

  1) Error:
test_circular_references(YAML_Unit_Tests):
TypeError: can't convert Hash into String
    E:/ruby-cvs/ruby/lib/yaml.rb:133:in `load'
    E:/ruby-cvs/ruby/test/yaml/test_yaml.rb:1226:in `test_circular_references'

というエラーが毎回報告され、どうにも解消できません。(RUBY_ALWAYS_GC をつけずに
普通に testrb yaml すると報告されません)

デバッガを追った感じでは、メンバ変数が 0 フィルされたような妙な SyckNode が
syck_defaultresolver_node_import に渡ってきており、それが引き金になっている
ようにも見えましたがよくわかりません。(解放済みのノード?)

syck は rubyext.c 以外は python php などと共通で、ruby 固有の記述を持ち込めない
というのが非常にデバッグしにくいです。本来なら VALUE を持ちまわして、必要なとき
だけ生ポインタを取り出すのだと思いますが、それができません。

VALUE
syck_scalar_value_set( self, val )
    VALUE self, val;
{
    SyckNode *node;
    Data_Get_Struct( self, SyckNode, node );

    StringValue( val );
    node->data.str->ptr = RSTRING(val)->ptr;
    node->data.str->len = RSTRING(val)->len;
    node->data.str->style = scalar_none;

    rb_iv_set( self, "@value", val );
    return val;
}

というように、RString の内部ポインタを取り出して保存するのがいかにも
怪しい感じでしたがこれも直接の原因ではなく、

syck_parser_assign_io で port がどこでも mark されなくなってしまうのが
原因かと思い、いじっていると返ってエラーが増えたり、

rb_syck_load_handler で 

    if (n->id > 0 && !NIL_P(obj))
    {
        MEMCPY((void *)n->id, (void *)obj, RVALUE, 1);
        MEMZERO((void *)obj, RVALUE, 1);
        obj = n->id;
    }

なんて RValue をコピーしているのがいかにも怪しげでしたがここは実行されて
おらず・・・・

こんな状態ですが、1.8 へのバックポートについて検討していただければ幸いです。


In This Thread