[#42194] Enhancing Numeric#step — "Akinori MUSHA" <knu@...>

 Numeric#step の仕様の拡張を提案します。

26 messages 2010/09/08
[#42196] Re: Enhancing Numeric#step — Yukihiro Matsumoto <matz@...> 2010/09/08

まつもと ゆきひろです

[#42200] Re: Enhancing Numeric#step — "Akinori MUSHA" <knu@...> 2010/09/08

At Wed, 8 Sep 2010 22:46:57 +0900,

[#42204] Re: Enhancing Numeric#step — Yukihiro Matsumoto <matz@...> 2010/09/09

まつもと ゆきひろです

[#42232] 1.9.2 readline can't handle cursorkeys, mbcs chars etc (msvcrt) — arton <artonx@...>

artonです。

11 messages 2010/09/10

[#42269] [Ruby 1.9-Bug#3836] Kernel.system, spawnがスペースを含むパスで動作しない — Hiroki Najima <redmine@...>

チケット #3836 が更新されました。 (by Hiroki Najima)

12 messages 2010/09/16
[#42270] WindowsでのKernel.systemの挙動、一貫性について — NAJIMA Hiroki <h.najima@...> 2010/09/16

名島(Nazy)と申します。

[#42310] ビジースレッドがあるとコンテキストスイッチが起きづらくなる — kuwamoto shintaro <beuniv@...>

こんにちは。

9 messages 2010/09/29
[#42315] [bug:trunk] ビジースレッドがあるとコンテキストスイッチが起きづらくなる — "U.Nakamura" <usa@...> 2010/09/30

こんにちは、なかむら(う)です。

[ruby-dev:42176] Re: [Ruby 1.9-Bug#3781][Open] FIBER_USE_NATIVE が有効だと落ちるスクリプトがある

From: "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
Date: 2010-09-03 09:01:34 UTC
List: ruby-dev #42176
きしもとです

On Fri, 3 Sep 2010 15:30:39 +0900
Satoshi Shiba <shiba@rvm.jp> wrote:
> 芝と申します。
> 
> Makoto Kishimoto wrote:
> > Bug #3781: FIBER_USE_NATIVE が有効だと落ちるスクリプトがある
> > http://redmine.ruby-lang.org/issues/show/3781
> > 
> > 起票者: Makoto Kishimoto
> > ステータス: Open, 優先度: Normal
> > カテゴリ: core, Target version: 1.9.3
> > ruby -v: ruby 1.9.3dev (2010-09-01 trunk 29159) [x86_64-freebsd8.0]
> > 
> > 手元のスクリプト(再現る最小のケースを絞り込むのが無理そうなので、そのまま添付します)が、FIBER_USE_NATIVE が有効な ruby で落ちます。
> > 
> > x86-64 FreeBSD と i686 Linux で落ちかたは違いました。ruby の吐くメッセージとバックトレースを以下そぞれ付けます。
> 
> 落ちる原因を調べたので、ご報告いたします。
> 
> i686 Linux 環境で調べたところ、gc 中に C のスタックオーバーフローを起こ
> すことが原因のようです。
> 
> [BUG] object allocation during garbage collection phase
> というメッセージは、gc 中に C のスタックオーバーフローが発生し、それに対
> するバックトレースを生成しようとして吐いているみたいです。
> 
> きしもとさんからのご報告にあったバックトレースを見れば分かるように、gc
> 時に C のスタックが結構な勢いで伸びているため(これぐらい普通なのか
> な)、C のスタック領域を64KBしか確保しない現在の Fiber の実装だと C のス
> タック領域が GC 中に足りなくなってしまっているようです。
> 
> 下のパッチのように Fiber に対して割り当てる C のスタックサイズを増やせ
> ば、(根本的な解決には全くなっていませんが)きしもとさんからのご報告に添
> 付されていた reduct.rb で落ちることはなくなりました。
> 
> GC 中にスタックオーバーフローが発生しそうなときって今はどう対応してるん
> でしょう? gc.c 内の stack_check() の返り値が 1 になっても特に例外を吐く
> ようなことはしていないみたいなんですが。

差分を試したところ、i686 Linux では落ちなくなりました。
どうもえらくGCと相性の悪い構造を内部で作ってしまうらしく、スクリプト内の
tarai 100 50 0 を tarai 1000 500 0 とするとやはり落ちます。

x86-64 FreeBSD では、差分を当ててみてもほぼ同じように落ちました。

In This Thread