Closed Bug 1982242 Opened 8 months ago Closed 7 months ago

`./mach build` fails to show the log when glean-sdk fails to install

Categories

(Firefox Build System :: General, defect, P3)

defect

Tracking

(firefox144 fixed)

RESOLVED FIXED
144 Branch
Tracking Status
firefox144 --- fixed

People

(Reporter: saschanaz, Assigned: saschanaz)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

> ./mach build
Creating the 'mach' site at C:\Users\sasch\.mozbuild\srcdirs\gecko-23ebcb979905\_virtualenvs\mach
Exception in thread Thread-6 (_readerthread):
Traceback (most recent call last):
  File "C:\Users\sasch\AppData\Local\Programs\Python\Python312-arm64\Lib\threading.py", line 1075, in _bootstrap_inner
    self.run()
  File "C:\Users\sasch\AppData\Local\Programs\Python\Python312-arm64\Lib\threading.py", line 1012, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\sasch\AppData\Local\Programs\Python\Python312-arm64\Lib\subprocess.py", line 1599, in _readerthread
    buffer.append(fh.read())
                  ^^^^^^^^^
  File "C:\Users\sasch\AppData\Local\Programs\Python\Python312-arm64\Lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 541: character maps to <undefined>
Could not install glean-sdk, so telemetry will not be collected. Continuing.

That log doesn't seem very useful, though.

So I wrote a script to look for 0x8d at position 541 in firefox:

