From 8f821d77ab941fccf5c5391b01a223106261797a Mon Sep 17 00:00:00 2001 From: Sebastian Hengst Date: Mon, 20 Jan 2020 11:19:46 +0100 Subject: [PATCH] Backed out 3 changesets (bug 1525218) for breaking fenix, reference-browser speedometer tasks. a=backout Backed out changeset 76036ce90611 (bug 1525218) Backed out changeset 9c66ecb1f66c (bug 1525218) Backed out changeset eb4b265deb5e (bug 1525218) --HG-- extra : rebase_source : 5f1b01bd44628efff2a7e0f28a62a7ad673a73c0 --- .../tooltool-manifests/win32/releng.manifest | 7 ++ .../tooltool-manifests/win64/aarch64.manifest | 7 ++ .../tooltool-manifests/win64/releng.manifest | 7 ++ build/sparse-profiles/docker-image | 1 + taskcluster/ci/test/kind.yml | 9 --- taskcluster/ci/test/misc.yml | 15 +--- taskcluster/ci/test/xpcshell.yml | 8 +-- .../linux32/releng.manifest | 9 +++ .../linux64/releng.manifest | 9 +++ .../macosx64/releng.manifest | 9 +++ .../tooltool-manifests/win32/releng.manifest | 9 +++ .../configs/android/android_common.py | 1 + .../mozharness/configs/android/android_hw.py | 2 + .../mozharness/configs/awsy/linux_config.py | 9 +++ .../mozharness/configs/awsy/macosx_config.py | 4 ++ .../configs/raptor/android_hw_config.py | 2 + .../raptor/linux64_config_taskcluster.py | 5 ++ .../mozharness/configs/raptor/linux_config.py | 9 +++ .../mozharness/configs/raptor/mac_config.py | 2 + .../configs/raptor/windows_config.py | 2 + .../configs/raptor/windows_vm_config.py | 2 + .../talos/linux64_config_taskcluster.py | 10 +++ .../mozharness/configs/talos/linux_config.py | 9 +++ .../mozharness/configs/talos/mac_config.py | 2 + .../configs/talos/windows_config.py | 2 + .../talos/windows_taskcluster_config.py | 2 + .../configs/talos/windows_vm_config.py | 2 + .../configs/unittests/linux_unittest.py | 6 ++ .../configs/unittests/mac_unittest.py | 2 + .../configs/unittests/win_unittest.py | 2 + .../web_platform_tests/prod_config_android.py | 1 + .../mozharness/mozilla/testing/testbase.py | 69 +++++++++++++++---- 32 files changed, 194 insertions(+), 41 deletions(-) create mode 100644 testing/config/tooltool-manifests/linux32/releng.manifest create mode 100644 testing/config/tooltool-manifests/linux64/releng.manifest create mode 100644 testing/config/tooltool-manifests/macosx64/releng.manifest create mode 100644 testing/config/tooltool-manifests/win32/releng.manifest diff --git a/browser/config/tooltool-manifests/win32/releng.manifest b/browser/config/tooltool-manifests/win32/releng.manifest index aa80968c7ee5..16fef7f2ab9f 100644 --- a/browser/config/tooltool-manifests/win32/releng.manifest +++ b/browser/config/tooltool-manifests/win32/releng.manifest @@ -21,5 +21,12 @@ "unpack": true, "digest": "196ac6a567c85559957dfe511c3d8654d23c94d5603259e19ccafe9d71e0e4ccee63ccc9a778f2699654b786cda54266108b7d4db543d01bb0b42545b4e6ec75", "size": 297118 + }, + { + "size": 1701376, + "visibility": "public", + "digest": "2bc729f9cedfba59b5c7a088f00d00fc078af3bd08e88ee41bbb1ea092038466f46589cef036e0d928249f6037fb22828f62e6d82a32d018f66ca92a834393c8", + "algorithm": "sha512", + "filename": "win32-minidump_stackwalk.exe" } ] diff --git a/browser/config/tooltool-manifests/win64/aarch64.manifest b/browser/config/tooltool-manifests/win64/aarch64.manifest index c769a12a81fc..cfdc6b9f9701 100644 --- a/browser/config/tooltool-manifests/win64/aarch64.manifest +++ b/browser/config/tooltool-manifests/win64/aarch64.manifest @@ -22,5 +22,12 @@ "unpack": true, "digest": "196ac6a567c85559957dfe511c3d8654d23c94d5603259e19ccafe9d71e0e4ccee63ccc9a778f2699654b786cda54266108b7d4db543d01bb0b42545b4e6ec75", "size": 297118 + }, + { + "size": 1701376, + "visibility": "public", + "digest": "2bc729f9cedfba59b5c7a088f00d00fc078af3bd08e88ee41bbb1ea092038466f46589cef036e0d928249f6037fb22828f62e6d82a32d018f66ca92a834393c8", + "algorithm": "sha512", + "filename": "win32-minidump_stackwalk.exe" } ] diff --git a/browser/config/tooltool-manifests/win64/releng.manifest b/browser/config/tooltool-manifests/win64/releng.manifest index aa80968c7ee5..16fef7f2ab9f 100644 --- a/browser/config/tooltool-manifests/win64/releng.manifest +++ b/browser/config/tooltool-manifests/win64/releng.manifest @@ -21,5 +21,12 @@ "unpack": true, "digest": "196ac6a567c85559957dfe511c3d8654d23c94d5603259e19ccafe9d71e0e4ccee63ccc9a778f2699654b786cda54266108b7d4db543d01bb0b42545b4e6ec75", "size": 297118 + }, + { + "size": 1701376, + "visibility": "public", + "digest": "2bc729f9cedfba59b5c7a088f00d00fc078af3bd08e88ee41bbb1ea092038466f46589cef036e0d928249f6037fb22828f62e6d82a32d018f66ca92a834393c8", + "algorithm": "sha512", + "filename": "win32-minidump_stackwalk.exe" } ] diff --git a/build/sparse-profiles/docker-image b/build/sparse-profiles/docker-image index 6e3c66f13742..abeff9ca5db7 100644 --- a/build/sparse-profiles/docker-image +++ b/build/sparse-profiles/docker-image @@ -9,6 +9,7 @@ path:browser/config/version.txt # Result from `grep -hr %include taskcluster/docker | grep -v " taskcluster/" | sort -u` path:python/mozbuild/mozbuild/action/tooltool.py +path:testing/config/tooltool-manifests/linux64/releng.manifest path:testing/mozharness/external_tools/performance-artifact-schema.json path:testing/mozharness/external_tools/robustcheckout.py path:tools/lint/spell/codespell_requirements.txt diff --git a/taskcluster/ci/test/kind.yml b/taskcluster/ci/test/kind.yml index 282468fcce5e..615543d91fdd 100644 --- a/taskcluster/ci/test/kind.yml +++ b/taskcluster/ci/test/kind.yml @@ -56,12 +56,3 @@ job-defaults: .*-devedition/.*: false default: true default: false - fetches: - toolchain: - by-test-platform: - win.*: - - win32-minidump-stackwalk - macosx.*: - - macosx64-minidump-stackwalk - default: - - linux64-minidump-stackwalk diff --git a/taskcluster/ci/test/misc.yml b/taskcluster/ci/test/misc.yml index 92d33a61a7f3..78fcbc5d9eb6 100644 --- a/taskcluster/ci/test/misc.yml +++ b/taskcluster/ci/test/misc.yml @@ -81,18 +81,13 @@ test-verify: by-test-platform: linux.*: - linux64-node - - linux64-minidump-stackwalk macosx.*: - macosx64-node - - macosx64-minidump-stackwalk win.*64.*: - win64-node - - win32-minidump-stackwalk win.*32.*: - win32-node - - win32-minidump-stackwalk - android-em-7.*: - - linux64-minidump-stackwalk + android-em-7.*: [] test-verify-gpu: description: "Extra verification of tests modified on this push on gpu instances" @@ -173,21 +168,15 @@ test-coverage: by-test-platform: linux.*: - linux64-node - - linux64-minidump-stackwalk macosx.*: - macosx64-node - - macosx64-minidump-stackwalk win.*aarch64.*: - win32-node - - win32-minidump-stackwalk win.*-64.*: - win64-node - - win32-minidump-stackwalk win.*32.*: - win32-node - - win32-minidump-stackwalk - android-em-7.*: - - linux64-minidump-stackwalk + android-em-7.*: [] test-coverage-gpu: description: "Per-test coverage for tests that require gpu instances" diff --git a/taskcluster/ci/test/xpcshell.yml b/taskcluster/ci/test/xpcshell.yml index 95acdac9c531..e33815096151 100644 --- a/taskcluster/ci/test/xpcshell.yml +++ b/taskcluster/ci/test/xpcshell.yml @@ -76,18 +76,12 @@ xpcshell: by-test-platform: linux.*: - linux64-node - - linux64-minidump-stackwalk macosx.*: - macosx64-node - - macosx64-minidump-stackwalk win.*aarch64.*: - win32-node - - win32-minidump-stackwalk win.*-64.*: - win64-node - - win32-minidump-stackwalk win.*32.*: - win32-node - - win32-minidump-stackwalk - android-em-7.*: - - linux64-minidump-stackwalk + android-em-7.*: [] diff --git a/testing/config/tooltool-manifests/linux32/releng.manifest b/testing/config/tooltool-manifests/linux32/releng.manifest new file mode 100644 index 000000000000..1d73fb4eb898 --- /dev/null +++ b/testing/config/tooltool-manifests/linux32/releng.manifest @@ -0,0 +1,9 @@ +[ + { + "size": 866276, + "visibility": "public", + "digest": "a063a151555ef78f8d5795f558632dd7d3f511ad6276915f3c8cfec44146ba1e82c0a3db063a3e30921171563880d4d7794da1a036b00fab03d95988d491dc6b", + "algorithm": "sha512", + "filename": "linux32-minidump_stackwalk" + } +] diff --git a/testing/config/tooltool-manifests/linux64/releng.manifest b/testing/config/tooltool-manifests/linux64/releng.manifest new file mode 100644 index 000000000000..0020e64c0bf8 --- /dev/null +++ b/testing/config/tooltool-manifests/linux64/releng.manifest @@ -0,0 +1,9 @@ +[ + { + "size": 6519680, + "visibility": "public", + "digest": "15f8ae94bd1ab6baa6a853c47fcc2f7ffb1fc1004f6316b81b9b1f22a705d017ef28b8a397575965223c7f4d68becad5ba981ae2647963588fc771accca61795", + "algorithm": "sha512", + "filename": "linux64-minidump_stackwalk" + } +] diff --git a/testing/config/tooltool-manifests/macosx64/releng.manifest b/testing/config/tooltool-manifests/macosx64/releng.manifest new file mode 100644 index 000000000000..5a409b34ebd2 --- /dev/null +++ b/testing/config/tooltool-manifests/macosx64/releng.manifest @@ -0,0 +1,9 @@ +[ + { + "size": 843008, + "visibility": "public", + "digest": "2105e384ffbf3459d91701207e879a676ab8e49ca1dc2b7bf1e7d695fb6245ba719285c9841429bbc6605ae4e710107621f788a7204ed681148115ccf64ac087", + "algorithm": "sha512", + "filename": "macosx64-minidump_stackwalk" + } +] diff --git a/testing/config/tooltool-manifests/win32/releng.manifest b/testing/config/tooltool-manifests/win32/releng.manifest new file mode 100644 index 000000000000..0ad396ee671d --- /dev/null +++ b/testing/config/tooltool-manifests/win32/releng.manifest @@ -0,0 +1,9 @@ +[ + { + "size": 1701376, + "visibility": "public", + "digest": "2bc729f9cedfba59b5c7a088f00d00fc078af3bd08e88ee41bbb1ea092038466f46589cef036e0d928249f6037fb22828f62e6d82a32d018f66ca92a834393c8", + "algorithm": "sha512", + "filename": "win32-minidump_stackwalk.exe" + } +] diff --git a/testing/mozharness/configs/android/android_common.py b/testing/mozharness/configs/android/android_common.py index 7a30e8891d61..caa3c2de17d3 100644 --- a/testing/mozharness/configs/android/android_common.py +++ b/testing/mozharness/configs/android/android_common.py @@ -48,6 +48,7 @@ config = { # "log_format": "%(levelname)8s - %(message)s", "log_tbpl_level": "info", "log_raw_level": "info", + "minidump_stackwalk_path": "linux64-minidump_stackwalk", # To take device screenshots at timed intervals (each time in seconds, relative # to the start of the run-tests step) specify screenshot_times. For example, to # take 4 screenshots at one minute intervals you could specify: diff --git a/testing/mozharness/configs/android/android_hw.py b/testing/mozharness/configs/android/android_hw.py index c15cc1c90541..37c1206fda9a 100644 --- a/testing/mozharness/configs/android/android_hw.py +++ b/testing/mozharness/configs/android/android_hw.py @@ -21,5 +21,7 @@ config = { "tooltool_cache": "/builds/tooltool_cache", # from android_common.py "download_tooltool": True, + "minidump_stackwalk_path": "linux64-minidump_stackwalk", + "minidump_tooltool_manifest_path": "config/tooltool-manifests/linux64/releng.manifest", "xpcshell_extra": "--remoteTestRoot=/data/local/tests", } diff --git a/testing/mozharness/configs/awsy/linux_config.py b/testing/mozharness/configs/awsy/linux_config.py index 57998b6dba00..e675e679a3ac 100644 --- a/testing/mozharness/configs/awsy/linux_config.py +++ b/testing/mozharness/configs/awsy/linux_config.py @@ -1,7 +1,14 @@ import os +import platform PYTHON = "/usr/bin/env python" VENV_PATH = '%s/build/venv' % os.getcwd() +if platform.architecture()[0] == '64bit': + TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux64/releng.manifest" + MINIDUMP_STACKWALK_PATH = "linux64-minidump_stackwalk" +else: + TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux32/releng.manifest" + MINIDUMP_STACKWALK_PATH = "linux32-minidump_stackwalk" ABS_WORK_DIR = os.path.join(os.getcwd(), "build") BINARY_PATH = os.path.join(ABS_WORK_DIR, "application", "firefox", "firefox-bin") INSTALLER_PATH = os.path.join(ABS_WORK_DIR, "installer.tar.bz2") @@ -23,5 +30,7 @@ config = { "install", "run-tests", ], + "minidump_stackwalk_path": MINIDUMP_STACKWALK_PATH, + "minidump_tooltool_manifest_path": TOOLTOOL_MANIFEST_PATH, "tooltool_cache": os.path.join(os.getcwd(), "tooltool_cache"), } diff --git a/testing/mozharness/configs/awsy/macosx_config.py b/testing/mozharness/configs/awsy/macosx_config.py index ebfff7522ac8..b0eb280b5b93 100644 --- a/testing/mozharness/configs/awsy/macosx_config.py +++ b/testing/mozharness/configs/awsy/macosx_config.py @@ -2,6 +2,8 @@ import os PYTHON = "/usr/bin/env python" VENV_PATH = '%s/build/venv' % os.getcwd() +TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/macosx64/releng.manifest" +MINIDUMP_STACKWALK_PATH = "macosx64-minidump_stackwalk" ABS_WORK_DIR = os.path.join(os.getcwd(), "build") INSTALLER_PATH = os.path.join(ABS_WORK_DIR, "installer.dmg") @@ -21,5 +23,7 @@ config = { "install", "run-tests", ], + "minidump_stackwalk_path": MINIDUMP_STACKWALK_PATH, + "minidump_tooltool_manifest_path": TOOLTOOL_MANIFEST_PATH, "tooltool_cache": os.path.join(os.getcwd(), "tooltool_cache"), } diff --git a/testing/mozharness/configs/raptor/android_hw_config.py b/testing/mozharness/configs/raptor/android_hw_config.py index 49a3cbac9000..72028045b78c 100644 --- a/testing/mozharness/configs/raptor/android_hw_config.py +++ b/testing/mozharness/configs/raptor/android_hw_config.py @@ -14,6 +14,8 @@ config = { ], "tooltool_cache": "/builds/tooltool_cache", "download_tooltool": True, + "minidump_stackwalk_path": "linux64-minidump_stackwalk", + "minidump_tooltool_manifest_path": "config/tooltool-manifests/linux64/releng.manifest", "hostutils_manifest_path": "testing/config/tooltool-manifests/linux64/hostutils.manifest", } diff --git a/testing/mozharness/configs/raptor/linux64_config_taskcluster.py b/testing/mozharness/configs/raptor/linux64_config_taskcluster.py index 305cf47cc172..38c69338d7ca 100644 --- a/testing/mozharness/configs/raptor/linux64_config_taskcluster.py +++ b/testing/mozharness/configs/raptor/linux64_config_taskcluster.py @@ -4,6 +4,9 @@ import sys PYTHON = sys.executable VENV_PATH = '%s/build/venv' % os.getcwd() +TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux64/releng.manifest" +MINIDUMP_STACKWALK_PATH = "linux64-minidump_stackwalk" + exes = { 'python': PYTHON, } @@ -24,5 +27,7 @@ config = { "install", "run-tests", ], + "minidump_stackwalk_path": MINIDUMP_STACKWALK_PATH, + "minidump_tooltool_manifest_path": TOOLTOOL_MANIFEST_PATH, "tooltool_cache": "/builds/worker/tooltool-cache", } diff --git a/testing/mozharness/configs/raptor/linux_config.py b/testing/mozharness/configs/raptor/linux_config.py index 1b464ad7e82b..f21ef47cdc58 100644 --- a/testing/mozharness/configs/raptor/linux_config.py +++ b/testing/mozharness/configs/raptor/linux_config.py @@ -1,6 +1,13 @@ import os +import platform VENV_PATH = '%s/build/venv' % os.getcwd() +if platform.architecture()[0] == '64bit': + TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux64/releng.manifest" + MINIDUMP_STACKWALK_PATH = "linux64-minidump_stackwalk" +else: + TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux32/releng.manifest" + MINIDUMP_STACKWALK_PATH = "linux32-minidump_stackwalk" config = { "log_name": "raptor", @@ -16,5 +23,7 @@ config = { "install", "run-tests", ], + "minidump_stackwalk_path": MINIDUMP_STACKWALK_PATH, + "minidump_tooltool_manifest_path": TOOLTOOL_MANIFEST_PATH, "tooltool_cache": "/builds/tooltool_cache", } diff --git a/testing/mozharness/configs/raptor/mac_config.py b/testing/mozharness/configs/raptor/mac_config.py index c6e26eaac9e5..a370749151cb 100644 --- a/testing/mozharness/configs/raptor/mac_config.py +++ b/testing/mozharness/configs/raptor/mac_config.py @@ -19,5 +19,7 @@ config = { "run_cmd_checks_enabled": True, "preflight_run_cmd_suites": [], "postflight_run_cmd_suites": [], + "minidump_stackwalk_path": "macosx64-minidump_stackwalk", + "minidump_tooltool_manifest_path": "config/tooltool-manifests/macosx64/releng.manifest", "tooltool_cache": "/builds/tooltool_cache", } diff --git a/testing/mozharness/configs/raptor/windows_config.py b/testing/mozharness/configs/raptor/windows_config.py index f7f5e864fdae..dcee65610b4b 100644 --- a/testing/mozharness/configs/raptor/windows_config.py +++ b/testing/mozharness/configs/raptor/windows_config.py @@ -31,6 +31,8 @@ config = { "run-tests", ], "tooltool_cache": os.path.join('c:\\', 'build', 'tooltool_cache'), + "minidump_stackwalk_path": "win32-minidump_stackwalk.exe", + "minidump_tooltool_manifest_path": "config/tooltool-manifests/win32/releng.manifest", "python3_manifest": { "win32": "python3.manifest", "win64": "python3_x64.manifest", diff --git a/testing/mozharness/configs/raptor/windows_vm_config.py b/testing/mozharness/configs/raptor/windows_vm_config.py index 72b36ed26787..9aa6758d4e08 100644 --- a/testing/mozharness/configs/raptor/windows_vm_config.py +++ b/testing/mozharness/configs/raptor/windows_vm_config.py @@ -30,6 +30,8 @@ config = { "run-tests", ], "tooltool_cache": os.path.join('c:\\', 'build', 'tooltool_cache'), + "minidump_stackwalk_path": "win32-minidump_stackwalk.exe", + "minidump_tooltool_manifest_path": "config/tooltool-manifests/win32/releng.manifest", "python3_manifest": { "win32": "python3.manifest", "win64": "python3_x64.manifest", diff --git a/testing/mozharness/configs/talos/linux64_config_taskcluster.py b/testing/mozharness/configs/talos/linux64_config_taskcluster.py index 43b6c14a95d7..e1f2a89e6db2 100644 --- a/testing/mozharness/configs/talos/linux64_config_taskcluster.py +++ b/testing/mozharness/configs/talos/linux64_config_taskcluster.py @@ -1,9 +1,17 @@ import os +import platform import sys PYTHON = sys.executable VENV_PATH = '%s/build/venv' % os.getcwd() +if platform.architecture()[0] == '64bit': + TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux64/releng.manifest" + MINIDUMP_STACKWALK_PATH = "linux64-minidump_stackwalk" +else: + TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux32/releng.manifest" + MINIDUMP_STACKWALK_PATH = "linux32-minidump_stackwalk" + exes = { 'python': PYTHON, } @@ -24,5 +32,7 @@ config = { "install", "run-tests", ], + "minidump_stackwalk_path": MINIDUMP_STACKWALK_PATH, + "minidump_tooltool_manifest_path": TOOLTOOL_MANIFEST_PATH, "tooltool_cache": "/builds/worker/tooltool-cache", } diff --git a/testing/mozharness/configs/talos/linux_config.py b/testing/mozharness/configs/talos/linux_config.py index 6d01c809544a..9990f3e2cec4 100644 --- a/testing/mozharness/configs/talos/linux_config.py +++ b/testing/mozharness/configs/talos/linux_config.py @@ -1,6 +1,13 @@ import os +import platform VENV_PATH = '%s/build/venv' % os.getcwd() +if platform.architecture()[0] == '64bit': + TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux64/releng.manifest" + MINIDUMP_STACKWALK_PATH = "linux64-minidump_stackwalk" +else: + TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux32/releng.manifest" + MINIDUMP_STACKWALK_PATH = "linux32-minidump_stackwalk" config = { "log_name": "talos", @@ -15,5 +22,7 @@ config = { "install", "run-tests", ], + "minidump_stackwalk_path": MINIDUMP_STACKWALK_PATH, + "minidump_tooltool_manifest_path": TOOLTOOL_MANIFEST_PATH, "tooltool_cache": "/builds/tooltool_cache", } diff --git a/testing/mozharness/configs/talos/mac_config.py b/testing/mozharness/configs/talos/mac_config.py index 15450e2dbb01..74ba4f7e1de0 100644 --- a/testing/mozharness/configs/talos/mac_config.py +++ b/testing/mozharness/configs/talos/mac_config.py @@ -18,5 +18,7 @@ config = { "run_cmd_checks_enabled": True, "preflight_run_cmd_suites": [], "postflight_run_cmd_suites": [], + "minidump_stackwalk_path": "macosx64-minidump_stackwalk", + "minidump_tooltool_manifest_path": "config/tooltool-manifests/macosx64/releng.manifest", "tooltool_cache": "/builds/tooltool_cache", } diff --git a/testing/mozharness/configs/talos/windows_config.py b/testing/mozharness/configs/talos/windows_config.py index ac4e2a8f029b..fbd11571c3e3 100644 --- a/testing/mozharness/configs/talos/windows_config.py +++ b/testing/mozharness/configs/talos/windows_config.py @@ -25,4 +25,6 @@ config = { "run-tests", ], "tooltool_cache": os.path.join('c:\\', 'build', 'tooltool_cache'), + "minidump_stackwalk_path": "win32-minidump_stackwalk.exe", + "minidump_tooltool_manifest_path": "config/tooltool-manifests/win32/releng.manifest" } diff --git a/testing/mozharness/configs/talos/windows_taskcluster_config.py b/testing/mozharness/configs/talos/windows_taskcluster_config.py index 51fe44bb199a..a5fb54c9db36 100644 --- a/testing/mozharness/configs/talos/windows_taskcluster_config.py +++ b/testing/mozharness/configs/talos/windows_taskcluster_config.py @@ -22,4 +22,6 @@ config = { "run-tests", ], "tooltool_cache": os.path.join('Y:\\', 'tooltool-cache'), + "minidump_stackwalk_path": "win32-minidump_stackwalk.exe", + "minidump_tooltool_manifest_path": "config/tooltool-manifests/win32/releng.manifest" } diff --git a/testing/mozharness/configs/talos/windows_vm_config.py b/testing/mozharness/configs/talos/windows_vm_config.py index 2e72b91102aa..b78270c4c73d 100644 --- a/testing/mozharness/configs/talos/windows_vm_config.py +++ b/testing/mozharness/configs/talos/windows_vm_config.py @@ -24,4 +24,6 @@ config = { "run-tests", ], "tooltool_cache": os.path.join('c:\\', 'build', 'tooltool_cache'), + "minidump_stackwalk_path": "win32-minidump_stackwalk.exe", + "minidump_tooltool_manifest_path": "config/tooltool-manifests/win32/releng.manifest" } diff --git a/testing/mozharness/configs/unittests/linux_unittest.py b/testing/mozharness/configs/unittests/linux_unittest.py index 5847757d65e2..ffff6306147d 100644 --- a/testing/mozharness/configs/unittests/linux_unittest.py +++ b/testing/mozharness/configs/unittests/linux_unittest.py @@ -22,9 +22,13 @@ VALGRIND_SUPP_CROSS_ARCH = os.path.join(VALGRIND_SUPP_DIR, VALGRIND_SUPP_ARCH = None if platform.architecture()[0] == "64bit": + TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux64/releng.manifest" + MINIDUMP_STACKWALK_PATH = "linux64-minidump_stackwalk" VALGRIND_SUPP_ARCH = os.path.join(VALGRIND_SUPP_DIR, "x86_64-pc-linux-gnu.sup") else: + TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux32/releng.manifest" + MINIDUMP_STACKWALK_PATH = "linux32-minidump_stackwalk" VALGRIND_SUPP_ARCH = os.path.join(VALGRIND_SUPP_DIR, "i386-pc-linux-gnu.sup") NODEJS_TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux32/nodejs.manifest" @@ -242,6 +246,8 @@ config = { "cppunittest": [], "jittest": [], }, + "minidump_stackwalk_path": MINIDUMP_STACKWALK_PATH, + "minidump_tooltool_manifest_path": TOOLTOOL_MANIFEST_PATH, "tooltool_cache": "/builds/worker/tooltool-cache", "nodejs_path": NODEJS_PATH, # "log_format": "%(levelname)8s - %(message)s", diff --git a/testing/mozharness/configs/unittests/mac_unittest.py b/testing/mozharness/configs/unittests/mac_unittest.py index 27d3fc7cac40..40a27cb72c01 100644 --- a/testing/mozharness/configs/unittests/mac_unittest.py +++ b/testing/mozharness/configs/unittests/mac_unittest.py @@ -199,6 +199,8 @@ config = { "cppunittest": [], "jittest": [], }, + "minidump_stackwalk_path": "macosx64-minidump_stackwalk", + "minidump_tooltool_manifest_path": "config/tooltool-manifests/macosx64/releng.manifest", "tooltool_cache": "/builds/tooltool_cache", "nodejs_path": NODEJS_PATH, } diff --git a/testing/mozharness/configs/unittests/win_unittest.py b/testing/mozharness/configs/unittests/win_unittest.py index d47cf2475023..ce4d03ed03ae 100644 --- a/testing/mozharness/configs/unittests/win_unittest.py +++ b/testing/mozharness/configs/unittests/win_unittest.py @@ -274,5 +274,7 @@ config = { "cppunittest": [], "jittest": [], }, + "minidump_stackwalk_path": "win32-minidump_stackwalk.exe", + "minidump_tooltool_manifest_path": "config/tooltool-manifests/win32/releng.manifest", "nodejs_path": NODEJS_PATH, } diff --git a/testing/mozharness/configs/web_platform_tests/prod_config_android.py b/testing/mozharness/configs/web_platform_tests/prod_config_android.py index 73fdb780f893..e769ea6ca319 100644 --- a/testing/mozharness/configs/web_platform_tests/prod_config_android.py +++ b/testing/mozharness/configs/web_platform_tests/prod_config_android.py @@ -22,6 +22,7 @@ config = { "hostutils_manifest_path": "testing/config/tooltool-manifests/linux64/hostutils.manifest", "log_tbpl_level": "info", "log_raw_level": "info", + "minidump_stackwalk_path": "linux64-minidump_stackwalk", "per_test_category": "web-platform", "tooltool_cache": os.environ.get("TOOLTOOL_CACHE"), } diff --git a/testing/mozharness/mozharness/mozilla/testing/testbase.py b/testing/mozharness/mozharness/mozilla/testing/testbase.py index 22ae54530970..4fbc1b4cd44d 100755 --- a/testing/mozharness/mozharness/mozilla/testing/testbase.py +++ b/testing/mozharness/mozharness/mozilla/testing/testbase.py @@ -540,28 +540,73 @@ Did you run with --create-virtualenv? Is mozinstall in virtualenv_modules?""") def uninstall(self): self.uninstall_app() + def query_minidump_tooltool_manifest(self): + if self.config.get('minidump_tooltool_manifest_path'): + return self.config['minidump_tooltool_manifest_path'] + + self.info('Minidump tooltool manifest unknown. Determining based upon ' + 'platform and architecture.') + platform_name = self.platform_name() + + if platform_name: + tooltool_path = "config/tooltool-manifests/%s/releng.manifest" % \ + TOOLTOOL_PLATFORM_DIR[platform_name] + return tooltool_path + else: + self.fatal('We could not determine the minidump\'s filename.') + + def query_minidump_filename(self): + if self.config.get('minidump_stackwalk_path'): + return self.config['minidump_stackwalk_path'] + + self.info('Minidump filename unknown. Determining based upon platform ' + 'and architecture.') + platform_name = self.platform_name() + if platform_name: + minidump_filename = '%s-minidump_stackwalk' % TOOLTOOL_PLATFORM_DIR[platform_name] + if platform_name in ('win32', 'win64'): + minidump_filename += '.exe' + return minidump_filename + else: + self.fatal('We could not determine the minidump\'s filename.') + def query_minidump_stackwalk(self, manifest=None): if self.minidump_stackwalk_path: return self.minidump_stackwalk_path - minidump_stackwalk_path = None + c = self.config + dirs = self.query_abs_dirs() - if 'MOZ_FETCHES_DIR' in os.environ: - minidump_stackwalk_path = os.path.join( - os.environ['MOZ_FETCHES_DIR'], - 'minidump_stackwalk', - 'minidump_stackwalk') + # This is the path where we either download to or is already on the host + minidump_stackwalk_path = self.query_minidump_filename() - if self.platform_name() in ('win32', 'win64'): - minidump_stackwalk_path += '.exe' + if not manifest: + tooltool_manifest_path = self.query_minidump_tooltool_manifest() + manifest = os.path.join(dirs.get('abs_test_install_dir', + os.path.join(dirs['abs_work_dir'], 'tests')), + tooltool_manifest_path) - if not minidump_stackwalk_path or not os.path.isfile(minidump_stackwalk_path): - self.error("minidump_stackwalk path was not fetched?") + self.info('grabbing minidump binary from tooltool') + try: + self.tooltool_fetch( + manifest=manifest, + output_dir=dirs['abs_work_dir'], + cache=c.get('tooltool_cache') + ) + except KeyError: + self.error('missing a required key.') + + abs_minidump_path = os.path.join(dirs['abs_work_dir'], + minidump_stackwalk_path) + if os.path.exists(abs_minidump_path): + self.chmod(abs_minidump_path, 0o755) + self.minidump_stackwalk_path = abs_minidump_path + else: + self.warning("minidump stackwalk path was given but couldn't be found. " + "Tried looking in '%s'" % abs_minidump_path) # don't burn the job but we should at least turn them orange so it is caught self.record_status(TBPL_WARNING, WARNING) - return None - self.minidump_stackwalk_path = minidump_stackwalk_path return self.minidump_stackwalk_path def query_options(self, *args, **kwargs):