[#46807] [ruby-trunk - Bug #7625][Open] Arrayを継承したオブジェクトのcompactがArrayを返す — "mogya@... (Daisuke Furukawa)" <mogya@...>

19 messages 2012/12/26

[#46822] [ruby-trunk - Feature #7639][Open] More freedom for location of comments — "sawa (Tsuyoshi Sawada)" <sawadatsuyoshi@...>

14 messages 2012/12/30

[ruby-dev:46680] [ruby-trunk - Bug #7468] GC_GUARD漏れもしくはmark漏れっぽいエラーが発生してます。

From: "kosaki (Motohiro KOSAKI)" <kosaki.motohiro@...>
Date: 2012-12-01 21:23:33 UTC
List: ruby-dev #46680
Issue #7468 has been updated by kosaki (Motohiro KOSAKI).


SET_MACHINE_STACK_ENDの実体が

#if defined(__x86_64__) && defined(__GNUC__) && !defined(__native_client__)
#define SET_MACHINE_STACK_END(p) __asm__ ("movq\t%%rsp, %0" : "=r" (*(p)))

のように volatileなしasmで、かつオペランド制約にrspを使うということが一切記述されてないので
どういう最適化されても文句はいえないのではないでしょうか。

とりあえず r38134 で volatileつけときました。この結果アセンブリは

    3f92:	e8 00 00 00 00       	callq  3f97 <rb_threadptr_execute_interrupts+0x317>
    3f97:	48 89 e0             	mov    %rsp,%rax
    3f9a:	49 8b 7c 24 08       	mov    0x8(%r12),%rdi
    3f9f:	49 89 84 24 b0 01 00 	mov    %rax,0x1b0(%r12)
    3fa6:	00 
    3fa7:	4c 89 e6             	mov    %r12,%rsi
    3faa:	e8 c1 fa ff ff       	callq  3a70 <gvl_yield>

という感じになって、意図した通り gvl_yield()の直前に%rspをメモリに書いているように見えます。問題が再現出来る人がいれば
誰か確認お願いできませんか。

# たとえ直ってなくても r38134 は1.9.3にバックポート必要でしょうね。現状危なすぎる

----------------------------------------
Bug #7468: GC_GUARD漏れもしくはmark漏れっぽいエラーが発生してます。
https://bugs.ruby-lang.org/issues/7468#change-34296

Author: tarui (Masaya Tarui)
Status: Open
Priority: High
Assignee: authorNari (Narihiro Nakamura)
Category: core
Target version: 2.0.0
ruby -v: ruby -v: ruby 2.0.0dev (2012-11-30 trunk 37999) [x86_64-linux]


いつからかtest-allで時々エラーが発生するようになってます。

make  test-all TESTS="-qv  -n /test_string\$$/"

でsegvや
  1) Error:
 test_string(DL::TestFunc):
 ArgumentError: assertion message must be String or Proc, but Thread::Backtrace was given.
などと言われるようになりました。
GC.stress = true なのと、Thread::Backtraceが通常のpassでは入る事はないっぽいのでGC周りのバグだと思います。



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

In This Thread