[LLVMbugs] [Bug 23781] New: cmake: race condition between different sphinx targets

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Jun 8 05:31:47 PDT 2015


            Bug ID: 23781
           Summary: cmake: race condition between different sphinx targets
           Product: Build scripts
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: cmake
          Assignee: unassignedbugs at nondot.org
          Reporter: mgorny at gentoo.org
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

If multiple Sphinx targets are declared in the same directory, they all share a
common doctree directory. Now, if multiple targets are enabled and parallel
make is used, multiple instances of Sphinx can be started simultaneously with
the same doctree directory, resulting in race conditions.

This is hard to reproduce but I've been able to see one regarding os.makedirs()
hitting EEXIST. Not that I believe this isn't a bug in Python but I doubt this
is something we can rely upon being fixed for us.

Potential solutions are:

1. add an ordering dep between the two targets. Let only one Sphinx instance
run in parallel, and then run the other reusing already-generated doctrees.

2. Use separate doctree directories. This means that Sphinx would generate the
same doctrees twice. Not sure how much slower that would be, actually.

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20150608/faac7457/attachment.html>

More information about the llvm-bugs mailing list