Forum: Ruby-core [ruby-trunk - Bug #7460][Open] メインスレッド終了後のサブスレッド終了待ち処理においてデッドロック検知が動作していない

Posted by kosaki (Motohiro KOSAKI) (Guest)
on 2012-11-29 02:19
(Received via mailing list)
Issue #7460 has been reported by kosaki (Motohiro KOSAKI).

----------------------------------------
Bug #7460: メインスレッド終了後のサブスレッド終了待ち処理においてデッドロック検知が動作していない
https://bugs.ruby-lang.org/issues/7460

Author: kosaki (Motohiro KOSAKI)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: ruby-trunk


[Bug #5368] からの派生なんですが、

Thread.new do
  begin
    p "sleep1"
    sleep
    p "sleep2"
  ensure
    p "stop1"
    Thread.stop
    p "stop2"
  end
end

このスクリプトでデッドロック検知が動かないのはおかしいと思います。
要するに thread_terminate_all() でも vm->sleeperを増やせ、ということなのですが 
TAG_FATALの考慮漏れが複数箇所に
とっちらかってて、パッチはちょっときたない(添付参照)。くすん
Posted by kosaki (Motohiro KOSAKI) (Guest)
on 2012-11-29 02:20
(Received via mailing list)
Issue #7460 has been updated by kosaki (Motohiro KOSAKI).

Status changed from Open to Assigned
Assignee set to kosaki (Motohiro KOSAKI)


----------------------------------------
Bug #7460: メインスレッド終了後のサブスレッド終了待ち処理においてデッドロック検知が動作していない
https://bugs.ruby-lang.org/issues/7460#change-34108

Author: kosaki (Motohiro KOSAKI)
Status: Assigned
Priority: Normal
Assignee: kosaki (Motohiro KOSAKI)
Category:
Target version:
ruby -v: ruby-trunk


[Bug #5368] からの派生なんですが、

Thread.new do
  begin
    p "sleep1"
    sleep
    p "sleep2"
  ensure
    p "stop1"
    Thread.stop
    p "stop2"
  end
end

このスクリプトでデッドロック検知が動かないのはおかしいと思います。
要するに thread_terminate_all() でも vm->sleeperを増やせ、ということなのですが 
TAG_FATALの考慮漏れが複数箇所に
とっちらかってて、パッチはちょっときたない(添付参照)。くすん
Posted by kosaki (Motohiro KOSAKI) (Guest)
on 2012-11-30 14:54
(Received via mailing list)
Issue #7460 has been updated by kosaki (Motohiro KOSAKI).

Category set to core
Target version set to next minor


----------------------------------------
Bug #7460: メインスレッド終了後のサブスレッド終了待ち処理においてデッドロック検知が動作していない
https://bugs.ruby-lang.org/issues/7460#change-34223

Author: kosaki (Motohiro KOSAKI)
Status: Assigned
Priority: Normal
Assignee: kosaki (Motohiro KOSAKI)
Category: core
Target version: next minor
ruby -v: ruby-trunk


[Bug #5368] からの派生なんですが、

Thread.new do
  begin
    p "sleep1"
    sleep
    p "sleep2"
  ensure
    p "stop1"
    Thread.stop
    p "stop2"
  end
end

このスクリプトでデッドロック検知が動かないのはおかしいと思います。
要するに thread_terminate_all() でも vm->sleeperを増やせ、ということなのですが 
TAG_FATALの考慮漏れが複数箇所に
とっちらかってて、パッチはちょっときたない(添付参照)。くすん
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.