Skip to content

Mac_arm64 tool_host_cross_arch_tests is failing with recipe crash #113231

Closed

Description

@jmagman

https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8800893589239561057/+/u/RECIPE_CRASH__Uncaught_exception_/logging

The recipe has crashed at point 'Uncaught exception'!

Traceback (most recent call last):
  File "/Volumes/Work/s/w/ir/kitchen-checkout/recipe_engine/recipe_engine/internal/engine.py", line 585, in run_steps
    raw_result = recipe_obj.run_steps(api, engine)
  File "/Volumes/Work/s/w/ir/kitchen-checkout/recipe_engine/recipe_engine/internal/recipe_deps.py", line 936, in run_steps
    recipe_result = invoke_with_properties(
  File "/Volumes/Work/s/w/ir/kitchen-checkout/recipe_engine/recipe_engine/internal/property_invoker.py", line 90, in invoke_with_properties
    return _invoke_with_properties(callable_obj, all_props, environ, prop_defs,

This test is marked bringup:true due to #112130, but was previously successfully passing in staging.

Activity

  1. added
    team-infraOwned by Infrastructure team
    P1High-priority issues at the top of the work list
    on Oct 10, 2022
  2. jmagman commented on Oct 10, 2022

    @jmagman
    MemberAuthor

    cc oncall @drewroengoogle

  3. drewroengoogle commented on Oct 13, 2022

    @drewroengoogle
    Contributor

    It seems like the bundler path isn't being recognized at all, but I'm unsure what changed between the time this recipe was passing and failing, as the bundler version seems to be the same, and the recipe hasn't been modified during that timeframe. I can try taking this on.

  4. drewroengoogle commented on Oct 18, 2022

    @drewroengoogle
    Contributor

    Unassigning after discussion with @godofredoc about whether this is an infra issue.

  5. removed their assignment
    on Oct 18, 2022
  6. jmagman commented on Oct 19, 2022

    @jmagman
    MemberAuthor

    @drewroengoogle do you know who is working on this? Is /Volumes/Work/s/w/ir/cache/ruby/bin/bundle missing? We want to add more Mac_arm64 tests #110126

  7. drewroengoogle commented on Oct 20, 2022

    @drewroengoogle
    Contributor

    @jmagman Thanks for following up, I meant to yesterday but got sidetracked.
    I sent a message in the LUCI chat this morning and CC'ed you, as I'm not sure the best person to take a look at this. From my search it doesn't seem like there was any difference between the last successful run and the first failing run, the recipe, recipe properties, and ruby CIPD package did not change around that time at all.

  8. godofredoc commented on Oct 20, 2022

    @godofredoc
    Contributor

    I took a quick look, removing the installation of ruby makes the gems steps to succeed but all the tests fail.

    E.g. for x64 GEM_HOME is set to a generic folder where blundler and bundle are installed https://cs.opensource.google/flutter/recipes/+/main:recipe_modules/flutter_deps/api.py;l=300 and only after the gems path has been set and gems have been installed the path is changes to the ruby specific location https://cs.opensource.google/flutter/recipes/+/main:recipe_modules/flutter_deps/api.py;l=326

    In arm64 GEM_HOME is set directly to <gem_dir>/ruby/3.1.0 when the bundler and bundle are located at <gem_dir>

    Another potential problem is that ruby binaries from cipd are installed at the end of the path and most likely never used is ruby is already installed in the system or the code is running from an xcode context. https://cs.opensource.google/flutter/recipes/+/main:recipe_modules/flutter_deps/api.py;l=282

  9. keyonghan commented on Oct 20, 2022

    @keyonghan
    Contributor

    Compared the failed build with succeeded one, the env. dir path root was switched from /opt to /Volumes/Work, which caused issues. Followed up in the chat to see why such changes in our bots.

  10. keyonghan commented on Oct 20, 2022

    @keyonghan
    Contributor

    Chromium team reinstalled our bots on 10/07 morning, which is aligned with our incident here. It is suspected some hard coded paths somewhere.

  11. godofredoc commented on Oct 20, 2022

    @godofredoc
    Contributor

    Apart from the what actually caused this problem. We need to make this installation hermetic and resilience to changes in the environment.

  12. keyonghan commented on Oct 20, 2022

    @keyonghan
    Contributor

    Yeah, I agree. When creating the ruby version, a prefix path is needed to make it work. I believe that's the culprit here.

  13. keyonghan commented on Oct 31, 2022

    @keyonghan
    Contributor

    Have spent quite some hours to work on the portable version, but still no luck to make it work.
    Referenced https://github.com/stephan-nordnes-eriksen/ruby_ship, which seems promising to meet our purpose. However this still depends on openssl pre-installed in the bot, which will make the ruby doesn't work again if the root dir changes.

    I am running out of ideas.. Anyone with experience on ruby may have a better idea on how to make it work? /cc @jmagman

    One possible workaround is build/deploy openssl and ruby on the runtime, but it will add 5+ mins on each run.

  14. godofredoc commented on Nov 2, 2022

    @godofredoc
    Contributor

    Devicelab vs chromium machines?

  15. keyonghan commented on Nov 2, 2022

    @keyonghan
    Contributor

    Yeah, these are devicelab testbeds where the root dirs are not changed (still /opt/s), whereas the chromium ones have been updated to /Volumes/Work/s. The existing ruby was compiled based on /opt/s, so the devicelab ones are still valid.

  16. godofredoc commented on Dec 14, 2022

    @godofredoc
    Contributor
  17. self-assigned this
    on Jan 10, 2023
  18. godofredoc commented on Jan 13, 2023

    @godofredoc
    Contributor

    This is fixed now with ruby hermetic packages and https://flutter-review.googlesource.com/c/recipes/+/38088

  19. github-actions commented on Mar 4, 2023

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  20. locked as resolved and limited conversation to collaborators on Mar 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work listplatform-host-armBuilding on an ARM-based platformteam-infraOwned by Infrastructure team

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions