All of lore.kernel.org
 help / color / mirror / Atom feed
* [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

* [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

* [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

* 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

* 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

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.