New issue
Advanced search Search tips

Issue 804038 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

chromiumos sdk builder is broken

Project Member Reported by manojgupta@chromium.org, Jan 19 2018

Issue description

https://uberchromegw.corp.google.com/i/chromiumos/builders/chromiumos-sdk/builds/8456

Failed at SDK Test stage:
/var/tmp/portage/dev-lang/python-3.3.5-r2/temp/environment: line 3669: /usr/bin/python3.3: No such file or directory
 * ERROR: dev-lang/python-3.3.5-r2::portage-stable failed (install phase):
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line   93:  Called src_install
 *   environment, line 4422:  Called python_export 'python3.3' 'EPYTHON' 'PYTHON' 'PYTHON_SITEDIR'
 *   environment, line 3669:  Called die
 * The specific snippet of code:
 *                   PYTHON_SITEDIR=$("${PYTHON}" -c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_lib())') || die;

Suspect that fail is caused by https://chromium-review.googlesource.com/c/chromiumos/overlays/portage-stable/+/871042
 
Cc: cmt...@chromium.org
Owner: manojgupta@chromium.org
I don't think that CL is related. All that CL did was add Python 3.4 as an option; it's not installed by anything. The failure is in some custom SDK test that your team has created; it fails during the src_install phase for Python 3.3.

Even if it is related, we aren't going to roll back: getting this Python upgrade finally through (after years of trying) is important. The SDK builder situation is untenable and we've already rollback once to accommodate the extremely poor reproducibility and testing situation that surrounds the SDK builder.

We're happy to look at a specific fix-forward if the build chain team can root-cause the failure though.

I don't think that CL is related. All that CL did was add Python 3.4 as an option; it's not installed by anything
 - I see python-3.4 being installed in https://logs.chromium.org/v/?s=chromiumos%2Fbb%2Fchromiumos%2Fchromiumos-sdk%2F8456%2F%2B%2Frecipes%2Fsteps%2FSetupBoard__amd64-host_%2F0%2Fstdout.

If you do not want to get it installed by default, set keywords to  "~*" instead of "*".
>  - I see python-3.4 being installed in https://logs.chromium.org/v/?s=chromiumos%2Fbb%2Fchromiumos%2Fchromiumos-sdk%2F8456%2F%2B%2Frecipes%2Fsteps%2FSetupBoard__amd64-host_%2F0%2Fstdout.

Indeed. So a better question is: why is the SDK test explicitly rebuilding python3.3 instead of the version that is installed?

> If you do not want to get it installed by default, set keywords to  "~*" instead of "*".

That would make it unavailable defeating the purpose. It needs to be available after the SDK is deployed to engineering changeroots.

Incidentally, https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/875263 may also help the SDK builder though not specifically for this failure. In practice, that CL shouldn't matter but we're stumbling over years of landmines left behind so it's possible that it will help with some of multiple-targets Python consistency that appears to have been hacked up in the past. It's been sent to CQ.

I am confused here. Do you want it python 3.4 to be installed by default or not?

Regarding python 3.3, I believe this is because of this line in sdk_lib/make_chroot.sh

early_enter_chroot emerge -uNv --quiet python:2.7 python:3.3
Can you change this to 3.4? 
> I am confused here. Do you want it python 3.4 to be installed by default or not?

No, not yet. That's a different question from whether it can be installed and depended upon by other packages after default SDK root. A "~*" mask prevents installation of things that depend on it entirely. For example, Mesa will need this for their upcoming switch of build systems and we cannot work on that without being able to install Python 3.4.

> Regarding python 3.3, I believe this is because of this line in sdk_lib/make_chroot.sh
> 
> early_enter_chroot emerge -uNv --quiet python:2.7 python:3.3
> Can you change this to 3.4? 

IIRC, Portage will match against the highest slot version if it's not specified so we could change this to:

  early_enter_chroot emerge -uNv --quiet python:2.7 python

That way, this will never happen again. Doing that now.

Project Member

Comment 8 by bugdroid1@chromium.org, Jan 20 2018

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

commit 78d28d9a3c950ba5f110e265707c6b71559150a8
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Sat Jan 20 17:03:12 2018

make_chroot.sh: Don't specify explicit highest Python ver

This will match against whichever slot is the highest.

$ sudo emerge -v --pretend python:2.7 python

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] dev-lang/python-2.7.10-r2:2.7::chromiumos  USE="gdbm
hardened ipv6 ncurses readline sqlite ssl threads wide-unicode xml
-berkdb -build -doc -examples -tk -wininst" 11,977 KiB
[ebuild   R    ] dev-lang/python-3.4.7:3.4/3.4m  USE="gdbm hardened ipv6
ncurses readline sqlite ssl threads xml -build -examples -libressl -tk
-wininst" 0 KiB

Total: 2 packages (2 reinstalls), Size of downloads: 11,977 KiB

BUG= chromium:804038 , chromium:736322 
TEST=./update_chroot succeeds

Change-Id: Ica83ca8a122b69480d0369e6099e58812cdfc11a
Reviewed-on: https://chromium-review.googlesource.com/877405
Commit-Queue: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Trybot-Ready: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Alec Thilenius <athilenius@google.com>
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/78d28d9a3c950ba5f110e265707c6b71559150a8/sdk_lib/make_chroot.sh

Owner: jclinton@chromium.org
Status: Fixed (was: Untriaged)
SDK builder is green for two builds: https://uberchromegw.corp.google.com/i/chromiumos/builders/chromiumos-sdk/ . Marking this fixed.

Sign in to add a comment