New issue
Advanced search Search tips

Issue 905444 link

Starred by 1 user

Issue metadata

Status: Started
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Upgrade app-admin/sudo

Project Member Reported by alevkoy@chromium.org, Nov 14

Issue description

app-admin/sudo-1.8.19_p2 to app-admin/sudo-1.8.25_p1-r1
 
Project Member

Comment 1 by bugdroid1@chromium.org, Nov 22

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/portage-stable/+/ec3541c6fa65f2a6d6fed0ea29e2381ddf65a717

commit ec3541c6fa65f2a6d6fed0ea29e2381ddf65a717
Author: Abe Levkoy <alevkoy@chromium.org>
Date: Thu Nov 22 06:49:17 2018

tmpfiles: Import eclass from upstream

This eclass is used by app-admin/sudo-1.8.25_p1-r1.

BUG=chromium:905444
TEST=Merged app-admin/sudo.

Change-Id: I915e04adfea3dd3aad6f6e91e7afd93b6422f42b
Reviewed-on: https://chromium-review.googlesource.com/1345310
Commit-Ready: Abe Levkoy <alevkoy@chromium.org>
Tested-by: Abe Levkoy <alevkoy@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[add] https://crrev.com/ec3541c6fa65f2a6d6fed0ea29e2381ddf65a717/eclass/tmpfiles.eclass

Project Member

Comment 2 by bugdroid1@chromium.org, Dec 7

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

commit 599183dd98a363a5d6b985edf47f20e78432bd89
Author: Abe Levkoy <alevkoy@chromium.org>
Date: Fri Dec 07 06:06:47 2018

opentmpfiles: Stub out in packages.provided

app-admin/sudo-1.8.23-r2 depends on virtual/tmpfiles, but it doesn't
actually need it on ChromeOS. Stub out sys-apps/opentmpfiles, which
satisfies virtual/tmpfiles, because we are not ready to actually pull in
opentmpfiles or sys-apps/systemd.

BUG=chromium:905444
TEST=Installed virtual/tmpfiles on amd64-host without installing opentmpfiles.

Change-Id: I3a0a1af66ad2a11a88d6bc378bd71d4eb3140a37
Reviewed-on: https://chromium-review.googlesource.com/1344370
Commit-Ready: Abe Levkoy <alevkoy@chromium.org>
Tested-by: Abe Levkoy <alevkoy@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/599183dd98a363a5d6b985edf47f20e78432bd89/profiles/targets/sdk/package.provided
[modify] https://crrev.com/599183dd98a363a5d6b985edf47f20e78432bd89/profiles/targets/chromeos/package.provided