Found 78 file(s) with 0x8d at position 541:
.\.gradle\configuration-cache\dde87372-853e-4c96-90a3-ebbd0c26c103\_components_compose-cfr.work.bin
.\.jj\repo\index\segments\673f98ac5cd38dc01c35d614c553e26a96780b4e3f9cafb6ea9bb0fb0e35bac197d6934d8b8a1ed72df1842e124beedda8c2d26d616bb3435d5e2299aa4c3e25
.\.jj\repo\index\segments\f161b68551cb9789dcfa2f41a1825b5e1a990d10ea9b745ce7c686ddafcc98870c42a2fad846b7539d6e296f85494f738ee9fc6fceda3b7ba1f5c7cfef85b02e
.\.jj\repo\store\extra\5d7bdf2703200c0e793e788b2ac79870fd80a4b73ff913959e890a8a41b62521a183944fdcf83d040955c985c8518a5c46c33a0ca15117f687b4a6e8ea059bf0
.\.jj\repo\store\extra\a0f5da4458bf4e328f3478280a5adac6b0553c8958294161fd37cd7143102d1d24a596fd34a27a711f0ae93c9384155d8a171cfa36f6560b754a5d07486abf72
.\.jj\repo\store\extra\a252c489905e2c1bef72bf2a3219b46ddcc69f9749e289a7fb10e06d8b8537425e9a2657d70c5ade3057a86f9178cd42b69b3ec774945129400fad4813e5e358
.\.jj\repo\store\extra\a78c7c735df53ac748eccc2679599cffee933f21844f59a34335b70a23b431a11223afd31e33af63a4dc272233f17a457c59a04f8e3727ef025f729c6ca1bb58
.\.jj\repo\store\extra\c8672292f088f8ef4a3d2347035819ced3482998efb6b4d3cb85ed617ee388b6626db9e9648ac07a3c48e1a9346bf30fba0990801c58af49666d05f2ae863bd1
.\devtools\docs\user\network_monitor\inspecting_web_sockets\wsi-filter.png
.\devtools\docs\user\page_inspector\how_to\edit_css_filters\css_filter_edit.png
.\devtools\docs\user\page_inspector\how_to\examine_and_edit_the_box_model\inline-box-model.png
.\devtools\docs\user\responsive_design_mode\rdmdevtools.png
.\gfx\wr\wrench\reftests\mask\circle.png
.\intl\icu\source\data\lang\kxv_Telu.txt
.\intl\icu\source\data\lang\ml.txt
.\intl\icu\source\data\lang\sd_Deva.txt
.\intl\icu\source\data\lang\sk.txt
.\intl\icu\source\data\lang\ti.txt
.\intl\icu\source\data\region\am.txt
.\intl\icu\source\data\region\gu.txt
.\intl\icu\source\data\translit\Latn_Beng.txt
.\intl\icu\source\data\translit\Latn_Deva.txt
.\intl\icu\source\data\translit\Latn_Gujr.txt
.\intl\icu\source\data\translit\Latn_Guru.txt
.\intl\icu\source\data\translit\Latn_Knda.txt
.\intl\icu\source\data\translit\Latn_Mlym.txt
.\intl\icu\source\data\translit\Latn_Orya.txt
.\intl\icu\source\data\translit\Latn_Taml.txt
.\intl\icu\source\data\translit\Latn_Telu.txt
.\layout\reftests\border-dotted\border-dashed-radius-non-integer-filled-mask.png
.\mobile\android\android-components\samples\compose-browser\src\main\res\mipmap-xxhdpi\ic_launcher_round.png
.\node_modules\license-checker-rseidelsohn\test\node_modules\@angular\common\locales\mn.mjs
.\node_modules\license-checker-rseidelsohn\test\node_modules\@angular\common\locales\ps.mjs
.\node_modules\license-checker-rseidelsohn\test\node_modules\@angular\common\locales\wae.mjs
.\node_modules\license-checker-rseidelsohn\test\node_modules\@angular\common\locales\global\zh.js
.\node_modules\license-checker-rseidelsohn\test\node_modules\ol-ext\img\map.layer.altitude.jpg
.\obj-x86_64-pc-windows-msvc\dist\bin\chrome\pdfjs\content\web\cmaps\Ext-RKSJ-H.bcmap
.\obj-x86_64-pc-windows-msvc\dist\bin\chrome\pdfjs\content\web\cmaps\HKm314-B5-H.bcmap
.\obj-x86_64-pc-windows-msvc\media\libjpeg\jpeg12\jutils.obj
.\obj-x86_64-pc-windows-msvc\media\libjpeg\jpeg16\jutils.obj
.\obj-x86_64-pc-windows-msvc\media\libjxl\opsin_params.obj
.\obj-x86_64-pc-windows-msvc\media\libpng\intel_init.obj
.\obj-x86_64-pc-windows-msvc\media\libvpx\copy_c.obj
.\obj-x86_64-pc-windows-msvc\release\incremental\bindgen-0q2ar2lyah6if\s-ha2noam0xv-1114gbp-05uc2a51dt1d1qzms7w8kdzu0\1brkpntcuov2bhjcylud5dds9.pre-lto.bc
.\obj-x86_64-pc-windows-msvc\release\incremental\bindgen-35znjmsqdgx7i\s-ha2nnjtee6-17gpxj4-42n7tc0gs253rn5s8wf4xax37\edysmhdt4r6hck8dvcdofztyt.pre-lto.bc
.\obj-x86_64-pc-windows-msvc\release\incremental\bindgen-3eha316auwlj6\s-ha2nh8fzjv-0bbaj5b-5ohqyncrnv3ic8as3ixiam0nf\2jh73bvamz4f7w5ei5skqm8ew.pre-lto.bc
.\obj-x86_64-pc-windows-msvc\release\incremental\build_script_build-0iddr2mwr0t2g\s-ha2nq4lgzv-0hilhcd-34x670vznz74d9bvhplupe3gw\7tgnowibj3sfsa27wdsh90ycl.o
.\obj-x86_64-pc-windows-msvc\release\incremental\build_script_build-2f22fyoiz1m4s\s-ha2nksvqz7-02fzkxk-5h2pnoozijap2l9z3dma41gt0\4vjav3pe1aq12oqv93xqnod3k.o
.\obj-x86_64-pc-windows-msvc\release\incremental\build_script_build-3900muku2bcbn\s-ha2ngqur12-06oa81q-ab28330ik7m6tbrdb3kakvas4\query-cache.bin
.\obj-x86_64-pc-windows-msvc\security\nss\lib\mozpkix\mozpkix_mozpkix\pkixverify.obj
.\obj-x86_64-pc-windows-msvc\security\nss\lib\ssl\ssl_ssl\sslenum.obj
.\obj-x86_64-pc-windows-msvc\x86_64-pc-windows-msvc\release\deps\libminidump_common-eaba5683a57dcf8a.rlib
.\obj-x86_64-pc-windows-msvc\x86_64-pc-windows-msvc\release\incremental\bitsdownload-2qyjjccsw1g8p\s-ha2ni2tnpl-11zzoid-dr9u8fmknhdjdyu3c6laqsl7i\ayk73b8ypdpcjudzutsg211wm.o
.\obj-x86_64-pc-windows-msvc\x86_64-pc-windows-msvc\release\incremental\cert_storage-3po4mvjn9va8r\s-ha2nkcpgqv-0lgwt6h-6dcrfo3zh64rk3ks3f25l2zks\query-cache.bin
.\obj-x86_64-pc-windows-msvc\x86_64-pc-windows-msvc\release\incremental\dap_ffi-3irzc8g6o5u88\s-ha2nhvnkpk-0uinq6s-2twiqcpaar5728yfbqnq1cikd\97s66cfyvd9hpliyr4ymdsay4.o
.\obj-x86_64-pc-windows-msvc\x86_64-pc-windows-msvc\release\incremental\geckodriver-1eqbx7j4or08d\s-ha2nouv3dr-1eo9n06-06ks8wl96c1oh0ewl7pcho14k\0312kcgbwfk0v7t556vxme6vg.o
.\obj-x86_64-pc-windows-msvc\x86_64-pc-windows-msvc\release\incremental\icu_capi-3isepq8hd2hko\s-ha2nhz7xrk-1uo9j6p-c91n9wias957jm1tasy2k1t5w\ax2j8w47jfsgm58a3duakbegv.o
.\obj-x86_64-pc-windows-msvc\x86_64-pc-windows-msvc\release\incremental\minidump_analyzer-0ltsr21w7r4i1\s-ha2np89ghj-1r8640k-96odyxpbr6lbksue8o2j557x0\aumc2l8czgtcsondu26f4phd5.o
.\obj-x86_64-pc-windows-msvc\x86_64-pc-windows-msvc\release\incremental\mozdevice-0j6ikb1yfd85b\s-ha2noqeim8-1172k2y-1lpb060kroli1z9qu65ritm3q\9ktfu0np9ae8u4oyivbu0j0qe.o
.\obj-x86_64-pc-windows-msvc\x86_64-pc-windows-msvc\release\incremental\to_shmem-1vp4ihaych24z\s-ha2nhnqjcp-0w6onz8-5yzgkjl2xdfcpzq086qurqjnx\dep-graph.bin
.\obj-x86_64-pc-windows-msvc\x86_64-pc-windows-msvc\release\incremental\urlpattern_glue-187ekqbpv6ygt\s-ha2ni2of1r-1hgsv87-edo39l44uko848es39sy9fov4\8ehzgv7kcmamr9mhxfwecy128.o
.\obj-x86_64-pc-windows-msvc\x86_64-pc-windows-msvc\release\incremental\webdriver-156qe6es9xn1q\s-ha2notmw60-1417xvp-doq9uobsoqwl2rm533tj3s824\dzg018pf2vwj4rbbev6pmpvdo.o
.\obj-x86_64-unknown-linux-android\config\external\icu\common\normlzr.o
.\obj-x86_64-unknown-linux-android\config\external\icu\i18n\collationfastlatinbuilder.o
.\obj-x86_64-unknown-linux-android\dom\bindings\UnifiedBindings17.o
.\obj-x86_64-unknown-linux-android\media\libvpx\reconintra.o
.\obj-x86_64-unknown-linux-android\media\libvpx\vp9_firstpass.o
.\obj-x86_64-unknown-linux-android\memory\build\Unified_cpp_memory_build0.o
.\obj-x86_64-unknown-linux-android\release\incremental\bindgen-3eha316auwlj6\s-h9pmt24w2q-1ibioaq-eiz2bc2zhxxjexsvof86iz1ao\2jh73bvamz4f7w5ei5skqm8ew.pre-lto.bc
.\obj-x86_64-unknown-linux-android\release\incremental\build_script_build-3900muku2bcbn\s-h9pmsi0s9w-1pdk2lz-ab28330ik7m6tbrdb3kakvas4\query-cache.bin
.\obj-x86_64-unknown-linux-android\security\nss\lib\pk11wrap\pk11wrap_pk11wrap\pk11load.o
.\testing\web-platform\tests\appmanifest\display-override-member\resources\icon.png
.\testing\web-platform\tests\css\CSS2\i18n\visuren\support\direction-unicode-bidi-015.png
.\third_party\python\chardet\chardet\__pycache__\sjisprober.cpython-312.pyc
.\third_party\rust\remote_settings\dumps\main\attachments\search-config-icons\74f94dc2-caf6-4b90-b3d2-f3e2f7714d88
.\third_party\rust\remote_settings\dumps\main\attachments\search-config-icons\764e3b14-fe16-4feb-8384-124c516a5afa
.\toolkit\components\pdfjs\content\web\cmaps\Ext-RKSJ-H.bcmap
.\toolkit\components\pdfjs\content\web\cmaps\HKm314-B5-H.bcmap

