[ruby-trunk - Bug #8492][Assigned] ObjectSpace.after_gc_start_hook aborts with GC.stress

Issue #8492 has been reported by naruse (Yui NARUSE).


Bug #8492: ObjectSpace.after_gc_start_hook aborts with GC.stress

Author: naruse (Yui NARUSE)
Status: Assigned
Priority: Normal
Assignee: ko1 (Koichi Sasada)
Category: core
Target version: current: 2.1.0
ruby -v: ruby 2.1.0dev (2013-06-05 trunk 41080) [x86_64-freebsd9.1]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN

以下を実行すると assert(during_gc > 0) に失敗して abort します。
ruby -robjspace
-e’ObjectSpace.after_gc_start_hook=proc{};GC.stress=true;{}’
gc.c:3818 の
gc_event_hook(objspace, RUBY_INTERNAL_EVENT_GC_START, 0 /* TODO: pass
minor/immediate flag? */);
実行後に、during_gc が 0 になっている模様。

Issue #8492 has been updated by nagachika (Tomoyuki C.).

Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN to 1.9.3: DONTNEED,
2.0.0: DONTNEED


Bug #8492: ObjectSpace.after_gc_start_hook aborts with GC.stress

Author: naruse (Yui NARUSE)
Status: Closed
Priority: Normal
Assignee: ko1 (Koichi Sasada)
Category: core
Target version: current: 2.1.0
ruby -v: ruby 2.1.0dev (2013-06-05 trunk 41080) [x86_64-freebsd9.1]
Backport: 1.9.3: DONTNEED, 2.0.0: DONTNEED

以下を実行すると assert(during_gc > 0) に失敗して abort します。
ruby -robjspace
-e’ObjectSpace.after_gc_start_hook=proc{};GC.stress=true;{}’
gc.c:3818 の
gc_event_hook(objspace, RUBY_INTERNAL_EVENT_GC_START, 0 /* TODO: pass
minor/immediate flag? */);
実行後に、during_gc が 0 になっている模様。

Issue #8492 has been updated by ko1 (Koichi Sasada).

随分放置してしまってすみません。
これ、今でもなりますか? 手元ではなんか

$ ./ruby -robjspace
-e’ObjectSpace.after_gc_start_hook=proc{};GC.stress=true;{}’
セグメンテーション違反です

などと出てしまう。これはこれでまずかろう、という気もしますが…。

Bug #8492: ObjectSpace.after_gc_start_hook aborts with GC.stress

Author: naruse (Yui NARUSE)
Status: Assigned
Priority: Normal
Assignee: ko1 (Koichi Sasada)
Category: core
Target version: current: 2.1.0
ruby -v: ruby 2.1.0dev (2013-06-05 trunk 41080) [x86_64-freebsd9.1]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN

以下を実行すると assert(during_gc > 0) に失敗して abort します。
ruby -robjspace
-e’ObjectSpace.after_gc_start_hook=proc{};GC.stress=true;{}’
gc.c:3818 の
gc_event_hook(objspace, RUBY_INTERNAL_EVENT_GC_START, 0 /* TODO: pass
minor/immediate flag? */);
実行後に、during_gc が 0 になっている模様。