From: merch-redmine@... Date: 2020-05-06T22:18:21+00:00 Subject: [ruby-core:98160] [Ruby master Bug#16835] SIGCHLD + system new behavior on 2.6 Issue #16835 has been updated by jeremyevans0 (Jeremy Evans). If I compile that program on OpenBSD, it outputs `Handler`. So system(3) behavior appears to be operating-system (or libc) specific. ---------------------------------------- Bug #16835: SIGCHLD + system new behavior on 2.6 https://bugs.ruby-lang.org/issues/16835#change-85399 * Author: maths22 (Jacob Burroughs) * Status: Open * Priority: Normal * ruby -v: ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin19]` * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- In rubies < 2.5, the `system` command did not trigger sigchld signal traps. On ruby >= 2.6 it does. This appears to have been introduced by https://github.com/ruby/ruby/commit/054a412d540e7ed2de63d68da753f585ea6616c3 . To observe the change in behavior, run the following code on ruby 2.5 and 2.6: ``` ruby Signal.trap("CLD") { puts "Child died" }; system("true") ``` On ruby 2.5 it won't print anything. On ruby 2.6 it will print "Child died". I believe this is an unintended, undocumented change in behavior, but I may be wrong about that. -- https://bugs.ruby-lang.org/ Unsubscribe: