kernel_configcheck should be run for SRCTREE linux

Message ID 20220407013959.929748-1-yozhao@google.com
State New
Headers show
Series kernel_configcheck should be run for SRCTREE linux | expand

Commit Message

Yong Zhao April 7, 2022, 1:39 a.m. UTC
The task is useful for a SRCTREE linux. Because it won't modify the
SRCTREE, it does not hurt to run it by default.

Signed-off-by: Yong Zhao <yozhao@google.com>
---
 meta/classes/kernel-yocto.bbclass | 2 +-
 scripts/lib/devtool/standard.py   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Alexandre Belloni April 13, 2022, 6:46 a.m. UTC | #1
Hello,

I believe this has introduced a race condition and is the cause of those
two failures:
https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/3442/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/86/builds/3399/steps/14/logs/stdio

2022-04-12 22:43:44,845 - oe-selftest - INFO - FAIL: devtool.DevtoolUpgradeTests.test_devtool_virtual_kernel_modify (subunit.RemotedTestCase)
2022-04-12 22:43:44,845 - oe-selftest - INFO - ----------------------------------------------------------------------
2022-04-12 22:43:44,845 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/lib/oeqa/selftest/cases/devtool.py", line 1911, in test_devtool_virtual_kernel_modify
    runCmd('devtool build %s' % kernel_provider)
  File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/lib/oeqa/utils/commands.py", line 207, in runCmd
    raise AssertionError("Command '%s' returned non-zero exit status %d:\n%s" % (command, result.status, exc_output))
AssertionError: Command 'devtool build linux-yocto' returned non-zero exit status 1:

ERROR: linux-yocto-5.15.32+git999-r0 do_kernel_configcheck: config analysis failed: 
ERROR: Logfile of failure stored in: /home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/build-st-3540668/tmp/work/qemux86_64-poky-linux/linux-yocto/5.15.32+git999-r0/temp/log.do_kernel_configcheck.342487
NOTE: recipe linux-yocto-5.15.32+git999-r0: task do_kernel_configcheck: Failed
ERROR: Task (/tmp/devtoolqasd4ey4qf/core-copy/meta/recipes-kernel/linux/linux-yocto_5.15.bb:do_kernel_configcheck) failed with exit code '1'

I tried to get the logs from the autobuilders but the
linux-yocto/5.15.32+git999-r0/ directory was not present anymore...

On 06/04/2022 18:39:59-0700, Yong Zhao via lists.openembedded.org wrote:
> The task is useful for a SRCTREE linux. Because it won't modify the
> SRCTREE, it does not hurt to run it by default.
> 
> Signed-off-by: Yong Zhao <yozhao@google.com>
> ---
>  meta/classes/kernel-yocto.bbclass | 2 +-
>  scripts/lib/devtool/standard.py   | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
> index 1d5a8cdf29..56ba340c1b 100644
> --- a/meta/classes/kernel-yocto.bbclass
> +++ b/meta/classes/kernel-yocto.bbclass
> @@ -1,5 +1,5 @@
>  # remove tasks that modify the source tree in case externalsrc is inherited
> -SRCTREECOVEREDTASKS += "do_validate_branches do_kernel_configcheck do_kernel_checkout do_fetch do_unpack do_patch"
> +SRCTREECOVEREDTASKS += "do_validate_branches do_kernel_checkout do_fetch do_unpack do_patch"
>  PATCH_GIT_USER_EMAIL ?= "kernel-yocto@oe"
>  PATCH_GIT_USER_NAME ?= "OpenEmbedded"
>  
> diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
> index 01fb5ad96f..35cea6f320 100644
> --- a/scripts/lib/devtool/standard.py
> +++ b/scripts/lib/devtool/standard.py
> @@ -949,7 +949,7 @@ def modify(args, config, basepath, workspace):
>  
>              if bb.data.inherits_class('kernel', rd):
>                  f.write('SRCTREECOVEREDTASKS = "do_validate_branches do_kernel_checkout '
> -                        'do_fetch do_unpack do_kernel_configcheck"\n')
> +                        'do_fetch do_unpack"\n')
>                  f.write('\ndo_patch[noexec] = "1"\n')
>                  f.write('\ndo_configure:append() {\n'
>                          '    cp ${B}/.config ${S}/.config.baseline\n'
> -- 
> 2.35.1.1094.g7c7d902a7c-goog
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#164095): https://lists.openembedded.org/g/openembedded-core/message/164095
> Mute This Topic: https://lists.openembedded.org/mt/90304701/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Yong Zhao April 21, 2022, 1:16 a.m. UTC | #2
Hi Alexandre,

Thanks for the info. I think the failure happened because the config files
did not pass do_kernel_configcheck. My patch is intended to catch those
errors. I don't know how to access those test results and how to reproduce
the issue at my side. As this patch is only an improvement, I can hold this
patch back unless you can help fix those config file issues.

Regards,
Yong

On Tue, Apr 12, 2022 at 11:46 PM Alexandre Belloni <
alexandre.belloni@bootlin.com> wrote:

> Hello,
>
> I believe this has introduced a race condition and is the cause of those
> two failures:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/3442/steps/14/logs/stdio
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/86/builds/3399/steps/14/logs/stdio
>
> 2022-04-12 22:43:44,845 - oe-selftest - INFO - FAIL:
> devtool.DevtoolUpgradeTests.test_devtool_virtual_kernel_modify
> (subunit.RemotedTestCase)
> 2022-04-12 22:43:44,845 - oe-selftest - INFO -
> ----------------------------------------------------------------------
> 2022-04-12 22:43:44,845 - oe-selftest - INFO -
> testtools.testresult.real._StringException: Traceback (most recent call
> last):
>   File
> "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/lib/oeqa/selftest/cases/devtool.py",
> line 1911, in test_devtool_virtual_kernel_modify
>     runCmd('devtool build %s' % kernel_provider)
>   File
> "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/lib/oeqa/utils/commands.py",
> line 207, in runCmd
>     raise AssertionError("Command '%s' returned non-zero exit status
> %d:\n%s" % (command, result.status, exc_output))
> AssertionError: Command 'devtool build linux-yocto' returned non-zero exit
> status 1:
>
> ERROR: linux-yocto-5.15.32+git999-r0 do_kernel_configcheck: config
> analysis failed:
> ERROR: Logfile of failure stored in:
> /home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/build-st-3540668/tmp/work/qemux86_64-poky-linux/linux-yocto/5.15.32+git999-r0/temp/log.do_kernel_configcheck.342487
> NOTE: recipe linux-yocto-5.15.32+git999-r0: task do_kernel_configcheck:
> Failed
> ERROR: Task
> (/tmp/devtoolqasd4ey4qf/core-copy/meta/recipes-kernel/linux/linux-yocto_5.15.bb:do_kernel_configcheck)
> failed with exit code '1'
>
> I tried to get the logs from the autobuilders but the
> linux-yocto/5.15.32+git999-r0/ directory was not present anymore...
>
> On 06/04/2022 18:39:59-0700, Yong Zhao via lists.openembedded.org wrote:
> > The task is useful for a SRCTREE linux. Because it won't modify the
> > SRCTREE, it does not hurt to run it by default.
> >
> > Signed-off-by: Yong Zhao <yozhao@google.com>
> > ---
> >  meta/classes/kernel-yocto.bbclass | 2 +-
> >  scripts/lib/devtool/standard.py   | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/meta/classes/kernel-yocto.bbclass
> b/meta/classes/kernel-yocto.bbclass
> > index 1d5a8cdf29..56ba340c1b 100644
> > --- a/meta/classes/kernel-yocto.bbclass
> > +++ b/meta/classes/kernel-yocto.bbclass
> > @@ -1,5 +1,5 @@
> >  # remove tasks that modify the source tree in case externalsrc is
> inherited
> > -SRCTREECOVEREDTASKS += "do_validate_branches do_kernel_configcheck
> do_kernel_checkout do_fetch do_unpack do_patch"
> > +SRCTREECOVEREDTASKS += "do_validate_branches do_kernel_checkout
> do_fetch do_unpack do_patch"
> >  PATCH_GIT_USER_EMAIL ?= "kernel-yocto@oe"
> >  PATCH_GIT_USER_NAME ?= "OpenEmbedded"
> >
> > diff --git a/scripts/lib/devtool/standard.py
> b/scripts/lib/devtool/standard.py
> > index 01fb5ad96f..35cea6f320 100644
> > --- a/scripts/lib/devtool/standard.py
> > +++ b/scripts/lib/devtool/standard.py
> > @@ -949,7 +949,7 @@ def modify(args, config, basepath, workspace):
> >
> >              if bb.data.inherits_class('kernel', rd):
> >                  f.write('SRCTREECOVEREDTASKS = "do_validate_branches
> do_kernel_checkout '
> > -                        'do_fetch do_unpack do_kernel_configcheck"\n')
> > +                        'do_fetch do_unpack"\n')
> >                  f.write('\ndo_patch[noexec] = "1"\n')
> >                  f.write('\ndo_configure:append() {\n'
> >                          '    cp ${B}/.config ${S}/.config.baseline\n'
> > --
> > 2.35.1.1094.g7c7d902a7c-goog
> >
>
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#164095):
> https://lists.openembedded.org/g/openembedded-core/message/164095
> > Mute This Topic: https://lists.openembedded.org/mt/90304701/3617179
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> alexandre.belloni@bootlin.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>

Patch

diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 1d5a8cdf29..56ba340c1b 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -1,5 +1,5 @@ 
 # remove tasks that modify the source tree in case externalsrc is inherited
-SRCTREECOVEREDTASKS += "do_validate_branches do_kernel_configcheck do_kernel_checkout do_fetch do_unpack do_patch"
+SRCTREECOVEREDTASKS += "do_validate_branches do_kernel_checkout do_fetch do_unpack do_patch"
 PATCH_GIT_USER_EMAIL ?= "kernel-yocto@oe"
 PATCH_GIT_USER_NAME ?= "OpenEmbedded"
 
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index 01fb5ad96f..35cea6f320 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -949,7 +949,7 @@  def modify(args, config, basepath, workspace):
 
             if bb.data.inherits_class('kernel', rd):
                 f.write('SRCTREECOVEREDTASKS = "do_validate_branches do_kernel_checkout '
-                        'do_fetch do_unpack do_kernel_configcheck"\n')
+                        'do_fetch do_unpack"\n')
                 f.write('\ndo_patch[noexec] = "1"\n')
                 f.write('\ndo_configure:append() {\n'
                         '    cp ${B}/.config ${S}/.config.baseline\n'