New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 871343 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 9
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Failure on eve-tot-chrome-pfq-informational

Project Member Reported by afakhry@chromium.org, Aug 6

Issue description

It seems it fails to emerge-eve. It mentions a REQUIRED_USE flag constraint (build_native_assistant? ( chrome_internal )) that is not satisfied.

https://cros-goldeneye.corp.google.com/chromeos/healthmonitoring/buildDetails?buildbucketId=8938928218941256352

09:32:46: INFO: RunCommand: /b/swarming/w/ir/cache/cbuild/repository/chromite/bin/cros_sdk -- emerge-eve -p --cols --quiet --root /var/empty -e virtual/target-os in /b/swarming/w/ir/cache/cbuild/repository
09:33:25: ERROR: Traceback (most recent call last):
  File "/b/swarming/w/ir/cache/cbuild/repository/chromite/cbuildbot/stages/generic_stages.py", line 682, in Run
    self.PerformStage()
  File "/b/swarming/w/ir/cache/cbuild/repository/chromite/cbuildbot/stages/android_stages.py", line 158, in PerformStage
    versions, branches = self._UpdateBoardDictsForAndroidBuildInfo()
  File "/b/swarming/w/ir/cache/cbuild/repository/chromite/cbuildbot/stages/android_stages.py", line 133, in _UpdateBoardDictsForAndroidBuildInfo
    version = self._run.DetermineAndroidVersion(boards=[board])
  File "/b/swarming/w/ir/cache/cbuild/repository/chromite/cbuildbot/cbuildbot_run.py", line 984, in FuncWrapper
    return result(*args, **kwargs)
  File "/b/swarming/w/ir/cache/cbuild/repository/chromite/cbuildbot/cbuildbot_run.py", line 893, in DetermineAndroidVersion
    package = self.DetermineAndroidPackage(board)
  File "/b/swarming/w/ir/cache/cbuild/repository/chromite/cbuildbot/cbuildbot_run.py", line 866, in DetermineAndroidPackage
    packages = portage_util.GetPackageDependencies(board, 'virtual/target-os')
  File "/b/swarming/w/ir/cache/cbuild/repository/chromite/lib/portage_util.py", line 1803, in GetPackageDependencies
    capture_output=True).output.splitlines()
  File "/b/swarming/w/ir/cache/cbuild/repository/chromite/lib/cros_build_lib.py", line 647, in RunCommand
    raise RunCommandError(msg, cmd_result)
RunCommandError: return code: 1; command: /b/swarming/w/ir/cache/cbuild/repository/chromite/bin/cros_sdk -- emerge-eve -p --cols --quiet --root /var/empty -e virtual/target-os
!!! The ebuild selected to satisfy "chromeos-base/chromeos-chrome" for /var/empty/ has unmet requirements.
- chromeos-base/chromeos-chrome-70.0.3515.0_alpha-r1::chromiumos USE="accessibility authpolicy autotest build_native_assistant build_tests buildcheck cfi chrome_debug chrome_remoting clang cups debug_fission evdev_gestures fonts gold highdpi libcxx nacl opengles runhooks smbprovider thinlto v4l2_codec vaapi xkbcommon -afdo_use -app_shell -asan -chrome_debug_tests -chrome_internal -chrome_media -clang_tidy -component_build -goma -hardfp -internal_gles_conform -jumbo -lld -mojo (-neon) -opengl -v4lplugin -verbose -vtable_verify" ABI_X86="64" OZONE_PLATFORM="default_gbm gbm -caca -cast -default_caca -default_cast -default_egltest -default_test -egltest -test" OZONE_PLATFORM_DEFAULT="gbm -caca -cast -egltest -test"
  The following REQUIRED_USE flag constraints are unsatisfied:
    build_native_assistant? ( chrome_internal )
  The above constraints are a subset of the following complete expression:
    asan? ( clang ) at-most-one-of ( gold lld ) cfi? ( thinlto ) clang_tidy? ( clang ) libcxx? ( clang ) thinlto? ( clang any-of ( gold lld ) ) afdo_use? ( clang ) build_native_assistant? ( chrome_internal ) exactly-one-of ( ozone_platform_default_gbm ozone_platform_default_cast ozone_platform_default_test ozone_platform_default_egltest ozone_platform_default_caca )
(dependency required by "virtual/chromeos-interface-1-r5::chromiumos[-chromeless_tty]" [ebuild])
(dependency required by "virtual/target-chromium-os-1-r102::chromiumos" [ebuild])
(dependency required by "virtual/target-chrome-os-1-r21::chromeos" [ebuild])
(dependency required by "virtual/target-os-1.5-r1::chromeos" [ebuild])
(dependency required by "virtual/target-os" [argument])
 
Cc: vapier@chromium.org jkop@chromium.org
Components: Infra>Client>ChromeOS
Following recommendation by vapier to take discussion back to bug. 

What generates chromite/config/config_dump.json?

What does `"manifest": "official.xml",` mean?

I thought what's missing is `"useflags": [ "chrome-internal" ],`  rather than `"useflags": [ "-chrome-internal" ],` 
Cc: dgarr...@chromium.org ihf@chromium.org
Discussion on CL mentioned in #1 is at https://chrome-internal-review.googlesource.com/c/chromeos/overlays/overlay-eve-private/+/659672.

