[#39606] [Feature:trunk] Dir instance methods for relative path — Nobuyoshi Nakada <nobu@...>

なかだです。

15 messages 2009/11/02
[#39607] Re: [Feature:trunk] Dir instance methods for relative path — Yukihiro Matsumoto <matz@...> 2009/11/02

まつもと ゆきひろです

[#39611] Re: [Feature:trunk] Dir instance methods for relative path — KOSAKI Motohiro <kosaki.motohiro@...> 2009/11/02

kosakiです

[#39660] [Bug:trunk] Enumerator.new {|y| y << 1 << 2 << 3 } — Yusuke ENDOH <mame@...>

遠藤です。

14 messages 2009/11/11
[#39661] Re: [Bug:trunk] Enumerator.new {|y| y << 1 << 2 << 3 } — Tanaka Akira <akr@...> 2009/11/11

In article <e0b1e5700911110537u2aacf835pc0aea13d89a92cef@mail.gmail.com>,

[#39685] [Feature #2366] private constant — Yusuke Endoh <redmine@...>

Feature #2366: private constant

23 messages 2009/11/14
[#39689] [Feature #2366] private constant — Yusuke Endoh <redmine@...> 2009/11/14

チケット #2366 が更新されました。 (by Yusuke Endoh)

[#40207] Re: [Feature #2366] private constant — Yusuke ENDOH <mame@...> 2010/01/28

遠藤です。

[#40239] Re: [Feature #2366] private constant — Masatoshi SEKI <m_seki@...> 2010/01/29

=1B$B31$H$$$$$^$9!#=1B(B

[#40243] Re: [Feature #2366] private constant — Yusuke ENDOH <mame@...> 2010/01/29

遠藤です。

[#40246] Re: [Feature #2366] private constant — Masatoshi SEKI <m_seki@...> 2010/01/29

=1B$B31$H$$$$$^$9!#=1B(B

[#40247] Re: [Feature #2366] private constant — "NARUSE, Yui" <naruse@...> 2010/01/29

成瀬です。

[#39720] hidden objectって? — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

15 messages 2009/11/18
[#39721] Re: hidden objectって? — Yukihiro Matsumoto <matz@...> 2009/11/18

まつもと ゆきひろです

[#39726] Re: hidden objectって? — keiju@... (石塚圭樹) 2009/11/19

けいじゅ@いしつかです.

[#39727] Re: hidden objectって? — Yukihiro Matsumoto <matz@...> 2009/11/19

まつもと ゆきひろです

[#39730] Re: hidden objectって? — keiju@... (石塚圭樹) 2009/11/19

けいじゅ@いしつかです.

[#39735] [Bug:trunk] r25230 causes SEGV arround Marshal — "NARUSE, Yui" <naruse@...> 2009/11/19

以下のコミット以降、後述の現象が発生するそうです。

[#39755] RbConfig.rubybin — Tanaka Akira <akr@...>

ruby コマンドのパス名を返す RbConfig.rubybin というメソッド

18 messages 2009/11/23
[#39756] Re: RbConfig.rubybin — Kouhei Sutou <kou@...> 2009/11/23

須藤です。

[#39814] Re: RbConfig.rubybin — Tanaka Akira <akr@...> 2009/11/30

In article <20091123.123808.1122146273169400964.kou@cozmixng.org>,

[#39815] Re: RbConfig.rubybin — KOSAKI Motohiro <kosaki.motohiro@...> 2009/11/30

> In article <20091123.123808.1122146273169400964.kou@cozmixng.org>,

[#39796] バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

14 messages 2009/11/27
[#39800] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — Yukihiro Matsumoto <matz@...> 2009/11/27

まつもと ゆきひろです

[#39803] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — keiju@... (石塚圭樹) 2009/11/27

けいじゅ@いしつかです.

[#39805] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — Yukihiro Matsumoto <matz@...> 2009/11/28

まつもと ゆきひろです

[#39806] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — keiju@... (石塚圭樹) 2009/11/28

けいじゅ@いしつかです.

[#39807] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — Yukihiro Matsumoto <matz@...> 2009/11/28

まつもと ゆきひろです

[ruby-dev:39803] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる

From: keiju@... (石塚圭樹)
Date: 2009-11-27 14:09:57 UTC
List: ruby-dev #39803
けいじゅ@いしつかです.

In [ruby-dev:39800] the message: "[ruby-dev:39800] Re: バグ? ブロック
引数で to_ary が呼ばれる必要のない場面で呼ばれる", on Nov/27
22:32(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです

>呼ばれる必要はないと思います。

ですよねぇ.

>|ただ, 簡単な再現スクリプトを作ってもこの現象は再現しませんので, 何か特
>|殊な条件が重なると発生するようです...
>うーん、直しようがない。

ですよねぇぇ...

>これなんですけど、確かに直接呼ぶんですけど、rescueしてるはず
>です。ので、例外が発生するのはやっぱりおかしいです。大規模な
>プログラムで小規模な再現パターンを抽出できないと言うのは同情
>しますが、それでもあまりに情報がないので対処しようがありませ
>ん。せめて「to_ary がないと怒られてしまう」ではなくて、どんな
>エラーメッセージなのか、できるだけ生のメッセージをいただくと
>かいうわけにはいきませんでしょうか。

あー. すいません. こんな感じです:

CONT#1 bjob.rb[214] BHere#rescue in create_nodes: undefined method `to_ary' for #<Fairy::Export:0x995d888>
-- peer side --
/home/keiju/public/a.research/fairy/git/fairy/lib/fairy/backend/bjob.rb:304:in `call'
/home/keiju/public/a.research/fairy/git/fairy/lib/fairy/backend/bjob.rb:304:in `each_export_by'
/

>あと、r25556だと、methog_missingが定義してあるかどうかで挙動
>が変わります(定義されてないと例外処理をショートカットする)。
>そのへんも織り込むと再現パターンを作れないでしょうか。

おー. すばらしいヒントです. to_aryがないと例外が出ているのは, リモート
オブジェクトで, method_missingを定義してありました.

おかげで再現スクリプトができました. ちょっと入り組んでいますが... 元の
コードからスケルトンを抜き出して作ったので...

これを実行すると問題の例外が発生します. (2)をコメントアウトし(1)に入れ
替えると例外が起らなくなります.

--
class A
  def create_nodes
    BO.assign_ntasks(self, "dummy1") do 
      |ntask, mapper, opts={}|
      create_and_add_node(ntask, mapper, opts)
    end
  end

  def create_and_add_node(ntask, mapper, opts={})
    node = create_node(ntask) {|node|
    }
  end

  def create_node(ntask, *params, &block)
    block.call("dummy2")
  end

  def each_assigned_filter(&block)
#    loop do 
      block.call D.new
 #   end 
  end

  def each_export_by(njob, mapper, &block)
#    block.call njob.export, :foo=>:bar #(1)
    block.call njob.export              #(2)
  end
end

class B
  def assign_ntasks(target_bjob, create_node_mutex, &block)
    target_bjob.each_assigned_filter do |input_filter|
      @c = C.new(input_filter, self, target_bjob)
      assign_ntask(&block)
    end
  end

  def assign_ntask(&block)
    @c.assign_ntask(&block)
  end

  def assign_new_processor(bjob, &block)
    create_processor("dummy9", bjob, &block)
  end

  def create_processor(node, bjob, &block)
    yield "dummy10"
  end
end

class C
  def initialize(a, b, d)
    @a = a
    @b = b
    @d = d

    @cx = CX.new(self)
  end
  
  attr_reader :a, :b, :d

  def assign_ntask(&block)
    @cx.assign_ntask(&block)
  end

end

class CX

  def initialize(c)
    @c = c
  end

  def assign_ntask(&block)
    @c.d.each_export_by(@c.a, self) do |export, opts={}|

      p export
      p opts

      @c.b.assign_new_processor("dummy5") do |processor|
	block.call("dummy6", "dummy7", opts)
      end
    end
  end
end

class D
  def export
    E.new
  end
end

class E
  def method_missing(method, *args, &block)
    raise NoMethodError, method
  end
end


BO = B.new

A.new.create_nodes



__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---

In This Thread