With the upgraded app-admin/sudo (https://crrev.com/c/1337444/4), I'm seeing a test fail for chromeos-base/quipper. That package passes tests with just the virtual/tmpfiles upgrade (https://crrev.com/c/1358745/1), unsurprisingly. From what I can see, the failure isn't directly caused by sudo.

quipper inherits platform.eclass for, among other things, its testing facilities. platform.eclass appears to implicitly depend on sudo, and this should probably be explicit. In any case, the test failure does not obviously implicate app-admin/sudo, so I'm a bit stuck.

Here is the output of the failing test during
$ FEATURES=test emerge-samus -av1 quipper
...
>>> Emerging (1 of 1) chromeos-base/quipper-0.0.1-r2449::chromiumos for /build/samus/
...
>>> Test phase: chromeos-base/quipper-0.0.1-r2449
/build/samus/tmp/portage/chromeos-base/quipper-0.0.1-r2449/work/quipper-0.0.1/platform2/common-mk/platform2_test.py --action=pre_test --sysroot=/build/samus -- 
ERROR: ld.so: object 'libsandbox.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
/build/samus/tmp/portage/chromeos-base/quipper-0.0.1-r2449/work/quipper-0.0.1/platform2/common-mk/platform2_test.py --action=run --sysroot=/build/samus --run_as_root -- /build/samus/var/cache/portage/chromeos-base/quipper/out/Default/integration_tests
ERROR: ld.so: object 'libsandbox.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
chroot: /build/samus
cwd: /tmp/portage/chromeos-base/quipper-0.0.1-r2449/work/quipper-0.0.1/platform2/chromiumos-wide-profiling
cmd: {/var/cache/portage/chromeos-base/quipper/out/Default/integration_tests} '/var/cache/portage/chromeos-base/quipper/out/Default/integration_tests'
[==========] Running 19 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 19 tests from ConversionUtilsTest/PerfFile
[ RUN      ] ConversionUtilsTest/PerfFile.TextOutput/0
...
[----------] Global test environment tear-down
[==========] 19 tests from 1 test case ran. (1799 ms total)
[  PASSED  ] 19 tests.
/build/samus/tmp/portage/chromeos-base/quipper-0.0.1-r2449/work/quipper-0.0.1/platform2/common-mk/platform2_test.py --action=run --sysroot=/build/samus --run_as_root -- /build/samus/var/cache/portage/chromeos-base/quipper/out/Default/perf_recorder_test
ERROR: ld.so: object 'libsandbox.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
chroot: /build/samus
cwd: /tmp/portage/chromeos-base/quipper-0.0.1-r2449/work/quipper-0.0.1/platform2/chromiumos-wide-profiling
cmd: {/var/cache/portage/chromeos-base/quipper/out/Default/perf_recorder_test} '/var/cache/portage/chromeos-base/quipper/out/Default/perf_recorder_test'
[==========] Running 7 tests from 2 test cases.
[----------] Global test environment set-up.
[----------] 6 tests from PerfRecorderTest
[ RUN      ] PerfRecorderTest.RecordToProtobuf
[1213/213042.928292:ERROR:perf_recorder.cc(131)] perf command failed with status: 1, Error: Success
../../../../../../../tmp/portage/chromeos-base/quipper-0.0.1-r2449/work/quipper-0.0.1/platform2/chromiumos-wide-profiling/perf_recorder_test.cc:49: Failure
Value of: perf_recorder_.RunCommandAndGetSerializedOutput( {"perf", "record"}, 0.2, &output_string)
  Actual: false
Expected: true
[libprotobuf FATAL ../../../../../../../usr/include/google/protobuf/repeated_field.h:1482] CHECK failed: (index) < (current_size_): 
Error: /var/cache/portage/chromeos-base/quipper/out/Default/perf_recorder_test: failed with signal SIGIOT|SIGABRT(6)
 * ERROR: chromeos-base/quipper-0.0.1-r2449::chromiumos failed (test phase):
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line  133:  Called src_test
 *   environment, line 3780:  Called platform_src_test
 *   environment, line 3363:  Called platform_pkg_test
 *   environment, line 3344:  Called platform_test 'run' '/build/samus/var/cache/portage/chromeos-base/quipper/out/Default/perf_recorder_test' '1'
 *   environment, line 3396:  Called die
 * The specific snippet of code:
 *       "${cmd[@]}" || die
 * 
 * If you need support, post the output of `emerge --info '=chromeos-base/quipper-0.0.1-r2449::chromiumos'`,
 * the complete build log and the output of `emerge -pqv '=chromeos-base/quipper-0.0.1-r2449::chromiumos'`.
 * The complete build log is located at '/build/samus/tmp/portage/logs/chromeos-base:quipper-0.0.1-r2449:20181213-213028.log'.
 * For convenience, a symlink to the build log is located at '/build/samus/tmp/portage/chromeos-base/quipper-0.0.1-r2449/temp/build.log'.
 * The ebuild environment file is located at '/build/samus/tmp/portage/chromeos-base/quipper-0.0.1-r2449/temp/environment'.
 * Working directory: '/build/samus/tmp/portage/chromeos-base/quipper-0.0.1-r2449/work/quipper-0.0.1/platform2/chromiumos-wide-profiling'
 * S: '/build/samus/tmp/portage/chromeos-base/quipper-0.0.1-r2449/work/quipper-0.0.1/platform2/chromiumos-wide-profiling'
...
The error here (https://crbug.com/905444#c3) is because the PerfRecorderTest.RecordToProtobuf test is trying to run the command "sudo perf record -o /tmp/perf.data -- sleep 0.2" on the device you are running emerge and the command fails.

There are two reasons for that command to fail. Either you don't have sudo access or the linux perf dependencies are not installed correctly on the device your are running emerge.
The error message in #c3 can be reproduced for grunt, i.e.
`$ FEATURES=test emerge-samus -av1 quipper`. I have more immediate access to a grunt device, so I've been testing with that.

On a grunt device with sudo-1.8.23-r2 installed, I ran
`sudo perf record -o /tmp/perf.data -- sleep 2` as chronos, and it appeared to succeed. When I run the same command without using sudo, it also succeeds.

Again on the grunt device,
`/usr/bin/quipper 2 perf record > /tmp/perf.pb.data` succeeds. The same command using sudo also succeeds.

This might be a red herring, but when I run `perf` in the development environment chroot, it segfaults, whether or not I use sudo.

Sign in to add a comment