From: "kjtsanaktsidis (KJ Tsanaktsidis) via ruby-core" Date: 2023-06-05T01:17:31+00:00 Subject: [ruby-core:113758] [Ruby master Bug#19700] TestProcess#test_execopts_redirect_open_fifo_interrupt_print is flaky on macOS Issue #19700 has been updated by kjtsanaktsidis (KJ Tsanaktsidis). I think it's the same failure as this: http://rubyci.s3.amazonaws.com/osx1200arm/ruby-master/log/20230601T215005Z.fail.html.gz Is it an arm thing perhaps? My macbook is an M1 on 13.4 (22F66) as well. I was going to suggest it could have something to do with the CrowdStrike security stack on my mac (work machine), which definitely gets its hooks into open(2) system calls, but it seems we have a similar failure on RubyCI (which I assume doesn't have any of that stuff on it?). I'll do a bit of a survey of macs around the office this week and see if I can find a differentiating factor with that test program. ---------------------------------------- Bug #19700: TestProcess#test_execopts_redirect_open_fifo_interrupt_print is flaky on macOS https://bugs.ruby-lang.org/issues/19700#change-103403 * Author: kjtsanaktsidis (KJ Tsanaktsidis) * Status: Feedback * Priority: Normal * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- The test `TestProcess#test_execopts_redirect_open_fifo_interrupt_print` in `test_process.rb` is flaky on macOS for me. Sometimes, it just hangs forever. This test is testing what happens when: * You have two processes * One is blocked opening a FIFO for reading (to redirect to a child process) * The other one sends a signal to that process * And then opens the FIFO for writing (which should unblock the child process) When this test hangs forever, for me, * The child process is blocked on opening the FIFO (i.e. it's waiting for a writer) * But the parent process successfully wrote data to the FIFO already somehow (this shouldn't be possible - the parent should have been blocked opening the FIFO until the open succeeded in the child). Actually I believe this is a bug in macOS. The following program will fail with `write (parent): Broken pipe` on macOS when run in a loop, but works correctly on Linux: https://gist.github.com/KJTsanaktsidis/fc84b006cfff1bb0b55a2571df825d80 I'm going to open a PR to skip this test on macos because I believe the operating system is broken here, and as far as I can tell Ruby is doing the correct thing. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/