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

Issue 719935 link

Starred by 2 users

Issue metadata

Status: Archived
Owner:
Last visit 15 days ago
Closed: May 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

debugd build fails: aosp/system/connectivity/shill/dbus_bindings/supplicant-process.dbus-xml not found

Project Member Reported by hidehiko@chromium.org, May 9 2017

Issue description

Chrome Version: ToT
OS: ChromeOS.

What steps will reproduce the problem?
(1) Run "cros_workon start chromeos-login"
(2) ./build_package --with-dev

Hit a build error. Here are error message:

debugd-0.0.1-r1776: >>> Source configured.
debugd-0.0.1-r1776: >>> Compiling source in /build/samus-cheets/tmp/portage/chro
meos-base/debugd-0.0.1-r1776/work/debugd-0.0.1/debugd ...
debugd-0.0.1-r1776: /build/samus-cheets/tmp/portage/chromeos-base/debugd-0.0.1-r
1776/work/debugd-0.0.1/common-mk/platform2.py --libdir=/usr/lib64 --use_flags=ab
i_x86_64 amd64 cellular cros-debug elibc_glibc kernel_linux userland_GNU --jobs=48 --action=compile --cache_dir=/build/samus-cheets/var/cache/portage/chromeos-base/debugd all
debugd-0.0.1-r1776: ninja: Entering directory `/build/samus-cheets/var/cache/portage/chromeos-base/debugd/out/Default'
debugd-0.0.1-r1776: ninja: error: '../../../../../../../tmp/portage/chromeos-base/debugd-0.0.1-r1776/work/aosp/system/connectivity/shill/dbus_bindings/supplicant-process.dbus-xml', needed by 'gen/include/supplicant/dbus-proxies.h', missing and no known rule to make it
debugd-0.0.1-r1776: Traceback (most recent call last):
debugd-0.0.1-r1776:   File "/build/samus-cheets/tmp/portage/chromeos-base/debugd-0.0.1-r1776/work/debugd-0.0.1/common-mk/platform2.py", line 333, in <module>
debugd-0.0.1-r1776:     main(sys.argv[1:])
debugd-0.0.1-r1776:   File "/build/samus-cheets/tmp/portage/chromeos-base/debugd-0.0.1-r1776/work/debugd-0.0.1/common-mk/platform2.py", line 329, in main
debugd-0.0.1-r1776:     getattr(p2, options.action)(options.args)
debugd-0.0.1-r1776:   File "/build/samus-cheets/tmp/portage/chromeos-base/debugd-0.0.1-r1776/work/debugd-0.0.1/common-mk/platform2.py", line 270, in compile
debugd-0.0.1-r1776:     % ' '.join(map(repr, ninja_args)))
debugd-0.0.1-r1776: AssertionError: Error running: 'ninja' '-C' '/build/samus-cheets/var/cache/portage/chromeos-base/debugd/out/Default' '-j' '48' 'all'
debugd-0.0.1-r1776:  * ERROR: chromeos-base/debugd-0.0.1-r1776::chromiumos failed (compile phase):
debugd-0.0.1-r1776:  *   (no error message)
debugd-0.0.1-r1776:  *
debugd-0.0.1-r1776:  * Call stack:
debugd-0.0.1-r1776:  *     ebuild.sh, line   93:  Called src_compile
debugd-0.0.1-r1776:  *   environment, line 3982:  Called platform_src_compile
debugd-0.0.1-r1776:  *   environment, line 3582:  Called platform 'compile' 'all'
debugd-0.0.1-r1776:  *   environment, line 3539:  Called die
debugd-0.0.1-r1776:  * The specific snippet of code:
debugd-0.0.1-r1776:  *       "${cmd[@]}" || die
debugd-0.0.1-r1776:  *
debugd-0.0.1-r1776:  * If you need support, post the output of `emerge --info '=chromeos-base/debugd-0.0.1-r1776::chromiumos'`,
debugd-0.0.1-r1776:  * the complete build log and the output of `emerge -pqv '=chromeos-base/debugd-0.0.1-r1776::chromiumos'`.
debugd-0.0.1-r1776:  * The complete build log is located at '/build/samus-cheets/tmp/portage/logs/chromeos-base:debugd-0.0.1-r1776:20170509-124613.log'.
debugd-0.0.1-r1776:  * For convenience, a symlink to the build log is located at '/build/samus-cheets/tmp/portage/chromeos-base/debugd-0.0.1-r1776/temp/build.log'.
debugd-0.0.1-r1776:  * The ebuild environment file is located at '/build/samus-cheets/tmp/portage/chromeos-base/debugd-0.0.1-r1776/temp/environment'.
debugd-0.0.1-r1776:  * Working directory: '/build/samus-cheets/tmp/portage/chromeos-base/debugd-0.0.1-r1776/work/debugd-0.0.1/debugd'
debugd-0.0.1-r1776:  * S: '/build/samus-cheets/tmp/portage/chromeos-base/debugd-0.0.1-r1776/work/debugd-0.0.1/debugd'
debugd-0.0.1-r1776: >>> Failed to emerge chromeos-base/debugd-0.0.1-r1776 for /build/samus-cheets/, Log file:
debugd-0.0.1-r1776: >>>  '/build/samus-cheets/tmp/portage/logs/chromeos-base:debugd-0.0.1-r1776:20170509-124613.log'
debugd-0.0.1-r1776:
debugd-0.0.1-r1776:  * Messages for package chromeos-base/debugd-0.0.1-r1776 merged to /build/samus-cheets/:
debugd-0.0.1-r1776:
debugd-0.0.1-r1776:  * ERROR: chromeos-base/debugd-0.0.1-r1776::chromiumos failed (compile phase):
debugd-0.0.1-r1776:  *   (no error message)
debugd-0.0.1-r1776:  *
debugd-0.0.1-r1776:  * Call stack:
debugd-0.0.1-r1776:  *     ebuild.sh, line   93:  Called src_compile
debugd-0.0.1-r1776:  *   environment, line 3982:  Called platform_src_compile
debugd-0.0.1-r1776:  *   environment, line 3582:  Called platform 'compile' 'all'
debugd-0.0.1-r1776:  *   environment, line 3539:  Called die
debugd-0.0.1-r1776:  * The specific snippet of code:
debugd-0.0.1-r1776:  *       "${cmd[@]}" || die
debugd-0.0.1-r1776:  *
debugd-0.0.1-r1776:  * If you need support, post the output of `emerge --info '=chromeos-base/debugd-0.0.1-r1776::chromiumos'`,
debugd-0.0.1-r1776:  * the complete build log and the output of `emerge -pqv '=chromeos-base/debugd-0.0.1-r1776::chromiumos'`.
debugd-0.0.1-r1776:  * The complete build log is located at '/build/samus-cheets/tmp/portage/logs/chromeos-base:debugd-0.0.1-r1776:20170509-124613.log'.
debugd-0.0.1-r1776:  * For convenience, a symlink to the build log is located at '/build/samus-cheets/tmp/portage/chromeos-base/debugd-0.0.1-r1776/temp/build.log'.
debugd-0.0.1-r1776:  * The ebuild environment file is located at '/build/samus-cheets/tmp/portage/chromeos-base/debugd-0.0.1-r1776/temp/environment'.
debugd-0.0.1-r1776:  * Working directory: '/build/samus-cheets/tmp/portage/chromeos-base/debugd-0.0.1-r1776/work/debugd-0.0.1/debugd'
debugd-0.0.1-r1776:  * S: '/build/samus-cheets/tmp/portage/chromeos-base/debugd-0.0.1-r1776/work/debugd-0.0.1/debugd'

Once we hit this, even after "cros_workon stop chromeos-login" runs, we still hit this issue.
Workaround is "cros_workon start debugd".
According to Ryo, this could be triggered by other package's cros_workon start, too.
 
I encountered this with my checkout where cryptohome and system_api were cros_workon-started.
Probably cros_workon-starting one of platform2 packages triggers this?
FWIW I cros_workon-stopped all packages on a board, and run ./setup_board --force && ./build_packages, but it didn't fix the debugd failure.
Cc: vapier@chromium.org
Looks like the culprit is this CL: https://chromium-review.googlesource.com/#/c/490830/

Interestingly, doing cros_workon-$BOARD start debugd allows me to build successfully.

Adding vapier@ for his thoughts. I think the debugd.gyp is wrong, but it'd be good to figure out why that is not flagged when debugd is worked-on.

Comment 4 by vapier@chromium.org, May 10 2017

Summary: debugd build fails: aosp/system/connectivity/shill/dbus_bindings/supplicant-process.dbus-xml not found (was: Local build failure if "cros_workon start chromeos-login" runs.)

Comment 5 by vapier@chromium.org, May 10 2017

Owner: ejcaruso@chromium.org
Status: Assigned (was: Untriaged)
the debugd package is incorrect -- it's referring to files outside of its repos which it must not do.  it should stop, or add shill's source repo to the debugd ebuild to checkout/track.
Re #3:

As for why we didn't see the issue in CQ run, my current thinking is that a cros-worked package may have access to the xml files via /mnt/source/host, while a prebuilt package (inside /build/$BOARD/tmp/portage) doesn't.  So building a cros-worked debugd may have masked the issue (which was probably what happened when going through CQ).
Status: Started (was: Assigned)
Labels: -Pri-2 Pri-1
Chrome gardener here. Can the CL be reverted? It's breaking our ASAN bot:

https://build.chromium.org/p/chromiumos.chromium/builders/amd64-generic-tot-asan-informational/builds/12998

Comment 9 by vapier@chromium.org, May 10 2017

CLs are in flight to fix.  i don't think this requires a revert.
Can we please revert first and land a fix?

Chromium OS isn't as revert happy as Chromium.  we already have the fixes written, and are trying to get through the CQ.  reverting in this case isn't straight forward either as it's a few dependent changes back.

if the only thing broken is the asan bot, we don't consider that a P0 thing that requires reverting to address.  especially if we have the fixes available.
When will this be fixed?

I see https://chromium-review.googlesource.com/c/502009/ which failed CQ and https://chrome-internal-review.googlesource.com/c/374008/ which was only LGTM'd 5 minutes ago.

Are there other fixes in flight?

The shill-client fix isn't going to do the trick for a bunch of reasons. I have another fix coming up that I was able to repro the CQ failure before starting on so I think this one should fix it for good.
FYI this killed the Chrome PFQ last night and we didn't uprev. We haven't uprev'd since Sunday.

https://uberchromegw.corp.google.com/i/chromeos/builders/master-chromium-pfq/builds/4323

Do you think the changes will land before 8 PM Pacific? That's our next run. Are they safe to chump?

(Sorry to keep pestering you -- it's been a rough week for Chrome PFQ.)

My change at https://chromium-review.googlesource.com/c/502009/ is being held up in the PFQ by an issue in ap-daemons:

ap-daemons-0.0.3-r2830: In file included from /build/whirlwind/tmp/portage/chromeos-base/ap-daemons-0.0.3-r2830/work/ap-daemons-0.0.3/platform/ap-daemons/common/station_mode.h:8:
ap-daemons-0.0.3-r2830: /build/whirlwind/tmp/portage/chromeos-base/ap-daemons-0.0.3-r2830/work/ap-daemons-0.0.3/platform/ap/common/configuration_monitor.h:13:10: fatal error: 'ap-daemons/controller/dbus-proxies.h' file not found
ap-daemons-0.0.3-r2830: #include "ap-daemons/controller/dbus-proxies.h"
ap-daemons-0.0.3-r2830:          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ap-daemons-0.0.3-r2830: 1 error generated.

At first glance this looked related but the controller-dbus-proxies target is only referenced in ap-daemons and ap/common. ap/common seems to be doing the same thing debugd originally here, which is that it's pulling in the D-Bus XML file from ap-daemons (a separate repo). This problem was more than likely introduced by https://chrome-internal-review.googlesource.com/c/346744 and I'm not sure how to fix it because a revert is not straightforward and there are CLs depending on it in multiple repos. The good news is this breakage only affects whirlwind so we can fix every other board if we chump my change in anyway.

I know my change is not related because I abandoned the change to libshill-client and neither ap-daemons nor ap/common depend on debugd directly, so a debugd-local change should not affect either of those repos.
Project Member

Comment 16 by bugdroid1@chromium.org, May 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/54532f2b9ec7f8fad03e8eccec718d0670893f62

commit 54532f2b9ec7f8fad03e8eccec718d0670893f62
Author: Eric Caruso <ejcaruso@chromium.org>
Date: Thu May 11 22:22:41 2017

debugd: stop including supplicant proxy headers directly

Do D-Bus property sets on wpa_supplicant using chrome's bindings
directly since it's difficult to export headers and bindings that
chromeos-dbus-bindings generates for supplicant in a way that
debugd can use them.

BUG= chromium:719935 
TEST=emerge, dbus-send ...SetDebugMode and/or network_logging
  from crosh

Change-Id: I7633038c703f5a86c32bd676a6047d8e57438d27
Reviewed-on: https://chromium-review.googlesource.com/502009
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Eric Caruso <ejcaruso@chromium.org>

[modify] https://crrev.com/54532f2b9ec7f8fad03e8eccec718d0670893f62/debugd/debugd.gyp
[modify] https://crrev.com/54532f2b9ec7f8fad03e8eccec718d0670893f62/debugd/src/debug_mode_tool.cc

Do I also need to uprev the debugd ebuild to properly fix this?
the CQ should do it automatically.  it'll do uprevs even if a run didn't pass.
Status: Fixed (was: Started)
Labels: VerifyIn-61

Comment 21 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment