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

Issue 849414 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 12
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

full-compile-paladins failing with build_packages errors

Project Member Reported by davidri...@chromium.org, Jun 4 2018

Issue description

Both full compile paladins have failed on the same CQ run a number of times recently with the same somewhat cryptic build_packages failure:
https://luci-milo.appspot.com/buildbot/chromeos/falco-full-compile-paladin/12793
https://luci-milo.appspot.com/buildbot/chromeos/falco-full-compile-paladin/12804
https://luci-milo.appspot.com/buildbot/chromeos/falco-full-compile-paladin/12808
https://luci-milo.appspot.com/buildbot/chromeos/nyan-full-compile-paladin/12787
https://luci-milo.appspot.com/buildbot/chromeos/nyan-full-compile-paladin/12798
https://luci-milo.appspot.com/buildbot/chromeos/nyan-full-compile-paladin/12802

Total: 722 packages (718 new, 4 reinstalls, 1 binary), Size of downloads: 585334 KiB
Fetch Restriction: 1 package
Skipping merge because of --pretend mode.
ERROR   : Fri Jun  1 18:46:26 PDT 2018
ERROR   :  PGID  PPID   PID     ELAPSED     TIME %CPU COMMAND
ERROR   : Arguments of 10: ./build_packages '--board=falco' '--accept_licenses=@CHROMEOS' '--withdebugsymbols' '--skip_chroot_upgrade' '--chrome_binhost_only' '--withevents' '--eventfile=/mnt/host/source/buildbot_archive/falco-full-compile-paladin/R69-10743.0.0-rc2/build-events.json' '--save_install_plan=/tmp/falco_install_plan.2627754' 'virtual/target-os' 'virtual/target-os-dev' 'virtual/target-os-test' 'virtual/target-os-factory' 'virtual/target-os-factory-shim' 'chromeos-base/autotest-all'
ERROR   : Backtrace:  (most recent call is last)
ERROR   :  build_packages:319:main(), called: die_err_trap  
ERROR   : 
ERROR   : Command failed:
ERROR   :   Command 'MOD_PKGS+=($(      equery-${FLAGS_board} list -p -o --format='$category/$name'           ${NEW_DEPS[*]}))' exited with nonzero code: 3
18:46:27: ERROR: 
return code: 1; command: /b/c/cbuild/repository/chromite/bin/cros_sdk 'PARALLEL_EMERGE_STATUS_FILE=/tmp/tmpMSXrx9' 'USE=chrome_internal' 'FEATURES=separatedebug' -- ./build_packages '--board=falco' '--accept_licenses=@CHROMEOS' --withdebugsymbols --skip_chroot_upgrade --chrome_binhost_only --withevents '--eventfile=/mnt/host/source/buildbot_archive/falco-full-compile-paladin/R69-10743.0.0-rc2/build-events.json' '--save_install_plan=/tmp/falco_install_plan.2627754' virtual/target-os virtual/target-os-dev virtual/target-os-test virtual/target-os-factory virtual/target-os-factory-shim chromeos-base/autotest-all
cmd=['/b/c/cbuild/repository/chromite/bin/cros_sdk', 'PARALLEL_EMERGE_STATUS_FILE=/tmp/tmpMSXrx9', u'USE=chrome_internal', 'FEATURES=separatedebug', '--', './build_packages', u'--board=falco', '--accept_licenses=@CHROMEOS', '--withdebugsymbols', '--skip_chroot_upgrade', '--chrome_binhost_only', '--withevents', u'--eventfile=/mnt/host/source/buildbot_archive/falco-full-compile-paladin/R69-10743.0.0-rc2/build-events.json', u'--save_install_plan=/tmp/falco_install_plan.2627754', 'virtual/target-os', 'virtual/target-os-dev', 'virtual/target-os-test', 'virtual/target-os-factory', 'virtual/target-os-factory-shim', 'chromeos-base/autotest-all'], cwd=/b/c/cbuild/repository, extra env={'PARALLEL_EMERGE_STATUS_FILE': '/tmp/tmpMSXrx9', 'USE': u'chrome_internal', 'FEATURES': 'separatedebug'}
18:46:27: ERROR: ./build_packages failed (code=1)

 
Cc: gmeinke@chromium.org jclinton@chromium.org davidri...@chromium.org
Owner: gmeinke@chromium.org
Status: Assigned (was: Untriaged)
I think this is related to the revdeps work. 718 packages is a lot. Are we exhausting the argument length limit at ${NEW_DEPS[*]} ? Maybe we just went over that limit due to the package count increasing?

This is going to take out the active CQ run: https://luci-milo.appspot.com/buildbot/chromeos/nyan-full-compile-paladin/12809
Ugh, not the best time for this to hit ... leaving for Europe for 3w.

We can easily disable the extra revdeps using a flag, but since we have already removed the same logic inside of the CROS_WORKON path in the build_packages shell script it isn't a great idea to do that unless we can just disable the flag in these full paladin builds.
Maybe the right thing to do here would be to temporarily mark these as experimental. Then, introduce a change that skips this logic if it is a full compile. The intent of this change was to get build correctness when doing incremental builds; that should be a noop on full compile.
Marked experimental.

I don't really understand this feature.  But if there's a bad CL which has a lot of dependencies, will it possibly cause build failures for developers if they're doing a full build?
I don't think so: I suspect this line of code only gets a lot of arguments when there's already a large list of modified packages in base Portage calculation. That should only happen on from-source/full builds. So, I think we can pivot on from-source.
falco-full-compile history: https://luci-milo.appspot.com/buildbot/chromeos/falco-full-compile-paladin/
nyan-full-compile history: https://luci-milo.appspot.com/buildbot/chromeos/nyan-full-compile-paladin/

So, it looks like it's not happening now and maybe David's idea in Comment 1 is actually the root cause. If so, maybe we are passing the argument to Portage for that package upgrade in a way that breaks the command invocation.

Interestingly, on that last CQ run where those builders were made experimental, falco didn't fail, only nyan.

The change I mentioned wouldn't have made it in if it wasn't changed mid-CQ run.  It's in pre-CQ now and we'll see what happens.  If it gets in and all the release builds start breaking, that should prove things one way or the other.
From the equery man page: "Note: Additionally, when using --quiet, if no matches are found, instead of printing an error, the equery list module will return with an exit value of 3." That would seem to indicate an argument is being passed that doesn't exist.
Project Member

Comment 12 by bugdroid1@chromium.org, Jun 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosutils/+/9e658a9550baf51993f54d96f37473866c58b17f

commit 9e658a9550baf51993f54d96f37473866c58b17f
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Wed Jun 06 04:28:38 2018

build_packages: Add log message to help debug  crbug.com/849414 

TEST=none
BUG= chromium:849414 

Change-Id: I6a244aacfdf6732c8964550434fcc9118c303643
Reviewed-on: https://chromium-review.googlesource.com/1087829
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/9e658a9550baf51993f54d96f37473866c58b17f/build_packages

Status: Fixed (was: Assigned)
falco and nyan full compile builders have been green for several days and the reverse dependency fixes have been submitted.

Sign in to add a comment