The only file that really seems plausible is .\third_party\python\chardet\chardet\__pycache__\sjisprober.cpython-312.pyc

Minimal test script:

from pathlib import Path

file_path = Path("./third_party/python/chardet/chardet/__pycache__/sjisprober.cpython-312.pyc")
with file_path.open(mode="r", encoding="cp1252") as f:
    content = f.read(1000)

Results:

Traceback (most recent call last):
  File "D:\mozilla-source\firefox\test_cp1252_error.py", line 5, in <module>
    content = f.read(1000)
              ^^^^^^^^^^^^
  File "D:\mozilla-build\python3\Lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 541: character maps to <undefined>

So that might be the problem? I'm not really sure where to go from here though, since like you said the log isn't very helpful.

Flags: needinfo?(krosylight)

I will note that I was not able to reproduce this on an up to date firefox clone, so you might need to determine the scenario needed to reproduce before we can dig deeper.

Severity: -- → S4
Priority: -- → P3

Managed to pinpoint the missing encoding="utf-8" in PythonVirtualenv.pip_install method. With the added arg it shows:

Creating the 'mach' site at C:\Users\sasch\.mozbuild\srcdirs\gecko-23ebcb979905\_virtualenvs\mach
Using Python 3.12.10 environment at: C:\Users\sasch\.mozbuild\srcdirs\gecko-23ebcb979905\_virtualenvs\mach
Resolved 16 packages in 12ms
   Building glean-sdk==65.0.2
  × Failed to build `glean-sdk==65.0.2`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `maturin.build_wheel` failed (exit code: 1)

      [stdout]
      Running `maturin pep517 build-wheel -i
      C:\Users\sasch\AppData\Local\uv\cache\builds-v0\.tmpfC3MQv\Scripts\python.exe
      --compatibility off`

      [stderr]
      🍹 Building a mixed python/rust project
      🔗 Found uniffi bindings
      📡 Using build options bindings from pyproject.toml
          Finished `release` profile [optimized] target(s) in 0.09s
          Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.08s
           Running `target\debug\uniffi-bindgen.exe
      generate --no-format --language python --out-dir
      C:\Users\sasch\AppData\Local\uv\cache\sdists-v9\pypi\glean-sdk\65.0.2\ZM3vtavJVbDqxnW2w2pQS\src\target\maturin\uniffi\glean._uniffi
      --config
      C:\Users\sasch\AppData\Local\uv\cache\sdists-v9\pypi\glean-sdk\65.0.2\ZM3vtavJVbDqxnW2w2pQS\src\glean-core\bundle\uniffi.toml
      C:\Users\sasch\AppData\Local\uv\cache\sdists-v9\pypi\glean-sdk\65.0.2\ZM3vtavJVbDqxnW2w2pQS\src\glean-core\bundle\src\glean.udl`

      thread 'main' panicked at tools\embedded-uniffi-bindgen\src\main.rs:48:5:
      libglean_ffi could not be found in
      \\?\C:\Users\sasch\AppData\Local\uv\cache\sdists-v9\pypi\glean-sdk\65.0.2\ZM3vtavJVbDqxnW2w2pQS\src\glean-core\target
      note: run with `RUST_BACKTRACE=1` environment variable to display
      a backtrace
      error: process didn't exit successfully: `target\debug\uniffi-bindgen.exe
      generate --no-format --language python --out-dir
      C:\Users\sasch\AppData\Local\uv\cache\sdists-v9\pypi\glean-sdk\65.0.2\ZM3vtavJVbDqxnW2w2pQS\src\target\maturin\uniffi\glean._uniffi
      --config
      C:\Users\sasch\AppData\Local\uv\cache\sdists-v9\pypi\glean-sdk\65.0.2\ZM3vtavJVbDqxnW2w2pQS\src\glean-core\bundle\uniffi.toml
      C:\Users\sasch\AppData\Local\uv\cache\sdists-v9\pypi\glean-sdk\65.0.2\ZM3vtavJVbDqxnW2w2pQS\src\glean-core\bundle\src\glean.udl`
      (exit code: 101)
      💥 maturin failed
        Caused by: Command "cargo" "run" "--bin" "uniffi-bindgen"
      "generate" "--no-format" "--language" "python" "--out-dir"
      "C:\\Users\\sasch\\AppData\\Local\\uv\\cache\\sdists-v9\\pypi\\glean-sdk\\65.0.2\\ZM3vtavJVbDqxnW2w2pQS\\src\\target\\maturin\\uniffi\\glean._uniffi"
      "--config"
      "C:\\Users\\sasch\\AppData\\Local\\uv\\cache\\sdists-v9\\pypi\\glean-sdk\\65.0.2\\ZM3vtavJVbDqxnW2w2pQS\\src\\glean-core\\bundle\\uniffi.toml"
      "C:\\Users\\sasch\\AppData\\Local\\uv\\cache\\sdists-v9\\pypi\\glean-sdk\\65.0.2\\ZM3vtavJVbDqxnW2w2pQS\\src\\glean-core\\bundle\\src\\glean.udl"
      failed
      Error: command ['maturin', 'pep517', 'build-wheel', '-i',
      'C:\\Users\\sasch\\AppData\\Local\\uv\\cache\\builds-v0\\.tmpfC3MQv\\Scripts\\python.exe',
      '--compatibility', 'off'] returned non-zero exit status 1

      hint: This usually indicates a problem with the package or the build
      environment.

Could not install glean-sdk, so telemetry will not be collected. Continuing.
mach interrupted by signal or user action. Stopping.

That looks weird but at least it shows the proper log. I think it's time to add an arm64 wheel to Glean, I'll do that in a separate bug.

Flags: needinfo?(krosylight)
Summary: `./mach build` fails to install glean-sdk → `./mach build` fails to show the log when glean-sdk fails to install

Also removes universal_newlines which is an alias to text. text is supported on Py3.7+ and we require Py3.8+.

Changed in version 3.7: Added the text parameter as an alias for universal_newlines.

Assignee: nobody → krosylight
Status: NEW → ASSIGNED
No longer blocks: 1986149
See Also: → 1986149
Pushed by krosylight@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/58cd9f611e74 https://hg.mozilla.org/integration/autoland/rev/e9fa47ea3312 Add `encoding` arg to `PythonVirtualenv.pip_install` r=firefox-build-system-reviewers,ahochheiden
See Also: → 1986171
Status: ASSIGNED → RESOLVED
Closed: 7 months ago
Resolution: --- → FIXED
Target Milestone: --- → 144 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: