Silence broken pipe error

if .installed.txt is out of date, cmp will bail out early.  This will
cause expand_reqs.py to run into a broken pipe error.  This is
perfectly normal pipe semantics, but printing the traceback and error
to the log adds noise, so we silence the error.

There is a possibility of silencing legitimate errors, but the chance
and cost are low:

1. Its easy to test expand_reqs.py by hand.
2. The failure mode is that we always detect that the virtualenv is
   out of date.  This increases run time by a number of seconds;
   undesirable, but not fatal.
3. expand_reqs.py is simple and has unit tests, so it should be
   relatively stable and any bugs would be easy to find and fix.
4. The other possibilities for failures (e.g., disk failure) will be
   noisy and detectable elsewhere.
5. We can add metrics in the future to make such errors easy to
   notice.

BUG=chromium:673842
TEST=Run chromite run_tests with out of date .installed.txt

Change-Id: Iee0e3e47975257a49bab755d03af67240ae5b997
Reviewed-on: https://chromium-review.googlesource.com/419362
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: David Riley <davidriley@chromium.org>
diff --git a/create_venv b/create_venv
index 4aada2a..9f5f866 100755
--- a/create_venv
+++ b/create_venv
@@ -49,7 +49,7 @@
   local venv_dir=$1
   local requirements=$2
   local installed="$venv_dir/.installed.txt"
-  cmp -s <("$basedir/expand_reqs.py" <"$requirements") "$installed"
+  cmp -s <("$basedir/expand_reqs.py" <"$requirements" 2>/dev/null) "$installed"
 }
 
 mark_up_to_date() {