Adding a few more people who might help.
Components: -Infra>Client>ChromeOS Infra>Client>ChromeOS>Build
Owner: afakhry@chromium.org
Answering from #1:

chromeos_config defines out build configurations. chromeos_config_unittest --update will regenerate the assorted artifact files like config_dump.json.

I don't understand how `"manifest": "official.xml",` entered the conversation, but it's one of the settings generally required for internal builds.

Looking at config_dump.json: eve-tot-chrome-pfq-informational does not have useflags: "-chrome_internal". eve-tot-chromium-pfq-informational, on the other hand, *does*.
I ran a fresh generate to make sure this wasn't from someone checking in a bad config, but that did not fix the issue.

Poring through the settings upstream, it does look like it should be generated the right way around, so nothing obvious to tweak there.
That sounds correct.

eve-tot-pfq-informational is intended to build ChromeOS (internal) and eve-tot-chromium-pfq-informational is intended to build ChromiumOS (external).


So why does the step AndroidMetadata fails with:

The following REQUIRED_USE flag constraints are unsatisfied:
    build_native_assistant? ( chrome_internal )

?

Does that step uses different configs? Is there an ordering issue?


Oh. OK, disregard all that. The "-" is not an indicator of an option, it's a subtraction sign. That is all WAI. config_dump.json has the correct values.
(quality of life improvement: make those use '!' instead of '-' to indicate that it should not be present)
> (quality of life improvement: make those use '!' instead of '-' to indicate that it should not be present)

sounds like bikeshedding.  the syntax here is for portage/emerge and it uses - not ! to disable options.
This directly led to me misunderstanding the flags, since the same line if interpreted as a shell option means the precise opposite of what it means here. Ambiguity is bad.
I have no idea what you mean by "shell option". bash/sh don't use ! for shell options (set/shopt).

if you were to take that USE syntax and set it in your environment before running emerge, the syntax is exactly the same.
Cc: linben@chromium.org nya@chromium.org
Please let's get back to the real issue: 

Adding a few more people who modified android_stages.py recently: +nya@ +linben@

Is the AndroidMetadata stage missing something to guarantee the use of the official chrome_internal when it's in the USE flags?

For example, in the simplechrome stage we extend the arguments of chrome-sdk by adding "--internal" when we find the "chrome_internal" USE flag. https://cs.corp.google.com/chromeos_public/chromite/cbuildbot/stages/chrome_stages.py?q=USE_CHROME_INTERNAL+p:chromeos_public&dr=C&l=323
Cc: davidri...@chromium.org bhthompson@chromium.org
+davidriley@ and +bhthompson@ if they have some ideas.
FWIW, AndroidMetadata just happens to be the first thing that causes Portage to try to map through all the dependencies for the build, so if the configuration is broken we fail here first, so this is unlikely something AndroidMetadata is doing wrong, and more like something is wrong with the build itself.
But the build seems to be correctly configured. Looking at config_dump.json, the "eve-tot-chromium-pfq-informational" [1] has a 

"useflags": [
  "-chrome_internal"
], 


while "eve-tot-chrome-pfq-informational" doesn't.


[1]: https://cs.corp.google.com/chromeos_public/chromite/config/config_dump.json?g=0&maxsize=9934696&l=23424
Cc: xiaoh...@chromium.org
The requirement for chrome_internal to be there for build_native_assistant has been around since early July https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/1130456

It appears this was armed in https://chrome-internal-review.googlesource.com/658390 which landed on Aug 2 which is when this failed, I am surprised this made it through the CQ if it breaks this way.

However eve-release is passing (mostly) https://cros-goldeneye.corp.google.com/chromeos/healthmonitoring/buildDetails?buildbucketId=8938919164786318336 so the build itself cannot be fundamentally broken...
Owner: xiaoh...@chromium.org
Xiaohui, Bernie and I agreed that we should land this CL ASAP to unblock the PFQs, and then we will land some follow up CLs to fix this dependency to make sure the assistant is built only when chrome_internal flag is provided on eve.

Passing back to xiaohuic@.
Project Member

Comment 21 by bugdroid1@chromium.org, Aug 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/dad4675f8cfa9ded3bf1a150449e81d6b9583a5d

commit dad4675f8cfa9ded3bf1a150449e81d6b9583a5d
Author: Xiaohui Chen <xiaohuic@google.com>
Date: Thu Aug 09 09:21:25 2018

Only build assistant when chrome_internal is set

BUG= chromium:871343 
TEST=locally build eve

Change-Id: I7bfa58f7828d06845736a48351523baaf402c789
Reviewed-on: https://chromium-review.googlesource.com/1168188
Commit-Ready: Xiaohui Chen <xiaohuic@chromium.org>
Tested-by: Xiaohui Chen <xiaohuic@chromium.org>
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Reviewed-by: Bernie Thompson <bhthompson@chromium.org>

[modify] https://crrev.com/dad4675f8cfa9ded3bf1a150449e81d6b9583a5d/chromeos-base/chromeos-chrome/chromeos-chrome-9999.ebuild

Status: Fixed (was: Assigned)
Build cycled green this morning.
Project Member

Comment 23 by bugdroid1@chromium.org, Aug 14

Labels: -Restrict-View-Google

Sign in to add a comment