Project

General

Profile

Bug #9971

potential stack overflow check deadlock (fixed at r46495)

Added by nagachika (Tomoyuki Chikanaga) about 5 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
Normal
Target version:
-
ruby -v:
-
[ruby-dev:48312]

Description

r46495 で check_stack_overflow() 内で GET_THREAD() を呼ぶのをやめるようにしていますが、2.0.0 と 2.1 でも GET_THREAD() は関数として定義されているのでバックポートが必要と思います。
このチケットはバックポート管理用に作成しました。

Associated revisions

Revision 2bd9a198
Added by nobu (Nobuyoshi Nakada) about 5 years ago

signal.c: drop dangerous tag

  • signal.c (check_stack_overflow): drop the last tag too close to the fault page, to get rid of stack overflow deadlock. [Bug #9971]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 46499
Added by nobu (Nobuyoshi Nakada) about 5 years ago

signal.c: drop dangerous tag

  • signal.c (check_stack_overflow): drop the last tag too close to the fault page, to get rid of stack overflow deadlock. [Bug #9971]

Revision 46499
Added by nobu (Nobuyoshi Nakada) about 5 years ago

signal.c: drop dangerous tag

  • signal.c (check_stack_overflow): drop the last tag too close to the fault page, to get rid of stack overflow deadlock. [Bug #9971]

Revision 46499
Added by nobu (Nobuyoshi Nakada) about 5 years ago

signal.c: drop dangerous tag

  • signal.c (check_stack_overflow): drop the last tag too close to the fault page, to get rid of stack overflow deadlock. [Bug #9971]

Revision 155b12e6
Added by nagachika (Tomoyuki Chikanaga) about 5 years ago

merge revision(s) r46495,r46499: [Backport #9971]

    signal.c: no cfunc frame at stack overflow

    * signal.c (check_stack_overflow): avoid pushing a cfunc frame,

trying to fix stack overflow deadlock.
* signal.c (check_stack_overflow): drop the last tag too close to
the fault page, to get rid of stack overflow deadlock.
[Bug #9971]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@47597 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 47597
Added by nagachika (Tomoyuki Chikanaga) about 5 years ago

merge revision(s) r46495,r46499: [Backport #9971]

signal.c: no cfunc frame at stack overflow

* signal.c (check_stack_overflow): avoid pushing a cfunc frame,

trying to fix stack overflow deadlock.
* signal.c (check_stack_overflow): drop the last tag too close to
the fault page, to get rid of stack overflow deadlock.
[Bug #9971]

Revision 43e1316e
Added by usa (Usaku NAKAMURA) about 5 years ago

merge revision(s) 46495: [Backport #9971]

    signal.c: no cfunc frame at stack overflow

    * signal.c (check_stack_overflow): avoid pushing a cfunc frame,

trying to fix stack overflow deadlock.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@47612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 47612
Added by usa (Usaku NAKAMURA) about 5 years ago

merge revision(s) 46495: [Backport #9971]

signal.c: no cfunc frame at stack overflow

* signal.c (check_stack_overflow): avoid pushing a cfunc frame,

trying to fix stack overflow deadlock.

History

Updated by nobu (Nobuyoshi Nakada) about 5 years ago

残念ながら、直ったかと思いましたがr46495では修正できていません。
コンパイラやオプションによって変わるものの、手元ではここ何日かtest_machine_stack_sizeがtimeoutでエラーになるので調査中です。

Updated by nagachika (Tomoyuki Chikanaga) about 5 years ago

見すごしていました。 test_machine_stack_size のタイムアウトは r46499 で収まったとみていいんでしょうか?

Updated by nagachika (Tomoyuki Chikanaga) about 5 years ago

  • Backport changed from 2.0.0: REQUIRED, 2.1: REQUIRED to 2.0.0: REQUIRED, 2.1: DONE

まだ完全ではないとのことでしたが、念のため r46495 と r46499 を r47597 で ruby_2_1 へバックポートしました。

Updated by usa (Usaku NAKAMURA) about 5 years ago

partially backported into ruby_2_0_0 at r47612.

とりあえず、現時点で ruby_2_0_0 にある部分については取り込みました。

Also available in: Atom PDF