[tor-commits] [tor/master] Work around Travis CI ptrace regression

nickm at torproject.org nickm at torproject.org
Fri Jan 19 15:19:06 UTC 2018


commit 3bf9174fa37ed09b796dd34c0c2918dae7d4de0d
Author: Taylor Yu <catalyst at torproject.org>
Date:   Wed Jan 10 14:52:04 2018 -0600

    Work around Travis CI ptrace regression
    
    Travis CI deployed a change that disables ptrace capabilities in
    container builds, which prevents LeakSanitizer on clang from working
    properly.  Set "sudo: required" to force non-container builds for
    clang and work around this.
---
 .travis.yml | 42 +++++++++++++++++++++++++++++++++++++-----
 1 file changed, 37 insertions(+), 5 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index d3918875d..6c6e1ace2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,8 +1,10 @@
 language: c
 
-compiler:
-  - gcc
-  - clang
+## Comment out the compiler list for now to allow an explicit build
+## matrix.
+# compiler:
+#   - gcc
+#   - clang
 
 notifications:
   irc:
@@ -28,6 +30,10 @@ dist: trusty
 
 ## We don't need sudo. (The "apt:" stanza after this allows us to not need sudo;
 ## otherwise, we would need it for getting dependencies.)
+##
+## We override this in the explicit build matrix to work around a
+## Travis CI environment regression
+## https://github.com/travis-ci/travis-ci/issues/9033
 sudo: false
 
 ## (Linux only) Download our dependencies
@@ -55,9 +61,13 @@ env:
     ## The Travis CI environment allows us two cores, so let's use both.
     - MAKEFLAGS="-j 2"
   matrix:
+    ## Leave at least one entry here or Travis seems to generate a
+    ## matrix entry with empty matrix environment variables.  Leaving
+    ## more than one entry causes unwanted matrix entries with
+    ## unspecified compilers.
     - RUST_OPTIONS="--enable-rust --enable-cargo-online-mode"
-    - RUST_OPTIONS="--enable-rust" TOR_RUST_DEPENDENCIES=true
-    - RUST_OPTIONS=""
+    # - RUST_OPTIONS="--enable-rust" TOR_RUST_DEPENDENCIES=true
+    # - RUST_OPTIONS=""
 
 matrix:
   ## If one build in the matrix fails (e.g. if building withour Rust and Clang
@@ -65,6 +75,28 @@ matrix:
   ## entire job early and call the whole thing a failure.
   fast_finish: true
 
+  ## Create explicit matrix entries to work around a Travis CI
+  ## environment issue.  Missing keys inherit from the first list
+  ## entry under that key outside the "include" clause.
+  include:
+    - compiler: gcc
+    - compiler: gcc
+      env: RUST_OPTIONS="--enable-rust" TOR_RUST_DEPENDENCIES=true
+    - compiler: gcc
+      env: RUST_OPTIONS=""
+    ## The "sudo: required" forces non-containerized builds, working
+    ## around a Travis CI environment issue: clang LeakAnalyzer fails
+    ## because it requires ptrace and the containerized environment no
+    ## longer allows ptrace.
+    - compiler: clang
+      sudo: required
+    - compiler: clang
+      sudo: required
+      env: RUST_OPTIONS="--enable-rust" TOR_RUST_DEPENDENCIES=true
+    - compiler: clang
+      sudo: required
+      env: RUST_OPTIONS=""
+
 before_install:
   ## If we're on OSX, homebrew usually needs to updated first
   - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update ; fi





More information about the tor-commits mailing list