diff --git a/src/borg/testsuite/archiver/create_cmd.py b/src/borg/testsuite/archiver/create_cmd.py index be8d0ca96..cde67d8b2 100644 --- a/src/borg/testsuite/archiver/create_cmd.py +++ b/src/borg/testsuite/archiver/create_cmd.py @@ -766,6 +766,12 @@ class ArchiverTestCase(ArchiverTestCaseBase): try: self.cmd(f"--repo={self.repository_location}", "create", "--read-special", "test", "input/link_fifo") finally: + # In case `borg create` failed to open FIFO, read all data to avoid join() hanging. + fd = os.open(fifo_fn, os.O_RDONLY | os.O_NONBLOCK) + try: + os.read(fd, len(data)) + finally: + os.close(fd) t.join() with changedir("output"): self.cmd(f"--repo={self.repository_location}", "extract", "test")