Closed Bug 1377216 Opened 7 years ago Closed 7 years ago

Intermittent windows 2012 static Exception: Unable to obtain hg path. Try running |mach bootstrap| to ensure your environment is up to date.

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(firefox56 fixed)

RESOLVED FIXED
mozilla56
Tracking Status
firefox56 --- fixed

People

(Reporter: aryx, Assigned: gps)

References

(Blocks 1 open bug)

Details

(Keywords: intermittent-failure, Whiteboard: [stockwell fixed:other])

Attachments

(6 files)

This is new and not bug 1367329 (against which some occurrences have been starred).

https://treeherder.mozilla.org/logviewer.html#?job_id=110802612&repo=mozilla-inbound

19:28:15     INFO - mozmake.EXE[2]: Entering directory 'z:/task_1498762476/build/src/obj-firefox/js/src'
19:28:15     INFO - (cd z:/task_1498762476/build/src/js/src && z:/task_1498762476/build/src/obj-firefox/_virtualenv/Scripts/python.exe z:/task_1498762476/build/src/config/check_spidermonkey_style.py);
19:28:15     INFO - MALLOC_LOG=test_output.log MOZ_REPLACE_MALLOC_LIB=z:/task_1498762476/build/src/obj-firefox/memory/replace/logalloc/replay/../logalloc.dll ./logalloc-replay.exe < z:/task_1498762476/build/src/memory/replace/logalloc/replay/replay.log
19:28:15     INFO - (cd z:/task_1498762476/build/src/js/src && z:/task_1498762476/build/src/obj-firefox/_virtualenv/Scripts/python.exe z:/task_1498762476/build/src/config/check_macroassembler_style.py);
19:28:15     INFO - (cd z:/task_1498762476/build/src && z:/task_1498762476/build/src/obj-firefox/_virtualenv/Scripts/python.exe z:/task_1498762476/build/src/config/check_js_msg_encoding.py);
19:28:15     INFO - (cd z:/task_1498762476/build/src && z:/task_1498762476/build/src/obj-firefox/_virtualenv/Scripts/python.exe z:/task_1498762476/build/src/config/check_js_opcode.py);
19:28:15     INFO - #0 mapped: 1048576; allocated: 0; waste: 0; dirty: 0; bookkeep: 4096; binunused: 0
19:28:15     INFO - #10 mapped: 2097152; allocated: 10336; waste: 0; dirty: 8192; bookkeep: 13440; binunused: 70432
19:28:15     INFO - sed -n '/jemalloc_stats/,$p' test_output.log | z:/task_1498762476/build/src/obj-firefox/_virtualenv/Scripts/python.exe z:/task_1498762476/build/src/memory/replace/logalloc/replay/logalloc_munge.py | diff -w - expected_output.log
19:28:15     INFO - processing z:/task_1498762476/build/src/config/tests/src-simple/jar.mn
19:28:15     INFO - mozmake.EXE[4]: Leaving directory 'z:/task_1498762476/build/src/obj-firefox/config/tests/src-simple'
19:28:15     INFO - Comparing manifests...
19:28:15     INFO - Could not find 'hg' on the path.
19:28:15     INFO - MALLOC_LOG=1 MOZ_REPLACE_MALLOC_LIB=z:/task_1498762476/build/src/obj-firefox/memory/replace/logalloc/replay/../minimal/logalloc_minimal.dll ./logalloc-replay.exe < z:/task_1498762476/build/src/memory/replace/logalloc/replay/replay.log | sed -n '/jemalloc_stats/,$p' | z:/task_1498762476/build/src/obj-firefox/_virtualenv/Scripts/python.exe z:/task_1498762476/build/src/memory/replace/logalloc/replay/logalloc_munge.py | diff -w - z:/task_1498762476/build/src/memory/replace/logalloc/replay/expected_output_minimal.log
19:28:15     INFO - Traceback (most recent call last):
19:28:15     INFO -   File "z:/task_1498762476/build/src/config/check_spidermonkey_style.py", line 597, in <module>
19:28:15     INFO -     main()
19:28:15     INFO -   File "z:/task_1498762476/build/src/config/check_spidermonkey_style.py", line 586, in main
19:28:15     INFO -     ok = check_style()
19:28:15     INFO -   File "z:/task_1498762476/build/src/config/check_spidermonkey_style.py", line 252, in check_style
19:28:15     INFO -     repo = get_repository_from_env()
19:28:15     INFO -   File "z:\task_1498762476\build\src\python\mozversioncontrol\mozversioncontrol\__init__.py", line 162, in get_repository_from_env
19:28:15     INFO -     return get_repository_object(path)
19:28:15     INFO -   File "z:\task_1498762476\build\src\python\mozversioncontrol\mozversioncontrol\__init__.py", line 143, in get_repository_object
19:28:15     INFO -     return HgRepository(path)
19:28:15     INFO -   File "z:\task_1498762476\build\src\python\mozversioncontrol\mozversioncontrol\__init__.py", line 87, in __init__
19:28:15     INFO -     super(HgRepository, self).__init__(path, 'hg')
19:28:15     INFO -   File "z:\task_1498762476\build\src\python\mozversioncontrol\mozversioncontrol\__init__.py", line 37, in __init__
19:28:15     INFO -     self._tool = get_tool_path(tool)
19:28:15     INFO -   File "z:\task_1498762476\build\src\python\mozversioncontrol\mozversioncontrol\__init__.py", line 31, in get_tool_path
19:28:15     INFO -     'date.' % tool)
19:28:15     INFO - Exception: Unable to obtain hg path. Try running |mach bootstrap| to ensure your environment is up to date.
19:28:16     INFO - Makefile:61: recipe for target 'check-style' failed
19:28:16     INFO - mozmake.EXE[2]: *** [check-style] Error 1
19:28:16     INFO - #0 mapped: 1048576; allocated: 0; waste: 0; dirty: 0; bookkeep: 4096; binunused: 0
19:28:16     INFO - #10 mapped: 2097152; allocated: 10336; waste: 0; dirty: 8192; bookkeep: 13440; binunused: 70432
19:28:16     INFO - TEST-PASS | check_js_opcode.py | ok
19:28:16     INFO - Archive:  ../../../dist/xpi-stage/test_jar_mn/chrome/test.jar
19:28:16     INFO -  extracting: ../../../dist/xpi-stage/test_jar_mn/chrome/test/one/file.xml
19:28:16     INFO -  extracting: ../../../dist/xpi-stage/test_jar_mn/chrome/test/one/preproc
19:28:16     INFO -  extracting: ../../../dist/xpi-stage/test_jar_mn/chrome/test/one/some.css
19:28:16     INFO -  extracting: ../../../dist/xpi-stage/test_jar_mn/chrome/test/two/otherfile.xml
19:28:16     INFO -  extracting: ../../../dist/xpi-stage/test_jar_mn/chrome/test/three/l10nfile.txt
19:28:16     INFO - Comparing packages...
19:28:16     INFO - mozmake.EXE[2]: Leaving directory 'z:/task_1498762476/build/src/obj-firefox/memory/replace/logalloc/replay'
19:28:16     INFO - mozmake.EXE[3]: Leaving directory 'z:/task_1498762476/build/src/obj-firefox/config/tests/src-simple'
19:28:16     INFO - z:/task_1498762476/build/src/mozmake.EXE -C tests/src-simple check-flat
19:28:16     INFO - mozmake.EXE[3]: Entering directory 'z:/task_1498762476/build/src/obj-firefox/config/tests/src-simple'
19:28:16     INFO - if test -d ../../../dist/xpi-stage/test_jar_mn; then rm -rf ../../../dist/xpi-stage/test_jar_mn; fi;
19:28:16     INFO - z:/task_1498762476/build/src/mozmake.EXE realchrome MOZ_JAR_MAKER_FILE_FORMAT=flat
19:28:16     INFO - mozmake.EXE[4]: Entering directory 'z:/task_1498762476/build/src/obj-firefox/config/tests/src-simple'
19:28:16     INFO - mkdir -p '../../../dist/xpi-stage/test_jar_mn/chrome/'
19:28:16     INFO - z:/task_1498762476/build/src/obj-firefox/_virtualenv/Scripts/python.exe -m mozbuild.action.jar_maker   -d ../../../dist/xpi-stage/test_jar_mn -t z:/task_1498762476/build/src -f flat  --relativesrcdir=config/tests/src-simple -c z:/task_1498762476/build/src/config/tests/src-simple/l10n  -DA11Y_LOG=1 -DACCESSIBILITY=1 -DBUILD_CTYPES=1 -DCROSS_COMPILE='' -DD_INO=d_ino -DE10S_TESTING_ONLY=1 -DEARLY_BETA_OR_EARLIER=1 -DENABLE_INTL_API=1 -DENABLE_SYSTEM_EXTENSION_DIRS=1 -DENABLE_TESTS=1 -DEXPOSE_INTL_API=1 -DFIREFOX_VERSION=56.0a1 -DFORCE_PR_LOG=1 -DGTEST_HAS_RTTI=0 -DHAVE_64BIT_BUILD=1 -DHAVE_CPUID_H=1 -DHAVE_FORCEINLINE=1 -DHAVE_INTTYPES_H=1 -DHAVE_IO_H=1 -DHAVE_ISATTY=1 -DHAVE_LOCALECONV=1 -DHAVE_MALLOC_H=1 -DHAVE_SEH_EXCEPTIONS=1 -DHAVE_STDINT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UINT64_T=1 -DJS_DEFAULT_JITREPORT_GRANULARITY=3 -DMALLOC_H='<malloc.h>' -DMALLOC_USABLE_SIZE_CONST_PTR=const -DMOZILLA_UAVERSION='"56.0"' -DMOZILLA_VERSION='"56.0a1"' -DMOZILLA_VERSION_U=56.0a1 -DMOZ_ADDON_SIGNING=1 -DMOZ_ALLOW_LEGACY_EXTENSIONS=1 -DMOZ_APP_UA_NAME='""' -DMOZ_APP_UA_VERSION='"56.0a1"' -DMOZ_AV1=1 -DMOZ_B2G_OS_NAME='""' -DMOZ_B2G_VERSION='"1.0.0"' -DMOZ_BUILD_APP=browser -DMOZ_BUILD_WEBRENDER=1 -DMOZ_BUNDLED_FONTS=1 -DMOZ_CLANG_PLUGIN=1 -DMOZ_CONTENT_SANDBOX=1 -DMOZ_CRASHREPORTER=1 -DMOZ_CRASHREPORTER_ENABLE_PERCENT=100 -DMOZ_DATA_REPORTING=1 -DMOZ_DISTRIBUTION_ID='"org.mozilla"' -DMOZ_DLL_SUFFIX='".dll"' -DMOZ_ENABLE_MASK_AS_SHORTHAND=1 -DMOZ_ENABLE_SIGNMAR=1 -DMOZ_ENABLE_SKIA=1 -DMOZ_ENABLE_SKIA_PDF=1 -DMOZ_ENABLE_SKIA_PDF_SFNTLY=1 -DMOZ_FEEDS=1 -DMOZ_FFVPX=1 -DMOZ_FMP4=1 -DMOZ_GECKO_PROFILER=1 -DMOZ_GMP_SANDBOX=1 -DMOZ_INSTRUMENT_EVENT_LOOP=1 -DMOZ_LIBAV_FFT=1 -DMOZ_LOGGING=1 -DMOZ_MACBUNDLE_ID=org.mozilla.nightly -DMOZ_MAINTENANCE_SERVICE=1 -DMOZ_MEMORY=1 -DMOZ_MEMORY_WINDOWS=1 -DMOZ_MSVC_STL_WRAP_RAISE=1 -DMOZ_PEERCONNECTION=1 -DMOZ_PERMISSIONS=1 -DMOZ_PHOENIX=1 -DMOZ_PHOTON_ANIMATIONS=1 -DMOZ_PHOTON_THEME=1 -DMOZ_PLACES=1 -DMOZ_PROFILING=1 -DMOZ_RAW=1 -DMOZ_REPLACE_MALLOC=1 -DMOZ_RUST_SIMD=1 -DMOZ_RUST_URLPARSE=1 -DMOZ_SAMPLE_TYPE_FLOAT32=1 -DMOZ_SANDBOX=1 -DMOZ_SCTP=1 -DMOZ_SECUREELEMENT=1 -DMOZ_SERVICES_HEALTHREPORT=1 -DMOZ_SRTP=1 -DMOZ_STATIC_JS=1 -DMOZ_TREE_CAIRO=1 -DMOZ_TREE_PIXMAN=1 -DMOZ_UPDATER=1 -DMOZ_UPDATE_CHANNEL=default -DMOZ_USER_DIR='"Mozilla"' -DMOZ_VORBIS=1 -DMOZ_VPX_NO_MEM_REPORTING=1 -DMOZ_VTUNE=1 -DMOZ_WEBM_ENCODER=1 -DMOZ_WEBRTC=1 -DMOZ_WEBRTC_ASSERT_ALWAYS=1 -DMOZ_WEBRTC_SIGNALING=1 -DMOZ_WEBSPEECH=1 -DMOZ_WEBSPEECH_TEST_BACKEND=1 -DMOZ_WMF=1 -DMOZ_XUL=1 -DMSVC_HAS_DIA_SDK=1 -DNIGHTLY_BUILD=1 -DNOMINMAX=1 -DNO_NSPR_10_SUPPORT=1 -DNS_ENABLE_TSF=1 -DNS_PRINTING=1 -DNS_PRINT_PREVIEW=1 -DSTATIC_JS_API=1 -DSTDC_HEADERS=1 -DTARGET_XPCOM_ABI='"x86_64-msvc"' -DUSE_SKIA=1 -DUSE_SKIA_GPU=1 -DU_STATIC_IMPLEMENTATION=1 -DU_USING_ICU_NAMESPACE=0 -DVPX_X86_ASM=1 -DWIN32=1 -DWIN32_LEAN_AND_MEAN=1 -DWINVER=0x601 -DXP_WIN=1 -DXP_WIN32=1 -DX_DISPLAY_MISSING=1 -D_AMD64_=1 -D_CRT_NONSTDC_NO_WARNINGS=1 -D_CRT_SECURE_NO_WARNINGS=1 -D_USE_MATH_DEFINES=1 -D_WIN32_IE=0x0800 -D_WIN32_WINNT=0x601 -D_WINDOWS=1 -DAB_CD=en-US -DAB_CD=ab-X-stuff  z:/task_1498762476/build/src/config/tests/src-simple/jar.mn
19:28:16     INFO - processing z:/task_1498762476/build/src/config/tests/src-simple/jar.mn
19:28:16     INFO - mozmake.EXE[4]: Leaving directory 'z:/task_1498762476/build/src/obj-firefox/config/tests/src-simple'
19:28:16     INFO - Comparing manifests...
19:28:16     INFO - Comparing packages...
19:28:16     INFO - mozmake.EXE[3]: Leaving directory 'z:/task_1498762476/build/src/obj-firefox/config/tests/src-simple'
19:28:16     INFO - z:/task_1498762476/build/src/mozmake.EXE -C tests/src-simple check-flat USE_EXTENSION_MANIFEST=1
19:28:16     INFO - mozmake.EXE[3]: Entering directory 'z:/task_1498762476/build/src/obj-firefox/config/tests/src-simple'
19:28:16     INFO - if test -d ../../../dist/xpi-stage/test_jar_mn; then rm -rf ../../../dist/xpi-stage/test_jar_mn; fi;
19:28:16     INFO - z:/task_1498762476/build/src/mozmake.EXE realchrome MOZ_JAR_MAKER_FILE_FORMAT=flat
19:28:16     INFO - mozmake.EXE[4]: Entering directory 'z:/task_1498762476/build/src/obj-firefox/config/tests/src-simple'
19:28:16     INFO - mkdir -p '../../../dist/xpi-stage/test_jar_mn/chrome/'
19:28:16     INFO - z:/task_1498762476/build/src/obj-firefox/_virtualenv/Scripts/python.exe -m mozbuild.action.jar_maker   -d ../../../dist/xpi-stage/test_jar_mn -t z:/task_1498762476/build/src -f flat  -e --relativesrcdir=config/tests/src-simple -c z:/task_1498762476/build/src/config/tests/src-simple/l10n  -DA11Y_LOG=1 -DACCESSIBILITY=1 -DBUILD_CTYPES=1 -DCROSS_COMPILE='' -DD_INO=d_ino -DE10S_TESTING_ONLY=1 -DEARLY_BETA_OR_EARLIER=1 -DENABLE_INTL_API=1 -DENABLE_SYSTEM_EXTENSION_DIRS=1 -DENABLE_TESTS=1 -DEXPOSE_INTL_API=1 -DFIREFOX_VERSION=56.0a1 -DFORCE_PR_LOG=1 -DGTEST_HAS_RTTI=0 -DHAVE_64BIT_BUILD=1 -DHAVE_CPUID_H=1 -DHAVE_FORCEINLINE=1 -DHAVE_INTTYPES_H=1 -DHAVE_IO_H=1 -DHAVE_ISATTY=1 -DHAVE_LOCALECONV=1 -DHAVE_MALLOC_H=1 -DHAVE_SEH_EXCEPTIONS=1 -DHAVE_STDINT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UINT64_T=1 -DJS_DEFAULT_JITREPORT_GRANULARITY=3 -DMALLOC_H='<malloc.h>' -DMALLOC_USABLE_SIZE_CONST_PTR=const -DMOZILLA_UAVERSION='"56.0"' -DMOZILLA_VERSION='"56.0a1"' -DMOZILLA_VERSION_U=56.0a1 -DMOZ_ADDON_SIGNING=1 -DMOZ_ALLOW_LEGACY_EXTENSIONS=1 -DMOZ_APP_UA_NAME='""' -DMOZ_APP_UA_VERSION='"56.0a1"' -DMOZ_AV1=1 -DMOZ_B2G_OS_NAME='""' -DMOZ_B2G_VERSION='"1.0.0"' -DMOZ_BUILD_APP=browser -DMOZ_BUILD_WEBRENDER=1 -DMOZ_BUNDLED_FONTS=1 -DMOZ_CLANG_PLUGIN=1 -DMOZ_CONTENT_SANDBOX=1 -DMOZ_CRASHREPORTER=1 -DMOZ_CRASHREPORTER_ENABLE_PERCENT=100 -DMOZ_DATA_REPORTING=1 -DMOZ_DISTRIBUTION_ID='"org.mozilla"' -DMOZ_DLL_SUFFIX='".dll"' -DMOZ_ENABLE_MASK_AS_SHORTHAND=1 -DMOZ_ENABLE_SIGNMAR=1 -DMOZ_ENABLE_SKIA=1 -DMOZ_ENABLE_SKIA_PDF=1 -DMOZ_ENABLE_SKIA_PDF_SFNTLY=1 -DMOZ_FEEDS=1 -DMOZ_FFVPX=1 -DMOZ_FMP4=1 -DMOZ_GECKO_PROFILER=1 -DMOZ_GMP_SANDBOX=1 -DMOZ_INSTRUMENT_EVENT_LOOP=1 -DMOZ_LIBAV_FFT=1 -DMOZ_LOGGING=1 -DMOZ_MACBUNDLE_ID=org.mozilla.nightly -DMOZ_MAINTENANCE_SERVICE=1 -DMOZ_MEMORY=1 -DMOZ_MEMORY_WINDOWS=1 -DMOZ_MSVC_STL_WRAP_RAISE=1 -DMOZ_PEERCONNECTION=1 -DMOZ_PERMISSIONS=1 -DMOZ_PHOENIX=1 -DMOZ_PHOTON_ANIMATIONS=1 -DMOZ_PHOTON_THEME=1 -DMOZ_PLACES=1 -DMOZ_PROFILING=1 -DMOZ_RAW=1 -DMOZ_REPLACE_MALLOC=1 -DMOZ_RUST_SIMD=1 -DMOZ_RUST_URLPARSE=1 -DMOZ_SAMPLE_TYPE_FLOAT32=1 -DMOZ_SANDBOX=1 -DMOZ_SCTP=1 -DMOZ_SECUREELEMENT=1 -DMOZ_SERVICES_HEALTHREPORT=1 -DMOZ_SRTP=1 -DMOZ_STATIC_JS=1 -DMOZ_TREE_CAIRO=1 -DMOZ_TREE_PIXMAN=1 -DMOZ_UPDATER=1 -DMOZ_UPDATE_CHANNEL=default -DMOZ_USER_DIR='"Mozilla"' -DMOZ_VORBIS=1 -DMOZ_VPX_NO_MEM_REPORTING=1 -DMOZ_VTUNE=1 -DMOZ_WEBM_ENCODER=1 -DMOZ_WEBRTC=1 -DMOZ_WEBRTC_ASSERT_ALWAYS=1 -DMOZ_WEBRTC_SIGNALING=1 -DMOZ_WEBSPEECH=1 -DMOZ_WEBSPEECH_TEST_BACKEND=1 -DMOZ_WMF=1 -DMOZ_XUL=1 -DMSVC_HAS_DIA_SDK=1 -DNIGHTLY_BUILD=1 -DNOMINMAX=1 -DNO_NSPR_10_SUPPORT=1 -DNS_ENABLE_TSF=1 -DNS_PRINTING=1 -DNS_PRINT_PREVIEW=1 -DSTATIC_JS_API=1 -DSTDC_HEADERS=1 -DTARGET_XPCOM_ABI='"x86_64-msvc"' -DUSE_SKIA=1 -DUSE_SKIA_GPU=1 -DU_STATIC_IMPLEMENTATION=1 -DU_USING_ICU_NAMESPACE=0 -DVPX_X86_ASM=1 -DWIN32=1 -DWIN32_LEAN_AND_MEAN=1 -DWINVER=0x601 -DXP_WIN=1 -DXP_WIN32=1 -DX_DISPLAY_MISSING=1 -D_AMD64_=1 -D_CRT_NONSTDC_NO_WARNINGS=1 -D_CRT_SECURE_NO_WARNINGS=1 -D_USE_MATH_DEFINES=1 -D_WIN32_IE=0x0800 -D_WIN32_WINNT=0x601 -D_WINDOWS=1 -DAB_CD=en-US -DAB_CD=ab-X-stuff  z:/task_1498762476/build/src/config/tests/src-simple/jar.mn
19:28:16     INFO - processing z:/task_1498762476/build/src/config/tests/src-simple/jar.mn
19:28:16     INFO - mozmake.EXE[4]: Leaving directory 'z:/task_1498762476/build/src/obj-firefox/config/tests/src-simple'
19:28:16     INFO - Comparing manifests...
19:28:16     INFO - Comparing packages...
19:28:16     INFO - mozmake.EXE[3]: Leaving directory 'z:/task_1498762476/build/src/obj-firefox/config/tests/src-simple'
19:28:16     INFO - mozmake.EXE[2]: Leaving directory 'z:/task_1498762476/build/src/obj-firefox/config'
19:28:17     INFO - TEST-PASS | check_js_msg_encoding.py | z:\task_1498762476\build\src\dom/bindings/Errors.msg | ok
19:28:17     INFO - TEST-PASS | check_js_msg_encoding.py | z:\task_1498762476\build\src\js/src/ctypes/ctypes.msg | ok
19:28:17     INFO - TEST-PASS | check_js_msg_encoding.py | z:\task_1498762476\build\src\js/src/js.msg | ok
19:28:17     INFO - TEST-PASS | check_js_msg_encoding.py | z:\task_1498762476\build\src\js/src/jsshell.msg | ok
19:28:17     INFO - TEST-PASS | check_js_msg_encoding.py | z:\task_1498762476\build\src\js/xpconnect/src/jsshell.msg | ok
19:28:17     INFO - TEST-PASS | check_macroassembler_style.py | ok
19:28:17     INFO - mozmake.EXE[2]: Target 'check' not remade because of errors.
19:28:17     INFO - mozmake.EXE[2]: Leaving directory 'z:/task_1498762476/build/src/obj-firefox/js/src'
19:28:17     INFO - z:/task_1498762476/build/src/config/recurse.mk:100: recipe for target 'js/src/check' failed
19:28:17     INFO - mozmake.EXE[1]: *** [js/src/check] Error 2
19:28:17     INFO - mozmake.EXE[1]: Target 'recurse_check' not remade because of errors.
19:28:17     INFO - mozmake.EXE[1]: Leaving directory 'z:/task_1498762476/build/src/obj-firefox'
19:28:17     INFO - z:/task_1498762476/build/src/config/recurse.mk:32: recipe for target 'check' failed
19:28:17     INFO - mozmake.EXE: *** [check] Error 2
Flags: needinfo?(mh+mozilla)
Flags: needinfo?(mh+mozilla) → needinfo?(gps)
(In reply to Sebastian Hengst [:aryx][:archaeopteryx] (needinfo on intermittent or backout) from comment #0)
> This is new and not bug 1367329 (against which some occurrences have been
> starred).

The error handling was modified in https://hg.mozilla.org/mozilla-central/rev/77038889d2a8, so it looks to me like this is a continuation of bug 1367329: failures that would previously report "not all arguments converted during string formatting" now report "Unable to obtain hg path".
See Also: → 1367329
Whiteboard: [stockwell needswork]
(In reply to Geoff Brown [:gbrown] from comment #2)
> The error handling was modified in
> https://hg.mozilla.org/mozilla-central/rev/77038889d2a8, so it looks to me
> like this is a continuation of bug 1367329: failures that would previously
> report "not all arguments converted during string formatting" now report
> "Unable to obtain hg path".

I agree.

Now the question is why it is intermittently unable to find the hg path. I have no clue how this failure could be intermittent: either the system has hg in PATH or it doesn't.

The log shows c:\Program Files\Mercurial\hg.exe being used to do the checkout. And a printed PATH does contain c:\Program Files\Mercurial\hg.exe. So my guess is something is manipulating PATH or causing it to be mangled.

I'm tempted to detect version control tools in configure and pass the paths to these along to whatever executes them. At least then we'll consistently execute the same binary without relying on PATH.
Flags: needinfo?(gps)
:gps, this has a very high failure rate- is there pending work to get this resolved soon?
Flags: needinfo?(gps)
I'll code up a patch.
Assignee: nobody → gps
Status: NEW → ASSIGNED
Flags: needinfo?(gps)
Comment on attachment 8886733 [details]
Bug 1377216 - Discover version control info in configure;

https://reviewboard.mozilla.org/r/157534/#review163098

::: build/moz.configure/init.configure:331
(Diff revision 1)
> +git = check_prog('GIT', ('git',),
> +                 when=depends(vcs_checkout_type)(lambda x: x == 'git'))

It occurred to me that Git may not be in PATH for MozillaBuild users. Although if you are switching terminals just to use Git, that feels like a horrible workflow, so I can't imagine who wouldn't have hacked up their MozillaBuild environment to make Git available.

Anyway, given this shortcoming and that Git is not the canonical VCS, we may want to make Git an optional dependency. Although, that does undermine the ability of subsequent patches to make the assumption that HG or GIT always exists.
Comment on attachment 8886733 [details]
Bug 1377216 - Discover version control info in configure;

https://reviewboard.mozilla.org/r/157534/#review163098

> It occurred to me that Git may not be in PATH for MozillaBuild users. Although if you are switching terminals just to use Git, that feels like a horrible workflow, so I can't imagine who wouldn't have hacked up their MozillaBuild environment to make Git available.
> 
> Anyway, given this shortcoming and that Git is not the canonical VCS, we may want to make Git an optional dependency. Although, that does undermine the ability of subsequent patches to make the assumption that HG or GIT always exists.

Here's what I'd suggest: it's fine if hg/git is not there, and in that case, just don't set VCS_CHECKOUT_TYPE.
Comment on attachment 8886733 [details]
Bug 1377216 - Discover version control info in configure;

https://reviewboard.mozilla.org/r/157534/#review163212

::: build/moz.configure/init.configure:324
(Diff revision 1)
> +    if os.path.exists(os.path.join(build_env.topsrcdir, '.hg')):
> +        return 'hg'
> +    elif os.path.exists(os.path.join(build_env.topsrcdir, '.git')):
> +        return 'git'
> +    else:
> +        return 'none'

how about returning None and having VCS_CHECKOUT_TYPE unset in that case?

::: build/moz.configure/init.configure:340
(Diff revision 1)
> +@checking('for Mercurial version')
> +@imports('re')
> +def hg_version(hg):
> +    out = check_cmd_output(hg, '--version')
> +
> +    match = re.search(r'Mercurial Distributed SCM \(version ([^\)]+)', out)

Fun fact: that string is localized. On my machine, it says "Mercurial - 分散構成管理ツール(バージョン x.y)"

::: build/moz.configure/init.configure:353
(Diff revision 1)
> +@checking('for Git version')
> +@imports('re')
> +def git_version(git):
> +    out = check_cmd_output(git, '--version').rstrip()
> +
> +    match = re.search('git version (.*)$', out)

this one is fortunately not localized.
Attachment #8886733 - Flags: review?(mh+mozilla)
Comment on attachment 8886734 [details]
Bug 1377216 - Use substs for determining checkout type;

https://reviewboard.mozilla.org/r/157536/#review163216
Attachment #8886734 - Flags: review?(mh+mozilla) → review+
Comment on attachment 8886735 [details]
Bug 1377216 - Use substs for resolving path to Mercurial and Git;

https://reviewboard.mozilla.org/r/157538/#review163218
Attachment #8886735 - Flags: review?(mh+mozilla) → review+
Comment on attachment 8886736 [details]
Bug 1377216 - Use configure-derived VCS info to find repository;

https://reviewboard.mozilla.org/r/157540/#review163220

Why not just import buildconfig and use substs from there, instead of relying on every build backend to implement this?
Attachment #8886736 - Flags: review?(mh+mozilla)
(In reply to Mike Hommey [:glandium] from comment #19)
> ::: build/moz.configure/init.configure:340
> (Diff revision 1)
> > +@checking('for Mercurial version')
> > +@imports('re')
> > +def hg_version(hg):
> > +    out = check_cmd_output(hg, '--version')
> > +
> > +    match = re.search(r'Mercurial Distributed SCM \(version ([^\)]+)', out)
> 
> Fun fact: that string is localized. On my machine, it says "Mercurial -
> 分散構成管理ツール(バージョン x.y)"

Also, when using local builds of mercurial trunk, the version is "unknown".
Comment on attachment 8886733 [details]
Bug 1377216 - Discover version control info in configure;

https://reviewboard.mozilla.org/r/157534/#review163212

> how about returning None and having VCS_CHECKOUT_TYPE unset in that case?

I wanted to have things unconditionally defined so you could `self.substs['VCS_CHECKOUT_TYPE']` instead of `self.substs.get('VCS_CHECKOUT_TYPE')`. But I guess the extra few characters isn't too bad.

> Fun fact: that string is localized. On my machine, it says "Mercurial - 分散構成管理ツール(バージョン x.y)"

Ugh. You can use `-T '{ver}'` on modern versions. But, yeah, annoying.
Comment on attachment 8886736 [details]
Bug 1377216 - Use configure-derived VCS info to find repository;

https://reviewboard.mozilla.org/r/157540/#review163220

I forgot about buildconfig :)
Comment on attachment 8886733 [details]
Bug 1377216 - Discover version control info in configure;

https://reviewboard.mozilla.org/r/157534/#review163330

::: build/moz.configure/init.configure:323
(Diff revision 2)
> +    else:
> +        return None

Technically, you don't need this branch at all. If you still do want the explicit return None, you should put it there without the else.

::: build/moz.configure/init.configure:337
(Diff revision 2)
> +@depends_if(hg)
> +@checking('for Mercurial version')
> +@imports('os')
> +@imports('re')
> +def hg_version(hg):
> +    # HGPLAIN forces stable output, regardless of set locale or encoding.

FTR, this is true as of mercurial 1.5, which is old enough to care about versions that don't support HGPLAIN. May want to add this information in the comment.

::: build/moz.configure/init.configure:355
(Diff revision 2)
> +    if v == 'unknown':
> +        return v

So, it turns out that the Version class is happy with 'unknown' (it's derived from LooseVersion). It even kind of makes sense in how it's considered in comparisons: it's greater than any numeric version. Meaning, it might make sense to just return Version(v)

::: build/moz.configure/init.configure:380
(Diff revision 2)
> +    else:
> +        return None

same comment as for vcs_checkout_type()
Attachment #8886733 - Flags: review?(mh+mozilla) → review+
Comment on attachment 8886736 [details]
Bug 1377216 - Use configure-derived VCS info to find repository;

https://reviewboard.mozilla.org/r/157540/#review163334

::: commit-message-49903:17
(Diff revision 2)
> +This should get rid of the intermittent failure. If it doesn't,
> +it is still a step in the right direction because it will allow
> +build system processes to consistently use a well-defined VCS
> +binary.

Mmmmmm... this makes me think if we don't find hg during configure for the same reason, we will end up skipping everything VCS-related during the build. Which could mean things like crash symbols not pointing to VCS...

So while the "don't care about VCS if we can't find the binary" is good for local builds, it might be detrimental for automation... Maybe change the first patch to error out during configure if MOZ_AUTOMATION is set?

::: python/mozversioncontrol/mozversioncontrol/__init__.py:16
(Diff revision 2)
>  
>  from distutils.version import LooseVersion
>  
>  def get_tool_path(tool):
>      """Obtain the path of `tool`."""
> +    if os.path.exists(tool):

should probably first check isabs(tool)

::: python/mozversioncontrol/mozversioncontrol/__init__.py:165
(Diff revision 2)
> +    scanning the filesystem.
> +    """
> +    try:
> +        import buildconfig
> +
> +        flavor = buildconfig.substs.get('VCS_CHECKOUT_TYPE', None)

get(foo, None) is the same as get(foo)

::: python/mozversioncontrol/mozversioncontrol/__init__.py:170
(Diff revision 2)
> +        flavor = buildconfig.substs.get('VCS_CHECKOUT_TYPE', None)
> +
> +        # If in build mode, only use what configure found. That way we ensure
> +        # that everything in the build system can be controlled via configure.
> +        if not flavor:
> +            raise Exception('could not find VCS_CHECKOUT_TYPE in build '

May want to make that a specific type of exception, so that callers can filter out if they want to.
Attachment #8886736 - Flags: review?(mh+mozilla)
Comment on attachment 8886736 [details]
Bug 1377216 - Use configure-derived VCS info to find repository;

https://reviewboard.mozilla.org/r/157540/#review163334

> Mmmmmm... this makes me think if we don't find hg during configure for the same reason, we will end up skipping everything VCS-related during the build. Which could mean things like crash symbols not pointing to VCS...
> 
> So while the "don't care about VCS if we can't find the binary" is good for local builds, it might be detrimental for automation... Maybe change the first patch to error out during configure if MOZ_AUTOMATION is set?

We won't skip VCS-related things during the build: we'll just fall back to the existing detection (which would fail).

But your point about MOZ_AUTOMATION is valid: I think we should require VCS info if that environment variable is set. I'll change configure.
Comment on attachment 8886733 [details]
Bug 1377216 - Discover version control info in configure;

https://reviewboard.mozilla.org/r/157534/#review163884
Comment on attachment 8886736 [details]
Bug 1377216 - Use configure-derived VCS info to find repository;

https://reviewboard.mozilla.org/r/157540/#review163886
Attachment #8886736 - Flags: review?(mh+mozilla) → review+
Comment on attachment 8887731 [details]
Bug 1377216 - Unset MOZ_AUTOMATION when building SpiderMonkey from package;

https://reviewboard.mozilla.org/r/158638/#review163900
Attachment #8887731 - Flags: review?(mh+mozilla) → review+
Comment on attachment 8887744 [details]
Bug 1377216 - Accept environment variables to check_cmd_output;

https://reviewboard.mozilla.org/r/158658/#review163912

::: build/moz.configure/util.configure:40
(Diff revision 1)
> +    # deal with this.
> +    if 'env' in kwargs:
> +        normalized_env = {}
> +        for k, v in kwargs['env'].items():
> +            if isinstance(k, unicode):
> +                k = k.encode('utf-8', 'strict')

Somehow, I'm ready to bet utf-8 will break on e.g. japanese locales. Can you check with some of the developers from the Tokyo office?
Attachment #8887744 - Flags: review?(mh+mozilla)
(In reply to Mike Hommey [:glandium] from comment #50)
> Somehow, I'm ready to bet utf-8 will break on e.g. japanese locales. Can you
> check with some of the developers from the Tokyo office?

This is what we do in mach's run_process() helper function and it seems to work. I think we're OK because keys in os.environ are str/bytes by default. Only the keys that we set from moz.configure will be unicode. i.e. we have mixed key/value types in os.environ. I suspect all entries we set from moz.configure will be UTF-8 (probably ASCII). So I /think/ this code will be fine.
Comment on attachment 8887744 [details]
Bug 1377216 - Accept environment variables to check_cmd_output;

https://reviewboard.mozilla.org/r/158658/#review164350

fair enough, then.
Attachment #8887744 - Flags: review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ce836965fd58
Unset MOZ_AUTOMATION when building SpiderMonkey from package; r=glandium
https://hg.mozilla.org/integration/autoland/rev/6cb234539746
Accept environment variables to check_cmd_output; r=glandium
https://hg.mozilla.org/integration/autoland/rev/ded5328ba74c
Discover version control info in configure; r=glandium
https://hg.mozilla.org/integration/autoland/rev/c8931588f674
Use substs for determining checkout type; r=glandium
https://hg.mozilla.org/integration/autoland/rev/1f37aebe0f43
Use substs for resolving path to Mercurial and Git; r=glandium
https://hg.mozilla.org/integration/autoland/rev/b5701f3ce506
Use configure-derived VCS info to find repository; r=glandium
Backed out for SM(pkg) bustage.
https://hg.mozilla.org/integration/autoland/rev/b31c56eb631789f9a1ffce34bf24e50d4da2950c

https://treeherder.mozilla.org/logviewer.html#?job_id=115760793&repo=autoland

subprocess.CalledProcessError: Command '['sh', '-c', u'/home/worker/workspace/sm-package/mozjs-56.0a1.0/js/src/configure --enable-optimize --enable-nspr-build --prefix=/home/worker/workspace/sm-package/mozjs-56.0a1.0/obj-spider/dist']' returned non-zero exit status 1
Flags: needinfo?(gps)
Depends on: 1381741
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2582a92759c4
Unset MOZ_AUTOMATION when building SpiderMonkey from package; r=glandium
https://hg.mozilla.org/integration/autoland/rev/e9dfbaff0283
Accept environment variables to check_cmd_output; r=glandium
https://hg.mozilla.org/integration/autoland/rev/ce73e01ddacb
Discover version control info in configure; r=glandium
https://hg.mozilla.org/integration/autoland/rev/c47a2cb229da
Use substs for determining checkout type; r=glandium
https://hg.mozilla.org/integration/autoland/rev/63aee8db6c85
Use substs for resolving path to Mercurial and Git; r=glandium
https://hg.mozilla.org/integration/autoland/rev/fe76c2e3e5e6
Use configure-derived VCS info to find repository; r=glandium
I fixed the configure bug that was introduced between when I wrote these patches and when they were rebased and relanded. Hopefully this sticks.
Flags: needinfo?(gps)
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/707f3d21bad6
Add dependency on --help to vcs_checkout_type; r=glandium
Blocks: 1382940
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/344d6f11ef15
Search for hg.exe before hg; r=glandium
Pretty sure we've seen 0 instances of this failure since the series made its way to all the repos. Yay.
Whiteboard: [stockwell needswork] → [stockwell fixed:other]
Blocks: 1384665
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: