Le lun. 16 oct. 2023 à 17:37, Mark Hatle
<[email protected]> a écrit :
> On 10/16/23 7:17 AM, Yoann Congal wrote:
> > Hi Mark,
> >
> > Le lun. 16 oct. 2023 à 02:40, Mark Hatle via lists.openembedded.org
> > <[email protected]> a écrit :
> >> Running a number of builds recently, a small number of them failed.  Note 
> >> we ran about 20 builds and only 3 failed like this, the others completed.  
> >> I'm wondering if maybe there is a race condition with the new code?
> >
> > FYI, RP did point me to this thread (that I did miss sorry) and I
> > (co-author of the "new code") will send two patches to prevent the
> > error the happen again.
> > RP's hypothesis is that this is linked to S=WORKDIR recipes. Did all
> > your crashed build happened on "depmodwrapper-cross" (Which is
> > S=WORKDIR) ?
>
> Yes, they all failed on depmodwrapper-cross.

Realy looks like the S=WORKDIR case !

> Happy to test changes for you.

Thanks!

I've sent patches here  :
[PATCH 1/2] insane: skip unimplemented-ptest on S=WORKDIR recipes
https://lists.openembedded.org/g/openembedded-core/message/189301
[PATCH 2/2] insane: unimplemented-ptest: ignore source file errors
https://lists.openembedded.org/g/openembedded-core/message/189302

I've tested that the depmodwrapper-cross recipe is now skipped for the
unimplemented-ptest check.

Regards,

> --Mark
>
> > Thanks!
> >
> >> Error:
> >>
> >> ERROR: depmodwrapper-cross-1.0-r0 do_patch: Error executing a python 
> >> function in exec_func_python() autogenerated:
> >>
> >> The stack trace of python calls that resulted in this exception/failure 
> >> was:
> >> File: 'exec_func_python() autogenerated', lineno: 2, function: <module>
> >> 0001:
> >> *** 0002:do_qa_patch(d)
> >> 0003:
> >> File: 
> >> '/scratch/jenkins-BUILDS-eSDK-dev_eSDK-eSDK-master-next-pipeline-8_ZynqMpDrFull/sources/poky/meta/classes-global/insane.bbclass',
> >>  lineno: 1379, function: do_qa_patch
> >> 1375:    elif os.path.exists(os.path.join(srcdir, "t")) and 
> >> any(filename.endswith('.t') for filename in 
> >> os.listdir(os.path.join(srcdir, 't'))):
> >> 1376:        oe.qa.handle_error("unimplemented-ptest", "%s: perl Test:: 
> >> based tests detected" % d.getVar('PN'), d)
> >> 1377:
> >> 1378:    # Detect pytest-based tests
> >> *** 1379:    elif match_line_in_files(srcdir, "**/*.py", 
> >> r'\s*(?:import\s*pytest|from\s*pytest)'):
> >> 1380:        oe.qa.handle_error("unimplemented-ptest", "%s: pytest-based 
> >> tests detected" % d.getVar('PN'), d)
> >> 1381:
> >> 1382:    # Detect meson-based tests
> >> 1383:    elif os.path.exists(os.path.join(srcdir, "meson.build")) and 
> >> match_line_in_files(srcdir, "**/meson.build", r'\s*test\s*\('):
> >> File: 
> >> '/scratch/jenkins-BUILDS-eSDK-dev_eSDK-eSDK-master-next-pipeline-8_ZynqMpDrFull/sources/poky/meta/classes-global/insane.bbclass',
> >>  lineno: 1357, function: match_line_in_files
> >> 1353:    
> >> ###########################################################################
> >> 1354:    def match_line_in_files(toplevel, filename_glob, line_regex):
> >> 1355:        import pathlib
> >> 1356:        toppath = pathlib.Path(toplevel)
> >> *** 1357:        for entry in toppath.glob(filename_glob):
> >> 1358:            try:
> >> 1359:                with open(entry, 'r', encoding='utf-8', 
> >> errors='ignore') as f:
> >> 1360:                    for line in f.readlines():
> >> 1361:                        if re.match(line_regex, line):
> >> File: '/usr/lib/python3.10/pathlib.py', lineno: 1034, function: glob
> >> 1030:        drv, root, pattern_parts = 
> >> self._flavour.parse_parts((pattern,))
> >> 1031:        if drv or root:
> >> 1032:            raise NotImplementedError("Non-relative patterns are 
> >> unsupported")
> >> 1033:        selector = _make_selector(tuple(pattern_parts), self._flavour)
> >> *** 1034:        for p in selector.select_from(self):
> >> 1035:            yield p
> >> 1036:
> >> 1037:    def rglob(self, pattern):
> >> 1038:        """Recursively yield all existing files (of any kind, 
> >> including
> >> File: '/usr/lib/python3.10/pathlib.py', lineno: 493, function: _select_from
> >> 0489:            yielded = set()
> >> 0490:            try:
> >> 0491:                successor_select = self.successor._select_from
> >> 0492:                for starting_point in 
> >> self._iterate_directories(parent_path, is_dir, scandir):
> >> *** 0493:                    for p in successor_select(starting_point, 
> >> is_dir, exists, scandir):
> >> 0494:                        if p not in yielded:
> >> 0495:                            yield p
> >> 0496:                            yielded.add(p)
> >> 0497:            finally:
> >> File: '/usr/lib/python3.10/pathlib.py', lineno: 440, function: _select_from
> >> 0436:        _Selector.__init__(self, child_parts, flavour)
> >> 0437:
> >> 0438:    def _select_from(self, parent_path, is_dir, exists, scandir):
> >> 0439:        try:
> >> *** 0440:            with scandir(parent_path) as scandir_it:
> >> 0441:                entries = list(scandir_it)
> >> 0442:            for entry in entries:
> >> 0443:                if self.dironly:
> >> 0444:                    try:
> >> Exception: FileNotFoundError: [Errno 2] No such file or directory: 
> >> '/scratch/jenkins-BUILDS-eSDK-dev_eSDK-eSDK-master-next-pipeline-8_ZynqMpDrFull/build/tmp/work/zynqmp_generic-xilinx-linux/depmodwrapper-cross/1.0/sstate-build-create_spdx'
> >>
> >> ERROR: Logfile of failure stored in: 
> >> /scratch/jenkins-BUILDS-eSDK-dev_eSDK-eSDK-master-next-pipeline-8_ZynqMpDrFull/build/tmp/work/zynqmp_generic-xilinx-linux/depmodwrapper-cross/1.0/temp/log.do_patch.1966488
> >>
> >>
> >>
> >>
> >>
> >>
> >>
>
> 

-- 
Yoann Congal
Smile ECS - Tech expert
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#189303): 
https://lists.openembedded.org/g/openembedded-core/message/189303
Mute This Topic: https://lists.openembedded.org/mt/101987519/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to