[#81492] [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid — normalperson@...

Issue #13618 has been reported by normalperson (Eric Wong).

12 messages 2017/06/01

[ruby-core:81865] [Ruby trunk Bug#13425] Tracer.onにした状態でSystemStackErrorを発生させるとSegmentation fault

From: usa@...
Date: 2017-06-30 12:21:42 UTC
List: ruby-core #81865
Issue #13425 has been updated by usa (Usaku NAKAMURA).

Backport changed from 2.2: UNKNOWN, 2.3: REQUIRED, 2.4: REQUIRED to 2.2: UNKNOWN, 2.3: DONE, 2.4: REQUIRED

ruby_2_3 r59232 merged revision(s) 58334,58346,58349.

----------------------------------------
Bug #13425: Tracer.onにした状態でSystemStackErrorを発生させるとSegmentation fault
https://bugs.ruby-lang.org/issues/13425#change-65589

* Author: masato_hi (Masato Hi)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
* Backport: 2.2: UNKNOWN, 2.3: DONE, 2.4: REQUIRED
----------------------------------------
Ruby2.4.0, 2.4.1の環境にて以下のコードのように SystemStackError: stack level too deep が発生するコードをTracerを有効化した状態で実行するとSegmentation faultや無限ループが発生する。

以下のコードは常にSegmentation faultを発生させる。

``` ruby
require 'tracer'

Tracer.on

class HogeError < StandardError
  def to_s
    message
  end
end

HogeError.new.to_s #=> Segmentation fault
```

以下のコードはフリーズ(おそらく何も出力しない無限ループ)する。
また、pry (0.10.4), pry-byebug (3.4.2)が入った環境でpry上で以下のコードを実行すると #0: を出力し続ける無限ループが発生する(添付画像参照)。

``` ruby
require 'tracer'

Tracer.on

def hoge
  hoge
end

hoge #=> freeze or infinite loop
```

Ruby 2.3.0及び2.3.1では発生していない。

### 実行環境
macOS 10.12, Debian 8.6

---Files--------------------------------
Untitled.png (441 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next