From: matz@... Date: 2020-10-26T04:34:44+00:00 Subject: [ruby-dev:50967] [Ruby master Bug#13768] SIGCHLD and Thread dead-lock problem Issue #13768 has been updated by matz (Yukihiro Matsumoto). This issue told us there's false positive in our deadlock detector. So I accept adding `Thread.ignore_deadlock = true`. Matz, ---------------------------------------- Bug #13768: SIGCHLD and Thread dead-lock problem https://bugs.ruby-lang.org/issues/13768#change-88175 * Author: keiju (Keiju Ishitsuka) * Status: Open * Priority: Normal * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- けいじゅ@いしつかです. 下記のプログラムを実行するとThreadがデッドロックしたと例外が発生します. # コメント部分をはずせば, デッドロックはしません シグナルのtrapが絡むときのデッドロックの検知に問題があるのではないかと 思いますがいかがでしょう? ``` % ruby -v ruby 2.5.0dev (2017-07-25 trunk 59417) [i686-linux] ``` ```ruby q = Queue.new p = Queue.new trap(:SIGCHLD) do puts "SIGCHLD" q.push 1 end Thread.start do Process.spawn("/bin/sleep 1") end #Thread.start do # loop do # sleep 100 # end #end th = Thread.start{ p.push q.pop } p.pop ``` __ ---------------------------------------------------->> 石塚 圭樹 <<--- ---------------------------------->> e-mail: keiju@ishitsuka.com <<--- -- https://bugs.ruby-lang.org/