| Summary: | Random do_ar_patched failure due to race condition with do_configure autoconf | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Rick Liu <rick.liu> | ||||||||||
| Component: | core | Assignee: | Unassigned <unassigned> | ||||||||||
| Status: | RESOLVED OBSOLETE | QA Contact: | |||||||||||
| Severity: | major | ||||||||||||
| Priority: | Medium | CC: | c.andersen, jon.richardson, meta.mr.watcher, meta.watcher, randy.macleod, richard.purdie, scott.branden | ||||||||||
| Version: | 3.3 | ||||||||||||
| Target Milestone: | 5.99 | ||||||||||||
| Hardware: | x86 | ||||||||||||
| OS: | Multiple | ||||||||||||
| Whiteboard: | |||||||||||||
| OS type for building Yocto: | --- | Type of Regression: | --- | ||||||||||
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |||||||||||
| Attachments: |
|
||||||||||||
|
Description
Rick Liu
2021-01-05 00:03:36 UTC
Created attachment 4756 [details]
bitbake-console-output-219.0.0.32.log
Created attachment 4757 [details]
219.0.0.32-brcm-nic-mgr.log.tgz
brcm-nic-mgr recipe log (build/tmp/work/aarch64-poky-linux/brcm-nic-mgr/gitAUTOINC+9026833037_9651aeb672_a120b9b8dd-r0/temp/*)
Created attachment 4758 [details]
brcm-nic-mgr.bb
brcm-nic-mgr.bb
Your intuition seems right in that it's trying to archive the file while it's trying to run configure. Do we need to a dependency or is the a problem with dependency code? Are you able to submit a patch? How easy is it to reproduce? I'm a little confused why this is happening, could you share the way the archiver is configured please?
Looking at the code, do_ar_patched depends upon do_unpack_and_patch which extracts the source into a separate directory. do_ar_patched() then runs on that separate directory.
So the question is why is the code looking in ${S} at all?
It's not very easy. At least I haven't been able to produce manually, and it's occasionally running into this issue during automation CI/CD builds. Created attachment 4759 [details]
archiver.bbclass
This our archiver.bbclass.
We have some local modification in this class
to take out GIT branch/files from the archive tarball.
I don't think these modification would cause this race issue.
I think most of time when I see this issue on CI/CD servers, the servers were busy. So I'd assume this race condition happens when CPU or I/O is fully loaded. The tasks might take longer than usual to complete etc. (In reply to comment #5) > I'm a little confused why this is happening, could you share the way the > archiver is configured please? > > Looking at the code, do_ar_patched depends upon do_unpack_and_patch which > extracts the source into a separate directory. do_ar_patched() then runs on > that separate directory. > > So the question is why is the code looking in ${S} at all? I am seeing a similar issue. In our case this is happening for a Linux kernel recipe. Our error looks exactly like the one described in the following patch from 2019: https://patchwork.openembedded.org/patch/163387/ But the issue looks the same: * configure (or kernel_config_me) changes ${S} (temporary config files) * the archiver seems to run at the same time As far as I understand the archiver, the workdir is changed and the archiver should not interfere with the original ${S}. But for recipes inheriting the kernel.bbclass (which uses the shared workdir), this step is skipped. Build move to 5.0 -- ../Randy Bulk move of 5.0 medium importance issues to 5.99. Move to 5.1 if you want to actively work on an issue. Move to 5.99 since no one is actively working on this issue. Move to 5.x if you start on a task, please. There have been changes to archiver.bbclass for kernels and shared workdir, if there are still issues, a new bug report may be easiest at this point. |