Bug 1414558 - Build Clang toolchain on a Docker volume; r?Build draft
authorGregory Szorc <gps@mozilla.com>
Mon, 06 Nov 2017 11:45:17 -0800
changeset 693755 153b423e7205a7bc02afd5437dac50793495dde9
parent 693561 2535bad09d720e71a982f3f70dd6925f66ab8ec7
child 739124 201ea760a0c199abecdb1d64723ec1a3d07034bc
push id87901
push userbmo:gps@mozilla.com
push dateMon, 06 Nov 2017 19:47:04 +0000
reviewersBuild
bugs1414558
milestone58.0a1
Bug 1414558 - Build Clang toolchain on a Docker volume; r?Build Before, the build root was not in a Docker cache or volume. With current Docker works, that meant AUFS. We know AUFS is slow under I/O load and can cause random failures due to missing data after writes. This commit changes the build root to a known Docker volume, which will be backed by EXT4 and won't have the problems of AUFS. MozReview-Commit-ID: 6WOH0yednAv
build/build-clang/build-clang.py
--- a/build/build-clang/build-clang.py
+++ b/build/build-clang/build-clang.py
@@ -318,19 +318,19 @@ def prune_final_dir_for_clang_tidy(final
     for f in glob.glob("%s/share/clang/*" % final_dir):
         if re_clang_tidy.search(os.path.basename(f)) is None:
             delete(f)
 
 
 if __name__ == "__main__":
     # The directories end up in the debug info, so the easy way of getting
     # a reproducible build is to run it in a know absolute directory.
-    # We use a directory in /builds/slave because the mozilla infrastructure
-    # cleans it up automatically.
-    base_dir = "/builds/slave/moz-toolchain"
+    # We use a directory that is registered as a volume in the Docker image.
+    base_dir = "/builds/worker/workspace/moz-toolchain"
+
     if is_windows():
         # TODO: Because Windows taskcluster builds are run with distinct
         # user IDs for each job, we can't store things in some globally
         # accessible directory: one job will run, checkout LLVM to that
         # directory, and then if another job runs, the new user won't be
         # able to access the previously-checked out code--or be able to
         # delete it.  So on Windows, we build in the task-specific home
         # directory; we will eventually add -fdebug-prefix-map options