Project

General

Profile

Actions

Bug #19700

closed

TestProcess#test_execopts_redirect_open_fifo_interrupt_print is flaky on macOS

Added by kjtsanaktsidis (KJ Tsanaktsidis) about 2 years ago. Updated about 2 years ago.

Status:
Feedback
Assignee:
-
Target version:
-
[ruby-core:113714]

Description

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.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0