* [PATCH 0/3] oeqa related: 3 fixes
@ 2018-12-27 8:59 Robert Yang
2018-12-27 8:59 ` [PATCH 1/3] oeqa: make it work for multiple users Robert Yang
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Robert Yang @ 2018-12-27 8:59 UTC (permalink / raw)
To: openembedded-core
The following changes since commit 7bbc453ac2b8d63680855789948a145fc448017f:
glibc: Enable --with-default-link (2018-12-26 11:19:47 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib rbt/oeqa
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/oeqa
Robert Yang (3):
oeqa: make it work for multiple users
runqemu-gen-tapdevs: Allow run --help without sudo
oeqa/utils/qemurunner: Print output when failed to login
meta/classes/testimage.bbclass | 2 +-
meta/lib/oeqa/runtime/context.py | 7 +++----
meta/lib/oeqa/utils/dump.py | 5 ++++-
meta/lib/oeqa/utils/qemurunner.py | 1 +
scripts/runqemu-gen-tapdevs | 12 ++++++------
5 files changed, 15 insertions(+), 12 deletions(-)
--
2.10.2
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 1/3] oeqa: make it work for multiple users 2018-12-27 8:59 [PATCH 0/3] oeqa related: 3 fixes Robert Yang @ 2018-12-27 8:59 ` Robert Yang 2018-12-27 11:37 ` Richard Purdie 2018-12-27 8:59 ` [PATCH 2/3] runqemu-gen-tapdevs: Allow run --help without sudo Robert Yang 2018-12-27 8:59 ` [PATCH 3/3] oeqa/utils/qemurunner: Print output when failed to login Robert Yang 2 siblings, 1 reply; 10+ messages in thread From: Robert Yang @ 2018-12-27 8:59 UTC (permalink / raw) To: openembedded-core There are failures when multiple users run oe-selftest on the same host: PermissionError: [Errno 13] Permission denied: '/tmp/oe-saved-tests/201812250324_qemu' This is because /tmp/oe-saved-tests was created by user A, while user B tries to write data in it, then the error will happen. This patch can fix the problem. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- meta/classes/testimage.bbclass | 2 +- meta/lib/oeqa/runtime/context.py | 7 +++---- meta/lib/oeqa/utils/dump.py | 5 ++++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass index 8a15c30..78b7b5e 100644 --- a/meta/classes/testimage.bbclass +++ b/meta/classes/testimage.bbclass @@ -77,7 +77,7 @@ TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'deb', 'apt-native:do TESTIMAGELOCK = "${TMPDIR}/testimage.lock" TESTIMAGELOCK_qemuall = "" -TESTIMAGE_DUMP_DIR ?= "/tmp/oe-saved-tests/" +TESTIMAGE_DUMP_DIR ?= "/tmp/oe-saved-tests.${USER}/" TESTIMAGE_UPDATE_VARS ?= "DL_DIR WORKDIR DEPLOY_DIR" diff --git a/meta/lib/oeqa/runtime/context.py b/meta/lib/oeqa/runtime/context.py index 943e29b..96c231d 100644 --- a/meta/lib/oeqa/runtime/context.py +++ b/meta/lib/oeqa/runtime/context.py @@ -6,7 +6,7 @@ import os from oeqa.core.context import OETestContext, OETestContextExecutor from oeqa.core.target.ssh import OESSHTarget from oeqa.core.target.qemu import OEQemuTarget -from oeqa.utils.dump import HostDumper +from oeqa.utils.dump import HostDumper, default_host_dumper_dir from oeqa.runtime.loader import OERuntimeTestLoader @@ -49,7 +49,6 @@ class OERuntimeTestContextExecutor(OETestContextExecutor): default_manifest = 'data/manifest' default_server_ip = '192.168.7.1' default_target_ip = '192.168.7.2' - default_host_dumper_dir = '/tmp/oe-saved-tests' default_extract_dir = 'packages/extracted' def register_commands(self, logger, subparsers): @@ -71,9 +70,9 @@ class OERuntimeTestContextExecutor(OETestContextExecutor): % self.default_server_ip) runtime_group.add_argument('--host-dumper-dir', action='store', - default=self.default_host_dumper_dir, + default=default_host_dumper_dir, help="Directory where host status is dumped, if tests fails, default: %s" \ - % self.default_host_dumper_dir) + % default_host_dumper_dir) runtime_group.add_argument('--packages-manifest', action='store', default=self.default_manifest, diff --git a/meta/lib/oeqa/utils/dump.py b/meta/lib/oeqa/utils/dump.py index 5a7edc1..3ce8dd1 100644 --- a/meta/lib/oeqa/utils/dump.py +++ b/meta/lib/oeqa/utils/dump.py @@ -3,8 +3,11 @@ import sys import errno import datetime import itertools +import getpass from .commands import runCmd +default_host_dumper_dir = "/tmp/oe-saved-tests.%s" % getpass.getuser() + class BaseDumper(object): """ Base class to dump commands from host/target """ @@ -12,7 +15,7 @@ class BaseDumper(object): self.cmds = [] # Some testing doesn't inherit testimage, so it is needed # to set some defaults. - self.parent_dir = parent_dir or "/tmp/oe-saved-tests" + self.parent_dir = parent_dir or default_host_dumper_dir dft_cmds = """ top -bn1 iostat -x -z -N -d -p ALL 20 2 ps -ef -- 2.10.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] oeqa: make it work for multiple users 2018-12-27 8:59 ` [PATCH 1/3] oeqa: make it work for multiple users Robert Yang @ 2018-12-27 11:37 ` Richard Purdie 2018-12-28 2:03 ` Robert Yang 2018-12-28 7:57 ` Robert Yang 0 siblings, 2 replies; 10+ messages in thread From: Richard Purdie @ 2018-12-27 11:37 UTC (permalink / raw) To: Robert Yang, openembedded-core On Thu, 2018-12-27 at 00:59 -0800, Robert Yang wrote: > There are failures when multiple users run oe-selftest on the same > host: > > PermissionError: [Errno 13] Permission denied: '/tmp/oe-saved- > tests/201812250324_qemu' > > This is because /tmp/oe-saved-tests was created by user A, while user > B tries > to write data in it, then the error will happen. This patch can fix > the problem. > > Signed-off-by: Robert Yang <liezhi.yang@windriver.com> > --- > meta/classes/testimage.bbclass | 2 +- > meta/lib/oeqa/runtime/context.py | 7 +++---- > meta/lib/oeqa/utils/dump.py | 5 ++++- > 3 files changed, 8 insertions(+), 6 deletions(-) Putting this into /tmp isn't good. Why don't we move this to LOG_DIR/runtime-hostdump/? Cheers, Richard ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] oeqa: make it work for multiple users 2018-12-27 11:37 ` Richard Purdie @ 2018-12-28 2:03 ` Robert Yang 2018-12-28 7:57 ` Robert Yang 1 sibling, 0 replies; 10+ messages in thread From: Robert Yang @ 2018-12-28 2:03 UTC (permalink / raw) To: Richard Purdie, openembedded-core On 12/27/18 7:37 PM, Richard Purdie wrote: > On Thu, 2018-12-27 at 00:59 -0800, Robert Yang wrote: >> There are failures when multiple users run oe-selftest on the same >> host: >> >> PermissionError: [Errno 13] Permission denied: '/tmp/oe-saved- >> tests/201812250324_qemu' >> >> This is because /tmp/oe-saved-tests was created by user A, while user >> B tries >> to write data in it, then the error will happen. This patch can fix >> the problem. >> >> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> >> --- >> meta/classes/testimage.bbclass | 2 +- >> meta/lib/oeqa/runtime/context.py | 7 +++---- >> meta/lib/oeqa/utils/dump.py | 5 ++++- >> 3 files changed, 8 insertions(+), 6 deletions(-) > > Putting this into /tmp isn't good. Why don't we move this to > LOG_DIR/runtime-hostdump/? Thanks, make sense, I will send a V2 for patch 1 and 2. // Robert > > Cheers, > > Richard > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] oeqa: make it work for multiple users 2018-12-27 11:37 ` Richard Purdie 2018-12-28 2:03 ` Robert Yang @ 2018-12-28 7:57 ` Robert Yang 2018-12-28 23:09 ` richard.purdie 1 sibling, 1 reply; 10+ messages in thread From: Robert Yang @ 2018-12-28 7:57 UTC (permalink / raw) To: Richard Purdie, openembedded-core On 12/27/18 7:37 PM, Richard Purdie wrote: > On Thu, 2018-12-27 at 00:59 -0800, Robert Yang wrote: >> There are failures when multiple users run oe-selftest on the same >> host: >> >> PermissionError: [Errno 13] Permission denied: '/tmp/oe-saved- >> tests/201812250324_qemu' >> >> This is because /tmp/oe-saved-tests was created by user A, while user >> B tries >> to write data in it, then the error will happen. This patch can fix >> the problem. >> >> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> >> --- >> meta/classes/testimage.bbclass | 2 +- >> meta/lib/oeqa/runtime/context.py | 7 +++---- >> meta/lib/oeqa/utils/dump.py | 5 ++++- >> 3 files changed, 8 insertions(+), 6 deletions(-) > > Putting this into /tmp isn't good. Why don't we move this to > LOG_DIR/runtime-hostdump/? I'm afraid that we can't do this, the problem is that we need call get_bb_vars() to get LOG_DIR (d.getVar('LOG_DIR') doesn't work), but get_bb_vars() runs "bitbake -e" which doesn't work when "bitbake <image> -ctestimage" since there is a bitbake server running. We can only get BUILDDIR if we don't call get_bb_vars(), so I think that we have the following 2 solutions: 1) Save it to /tmp/runtime-hostdump Or: 2) Save it to BUILDDIR/runtime-hostdump What's your opinion, please ? // Robert > > Cheers, > > Richard > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] oeqa: make it work for multiple users 2018-12-28 7:57 ` Robert Yang @ 2018-12-28 23:09 ` richard.purdie 2019-01-02 2:09 ` Robert Yang 0 siblings, 1 reply; 10+ messages in thread From: richard.purdie @ 2018-12-28 23:09 UTC (permalink / raw) To: Robert Yang, openembedded-core On Fri, 2018-12-28 at 15:57 +0800, Robert Yang wrote: > > On 12/27/18 7:37 PM, Richard Purdie wrote: > > On Thu, 2018-12-27 at 00:59 -0800, Robert Yang wrote: > > > There are failures when multiple users run oe-selftest on the > > > same > > > host: > > > > > > PermissionError: [Errno 13] Permission denied: '/tmp/oe-saved- > > > tests/201812250324_qemu' > > > > > > This is because /tmp/oe-saved-tests was created by user A, while > > > user > > > B tries > > > to write data in it, then the error will happen. This patch can > > > fix > > > the problem. > > > > > > Signed-off-by: Robert Yang <liezhi.yang@windriver.com> > > > --- > > > meta/classes/testimage.bbclass | 2 +- > > > meta/lib/oeqa/runtime/context.py | 7 +++---- > > > meta/lib/oeqa/utils/dump.py | 5 ++++- > > > 3 files changed, 8 insertions(+), 6 deletions(-) > > > > Putting this into /tmp isn't good. Why don't we move this to > > LOG_DIR/runtime-hostdump/? > > I'm afraid that we can't do this, the problem is that we need call > get_bb_vars() > to get LOG_DIR (d.getVar('LOG_DIR') doesn't work), but get_bb_vars() > runs > "bitbake -e" which doesn't work when "bitbake <image> -ctestimage" > since there > is a bitbake server running. We can only get BUILDDIR if we don't > call > get_bb_vars(), so I think that we have the following 2 solutions: > > 1) Save it to /tmp/runtime-hostdump > > Or: > > 2) Save it to BUILDDIR/runtime-hostdump > > What's your opinion, please ? I think it should be possible to use LOG_DIR for most of the usecases. It won't work for the "on target" mode but it should be possible elsewhere even if we have to tweak the code a bit to ensure the right variables are passed around? Cheers, Richard ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] oeqa: make it work for multiple users 2018-12-28 23:09 ` richard.purdie @ 2019-01-02 2:09 ` Robert Yang 0 siblings, 0 replies; 10+ messages in thread From: Robert Yang @ 2019-01-02 2:09 UTC (permalink / raw) To: richard.purdie, openembedded-core On 12/29/18 7:09 AM, richard.purdie@linuxfoundation.org wrote: > On Fri, 2018-12-28 at 15:57 +0800, Robert Yang wrote: >> >> On 12/27/18 7:37 PM, Richard Purdie wrote: >>> On Thu, 2018-12-27 at 00:59 -0800, Robert Yang wrote: >>>> There are failures when multiple users run oe-selftest on the >>>> same >>>> host: >>>> >>>> PermissionError: [Errno 13] Permission denied: '/tmp/oe-saved- >>>> tests/201812250324_qemu' >>>> >>>> This is because /tmp/oe-saved-tests was created by user A, while >>>> user >>>> B tries >>>> to write data in it, then the error will happen. This patch can >>>> fix >>>> the problem. >>>> >>>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> >>>> --- >>>> meta/classes/testimage.bbclass | 2 +- >>>> meta/lib/oeqa/runtime/context.py | 7 +++---- >>>> meta/lib/oeqa/utils/dump.py | 5 ++++- >>>> 3 files changed, 8 insertions(+), 6 deletions(-) >>> >>> Putting this into /tmp isn't good. Why don't we move this to >>> LOG_DIR/runtime-hostdump/? >> >> I'm afraid that we can't do this, the problem is that we need call >> get_bb_vars() >> to get LOG_DIR (d.getVar('LOG_DIR') doesn't work), but get_bb_vars() >> runs >> "bitbake -e" which doesn't work when "bitbake <image> -ctestimage" >> since there >> is a bitbake server running. We can only get BUILDDIR if we don't >> call >> get_bb_vars(), so I think that we have the following 2 solutions: >> >> 1) Save it to /tmp/runtime-hostdump >> >> Or: >> >> 2) Save it to BUILDDIR/runtime-hostdump >> >> What's your opinion, please ? > > I think it should be possible to use LOG_DIR for most of the usecases. > It won't work for the "on target" mode but it should be possible > elsewhere even if we have to tweak the code a bit to ensure the right > variables are passed around? Yes, I agree with that, I will try it. // Robert > > Cheers, > > Richard > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/3] runqemu-gen-tapdevs: Allow run --help without sudo 2018-12-27 8:59 [PATCH 0/3] oeqa related: 3 fixes Robert Yang 2018-12-27 8:59 ` [PATCH 1/3] oeqa: make it work for multiple users Robert Yang @ 2018-12-27 8:59 ` Robert Yang 2018-12-27 11:32 ` Richard Purdie 2018-12-27 8:59 ` [PATCH 3/3] oeqa/utils/qemurunner: Print output when failed to login Robert Yang 2 siblings, 1 reply; 10+ messages in thread From: Robert Yang @ 2018-12-27 8:59 UTC (permalink / raw) To: openembedded-core Then we can get user's UID and GID rather than hardcode to 1000, e.g.: $ sudo ../poky/scripts/runqemu-gen-tapdevs 15220 100 4 tmp/sysroots-components/x86_64/qemu-helper-native/usr/bin Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- scripts/runqemu-gen-tapdevs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/runqemu-gen-tapdevs b/scripts/runqemu-gen-tapdevs index 11de318..67c4fcc 100755 --- a/scripts/runqemu-gen-tapdevs +++ b/scripts/runqemu-gen-tapdevs @@ -29,15 +29,10 @@ usage() { echo "<num> is the number of tap devices to create (0 to remove all)" echo "<native-sysroot-basedir> is the path to the build system's native sysroot" echo "e.g. $ bitbake qemu-helper-native" - echo "$ sudo $0 1000 1000 4 tmp/sysroots-components/x86_64/qemu-helper-native/usr/bin" + echo "$ sudo $0 `id -u` `id -g` 4 tmp/sysroots-components/x86_64/qemu-helper-native/usr/bin" exit 1 } -if [ $EUID -ne 0 ]; then - echo "Error: This script must be run with root privileges" - exit -fi - if [ $# -ne 4 ]; then echo "Error: Incorrect number of arguments" usage @@ -54,6 +49,11 @@ if [[ ! -x "$TUNCTL" || -d "$TUNCTL" ]]; then usage fi +if [ $EUID -ne 0 ]; then + echo "Error: This script must be run with root privileges" + exit +fi + SCRIPT_DIR=`dirname $0` RUNQEMU_IFUP="$SCRIPT_DIR/runqemu-ifup" if [ ! -x "$RUNQEMU_IFUP" ]; then -- 2.10.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] runqemu-gen-tapdevs: Allow run --help without sudo 2018-12-27 8:59 ` [PATCH 2/3] runqemu-gen-tapdevs: Allow run --help without sudo Robert Yang @ 2018-12-27 11:32 ` Richard Purdie 0 siblings, 0 replies; 10+ messages in thread From: Richard Purdie @ 2018-12-27 11:32 UTC (permalink / raw) To: Robert Yang, openembedded-core On Thu, 2018-12-27 at 00:59 -0800, Robert Yang wrote: > Then we can get user's UID and GID rather than hardcode to 1000, > e.g.: > > $ sudo ../poky/scripts/runqemu-gen-tapdevs 15220 100 4 tmp/sysroots- > components/x86_64/qemu-helper-native/usr/bin > > Signed-off-by: Robert Yang <liezhi.yang@windriver.com> > --- > scripts/runqemu-gen-tapdevs | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) This fixes the help output without sudo but breaks the help output under sudo. How about we check SUDO_UID and SUDO_GID? Something like: uid=`id -u` if [ -n "$SUDO_UID" ]; then uid=$SUDO_UID fi ? Cheers, Richard ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 3/3] oeqa/utils/qemurunner: Print output when failed to login 2018-12-27 8:59 [PATCH 0/3] oeqa related: 3 fixes Robert Yang 2018-12-27 8:59 ` [PATCH 1/3] oeqa: make it work for multiple users Robert Yang 2018-12-27 8:59 ` [PATCH 2/3] runqemu-gen-tapdevs: Allow run --help without sudo Robert Yang @ 2018-12-27 8:59 ` Robert Yang 2 siblings, 0 replies; 10+ messages in thread From: Robert Yang @ 2018-12-27 8:59 UTC (permalink / raw) To: openembedded-core This is useful for debugging. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- meta/lib/oeqa/utils/qemurunner.py | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py index 3a9ba02..cce95e1 100644 --- a/meta/lib/oeqa/utils/qemurunner.py +++ b/meta/lib/oeqa/utils/qemurunner.py @@ -354,6 +354,7 @@ class QemuRunner: else: self.logger.debug("Couldn't login into serial console" " as root using blank password") + self.logger.debug("The output:\n%s" % output) except: self.logger.debug("Serial console failed while trying to login") return True -- 2.10.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2019-01-02 2:04 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-12-27 8:59 [PATCH 0/3] oeqa related: 3 fixes Robert Yang 2018-12-27 8:59 ` [PATCH 1/3] oeqa: make it work for multiple users Robert Yang 2018-12-27 11:37 ` Richard Purdie 2018-12-28 2:03 ` Robert Yang 2018-12-28 7:57 ` Robert Yang 2018-12-28 23:09 ` richard.purdie 2019-01-02 2:09 ` Robert Yang 2018-12-27 8:59 ` [PATCH 2/3] runqemu-gen-tapdevs: Allow run --help without sudo Robert Yang 2018-12-27 11:32 ` Richard Purdie 2018-12-27 8:59 ` [PATCH 3/3] oeqa/utils/qemurunner: Print output when failed to login Robert Yang
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.