Project

General

Profile

Bug #16835

SIGCHLD + system new behavior on 2.6

Added by maths22 (Jacob Burroughs) 3 months ago. Updated 3 months ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin19]`
[ruby-core:98156]

Description

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:

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.

Also available in: Atom PDF