Merging from default production FENNEC_36_0_2_BUILD1
authorChris Cooper <ccooper@deadsquid.com>
Thu, 12 Mar 2015 11:21:44 -0400
branchproduction
changeset 3748 d35bfd399151b2b12217eb72924220903db35ebc
parent 3743 8dc154c5a136771ba3c1b2f4ddc2779399740161 (current diff)
parent 3747 9e077d6e8a7f34afc7f939b7ad8304ade5e393d6 (diff)
child 3749 561e5e1d9b2d498ce872091c63b7ff83380aaa04
push id2948
push usercoop@mozilla.com
push dateThu, 12 Mar 2015 15:21:47 +0000
bugs1135250, 1141534, 1141724, 1083347
Merging from default changeset: 3744:27b7e35e1995 parent: 3742:14efdd6647b5 user: Mike Shal <mshal@mozilla.com> date: Wed Mar 11 17:32:51 2015 -0400 summary: Bug 1135250 - Enable taskcluster logging; r=jlund changeset: 3745:a603f0c284a6 user: Mike Shal <mshal@mozilla.com> date: Wed Mar 11 17:33:46 2015 -0400 summary: Bug 1141534 - Disable balrog updates for mulet; r=jlund changeset: 3746:2452460c06fc user: Mike Shal <mshal@mozilla.com> date: Wed Mar 11 17:34:49 2015 -0400 summary: Bug 1141724 - debug retry errors; r=jlund changeset: 3747:9e077d6e8a7f tag: tip user: Vaibhav Agrawal <vaibhavmagarwal@gmail.com> date: Thu Mar 12 00:26:08 2015 +0800 summary: Bug 1083347 - Making changes to mozharness for android-gl jobs to run without gl.json. r=armenzg
--- a/configs/android/android_panda_releng.py
+++ b/configs/android/android_panda_releng.py
@@ -31,17 +31,17 @@ config = {
         "mochitest-1": ["--total-chunks=8", "--this-chunk=1"],
         "mochitest-2": ["--total-chunks=8", "--this-chunk=2"],
         "mochitest-3": ["--total-chunks=8", "--this-chunk=3"],
         "mochitest-4": ["--total-chunks=8", "--this-chunk=4"],
         "mochitest-5": ["--total-chunks=8", "--this-chunk=5"],
         "mochitest-6": ["--total-chunks=8", "--this-chunk=6"],
         "mochitest-7": ["--total-chunks=8", "--this-chunk=7"],
         "mochitest-8": ["--total-chunks=8", "--this-chunk=8"],
-        "mochitest-gl": ["--test-manifest", "gl.json"],
+        "mochitest-gl": ["--manifest", "tests/dom/canvas/test/_webgl-conformance.ini"],
     },
     "all_reftest_suites": {
         "reftest-1": ["--total-chunks=8", "--this-chunk=1"],
         "reftest-2": ["--total-chunks=8", "--this-chunk=2"],
         "reftest-3": ["--total-chunks=8", "--this-chunk=3"],
         "reftest-4": ["--total-chunks=8", "--this-chunk=4"],
         "reftest-5": ["--total-chunks=8", "--this-chunk=5"],
         "reftest-6": ["--total-chunks=8", "--this-chunk=6"],
--- a/configs/android/androidx86.py
+++ b/configs/android/androidx86.py
@@ -93,17 +93,17 @@ config = {
             "extra_args": ["--total-chunks=2", "--this-chunk=1", "--run-only-tests=androidx86.json"],
         },
         "mochitest-2": {
             "category": "mochitest",
             "extra_args": ["--total-chunks=2", "--this-chunk=2", "--run-only-tests=androidx86.json"],
         },
         "mochitest-gl": {
             "category": "mochitest",
-            "extra_args": ["--test-manifest=gl.json"],
+            "extra_args": ["--manifest=tests/dom/canvas/test/_webgl-conformance.ini"],
         },
         "reftest-1": {
             "category": "reftest",
             "extra_args": ["--total-chunks=3", "--this-chunk=1",
                 "tests/layout/reftests/reftest.list"]
         },
         "reftest-2": {
             "category": "reftest",
--- a/configs/builds/releng_sub_linux_configs/64_mulet.py
+++ b/configs/builds/releng_sub_linux_configs/64_mulet.py
@@ -1,18 +1,16 @@
 import os
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
-        'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'linux64-mulet',
     'stage_product': 'b2g',
     'tooltool_manifest_src': "b2g/dev/config/tooltool-manifests/linux64/releng.manifest",
     'platform_supports_post_upload_to_latest': False,
     'enable_signing': False,
     'enable_talos_sendchange': False,
     'enable_count_ctors': False,
--- a/configs/builds/releng_sub_mac_configs/64_mulet.py
+++ b/configs/builds/releng_sub_mac_configs/64_mulet.py
@@ -1,18 +1,15 @@
 import os
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
-        # 'setup-mock',
         'build',
-        # 'generate-build-stats',
-        'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'macosx64-mulet',
     'stage_product': 'b2g',
     'tooltool_manifest_src': "b2g/dev/config/tooltool-manifests/macosx64/releng.manifest",
     'objdir': 'obj-firefox',
     'enable_signing': False,
     'enable_unittest_sendchange': False,
     'enable_talos_sendchange': False,
--- a/configs/builds/releng_sub_windows_configs/32_mulet.py
+++ b/configs/builds/releng_sub_windows_configs/32_mulet.py
@@ -1,18 +1,15 @@
 import os
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
-        # 'setup-mock', windows do not use mock
         'build',
-        # 'generate-build-stats',
-        'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'win32-mulet',
     'stage_product': 'b2g',
     'tooltool_manifest_src': "b2g/dev/config/tooltool-manifests/win32/releng.manifest",
     'enable_signing': False,
     'enable_talos_sendchange': False,
     'enable_unittest_sendchange': False,
     'enable_check_test': False,
--- a/mozharness/base/log.py
+++ b/mozharness/base/log.py
@@ -272,17 +272,17 @@ class BaseLogger(object):
 
     def get_log_formatter(self, log_format=None, date_format=None):
         if not log_format:
             log_format = self.log_format
         if not date_format:
             date_format = self.log_date_format
         return logging.Formatter(log_format, date_format)
 
-    def new_logger(self, logger_name):
+    def new_logger(self):
         """Create a new logger.
         By default there are no handlers.
         """
         self.logger = ROOT_LOGGER
         self.logger.setLevel(self.get_logger_level())
         self._clear_handlers()
         if self.log_to_console:
             self.add_console_handler()
@@ -304,28 +304,26 @@ class BaseLogger(object):
 
     def __del__(self):
         logging.shutdown()
         self._clear_handlers()
 
     def add_console_handler(self, log_level=None, log_format=None,
                             date_format=None):
         console_handler = logging.StreamHandler()
-        console_handler.setLevel(self.get_logger_level(log_level))
         console_handler.setFormatter(self.get_log_formatter(log_format=log_format,
                                                             date_format=date_format))
         self.logger.addHandler(console_handler)
         self.all_handlers.append(console_handler)
 
     def add_file_handler(self, log_path, log_level=None, log_format=None,
                          date_format=None):
         if not self.append_to_log and os.path.exists(log_path):
             os.remove(log_path)
         file_handler = logging.FileHandler(log_path)
-        file_handler.setLevel(self.get_logger_level(log_level))
         file_handler.setFormatter(self.get_log_formatter(log_format=log_format,
                                                          date_format=date_format))
         self.logger.addHandler(file_handler)
         self.all_handlers.append(file_handler)
 
     def log_message(self, message, level=INFO, exit_code=-1, post_fatal_callback=None):
         """Generic log method.
         There should be more options here -- do or don't split by line,
@@ -351,21 +349,21 @@ class SimpleFileLogger(BaseLogger):
     """Create one logFile.  Possibly also output to
     the terminal and a raw log (no prepending of level or date)
     """
     def __init__(self,
                  log_format='%(asctime)s %(levelname)8s - %(message)s',
                  logger_name='Simple', log_dir='logs', **kwargs):
         BaseLogger.__init__(self, logger_name=logger_name, log_format=log_format,
                             log_dir=log_dir, **kwargs)
-        self.new_logger(self.logger_name)
+        self.new_logger()
         self.init_message()
 
-    def new_logger(self, logger_name):
-        BaseLogger.new_logger(self, logger_name)
+    def new_logger(self):
+        BaseLogger.new_logger(self)
         self.log_path = os.path.join(self.abs_log_dir, '%s.log' % self.log_name)
         self.log_files['default'] = self.log_path
         self.add_file_handler(self.log_path)
 
 
 # MultiFileLogger {{{1
 class MultiFileLogger(BaseLogger):
     """Create a log per log level in log_dir.  Possibly also output to
@@ -374,21 +372,21 @@ class MultiFileLogger(BaseLogger):
     def __init__(self, logger_name='Multi',
                  log_format='%(asctime)s %(levelname)8s - %(message)s',
                  log_dir='logs', log_to_raw=True, **kwargs):
         BaseLogger.__init__(self, logger_name=logger_name,
                             log_format=log_format,
                             log_to_raw=log_to_raw, log_dir=log_dir,
                             **kwargs)
 
-        self.new_logger(self.logger_name)
+        self.new_logger()
         self.init_message()
 
-    def new_logger(self, logger_name):
-        BaseLogger.new_logger(self, logger_name)
+    def new_logger(self):
+        BaseLogger.new_logger(self)
         min_logger_level = self.get_logger_level(self.log_level)
         for level in self.LEVELS.keys():
             if self.get_logger_level(level) >= min_logger_level:
                 self.log_files[level] = '%s_%s.log' % (self.log_name,
                                                        level)
                 self.add_file_handler(os.path.join(self.abs_log_dir,
                                                    self.log_files[level]),
                                       log_level=level)
--- a/mozharness/base/script.py
+++ b/mozharness/base/script.py
@@ -551,16 +551,17 @@ class ScriptMixin(object):
                 self.log("retry: Calling %s with args: %s, kwargs: %s, attempt #%d" %
                          (action.__name__, str(args), str(kwargs), n), level=log_level)
                 status = action(*args, **kwargs)
                 if good_statuses and status not in good_statuses:
                     retry = True
             except retry_exceptions, e:
                 retry = True
                 error_message = "%s\nCaught exception: %s" % (error_message, str(e))
+                self.log('retry: attempt #%d caught exception: %s' % (n, str(e)), level=INFO)
 
             if not retry:
                 return status
             else:
                 if cleanup:
                     cleanup()
                 if n == attempts:
                     self.log(error_message % {'action': action, 'attempts': n}, level=error_level)
--- a/mozharness/mozilla/building/buildbase.py
+++ b/mozharness/mozilla/building/buildbase.py
@@ -14,16 +14,17 @@ import json
 
 import os
 import pprint
 import subprocess
 import time
 import uuid
 import copy
 import glob
+import logging
 from itertools import chain
 
 # import the power of mozharness ;)
 import sys
 from datetime import datetime
 import re
 from mozharness.base.config import BaseConfig, parse_config_file
 from mozharness.base.log import ERROR, OutputParser, FATAL, WARNING
@@ -1273,16 +1274,20 @@ or run without that action (ie: --no-{ac
         # We need to create & activate the virtualenv so that we can import
         # taskcluster (and its dependent modules, like requests and hawk).
         # Normally we could create the virtualenv as an action, but due to some
         # odd dependencies with query_build_env() being called from build(),
         # which is necessary before the virtualenv can be created.
         self.create_virtualenv()
         self.activate_virtualenv()
 
+        # Enable Taskcluster debug logging, so at least we get some debug
+        # messages while we are testing uploads.
+        logging.getLogger('taskcluster').setLevel(logging.DEBUG)
+
         tc = Taskcluster(self.branch,
                          self.stage_platform,
                          self.query_revision(),
                          client_id,
                          access_token,
                          self.log_obj,
                          )
 
--- a/scripts/fx_desktop_build.py
+++ b/scripts/fx_desktop_build.py
@@ -74,17 +74,17 @@ class FxDesktopBuild(BuildScript, object
                 'to_tinderbox_dated': True,
                 'release_to_try_builds': False,
                 'include_post_upload_builddir': False,
                 'stage_username': 'ffxbld',
                 'stage_ssh_key': 'ffxbld_rsa',
                 'virtualenv_modules': [
                     'requests==2.2.1',
                     'PyHawk-with-a-single-extra-commit==0.1.5',
-                    'taskcluster==0.0.9',
+                    'taskcluster==0.0.14',
                 ],
                 'virtualenv_path': 'venv',
                 #
 
             },
             'ConfigClass': BuildingConfig,
         }
         super(FxDesktopBuild, self).__init__(**buildscript_kwargs)