From: akr@... Date: 2015-06-19T10:13:02+00:00 Subject: [ruby-dev:49122] [Ruby trunk - Bug #11265] deadlock on Solaris 10 since r50900 Issue #11265 has been updated by Akira Tanaka. おぉ、調べ直したところ、execv が async-signal-safe な関数としてされたのは SUSv4 からのようです。 http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html SUSv2, SUSv3 では async-signal-safe な関数のリストには載っていません。 たぶんそのコメントは SUSv4 を見て書いたのだと思います。 それはそれとして、現在の実装が async-signal-safe でないなら利用しないほうがいいのはそうなので、 envp_str を常に生成するようにすればいいんじゃないでしょうか。 たぶん rb_execarg_parent_start1 の中をちょっといじればいいんじゃないかな。 ---------------------------------------- Bug #11265: deadlock on Solaris 10 since r50900 https://bugs.ruby-lang.org/issues/11265#change-53051 * Author: Naohisa Goto * Status: Open * Priority: Normal * Assignee: * ruby -v: - * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- Solaris10にて、r50900 以降、 TestParallel::TestParallel#test_jobs_status TestParallel::TestParallel#test_separate のいずれか、または両方で、テストが停止状態となり次に進まなくなります。 スレッドのデッドロックが発生しているような感じです。 ところで、こういう場合の上手いデバッグ方法って何があるでしょうか? -- https://bugs.ruby-lang.org/