Browse Source

Fix test hanging reading FIFO when `borg create` failed

Peter Gerber 2 years ago
parent
commit
8ce3d22358
1 changed files with 6 additions and 0 deletions
  1. 6 0
      src/borg/testsuite/archiver/create_cmd.py

+ 6 - 0
src/borg/testsuite/archiver/create_cmd.py

@@ -784,6 +784,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")