From: "kjtsanaktsidis (KJ Tsanaktsidis) via ruby-core" Date: 2023-06-02T01:12:09+00:00 Subject: [ruby-core:113734] [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 opened https://github.com/ruby/ruby/pull/7876 to skip this. ---------------------------------------- Bug #19700: TestProcess#test_execopts_redirect_open_fifo_interrupt_print is flaky on macOS https://bugs.ruby-lang.org/issues/19700#change-103384 * Author: kjtsanaktsidis (KJ Tsanaktsidis) * Status: Open * 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/