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

From: nagachika00@...
Date: 2017-07-09 19:49:09 UTC
List: ruby-core #81979
Issue #13425 has been updated by nagachika (Tomoyuki Chikanaga).

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

ruby_2_4 r59297 merged revision(s) 58334,58346,58349.

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

* 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: DONE
----------------------------------------
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