@@ -1353,16 +1353,22 @@ python do_qa_patch() {
###########################################################################
def match_line_in_files(toplevel, filename_glob, line_regex):
import pathlib
- toppath = pathlib.Path(toplevel)
- for entry in toppath.glob(filename_glob):
- try:
- with open(entry, 'r', encoding='utf-8', errors='ignore') as f:
- for line in f.readlines():
- if re.match(line_regex, line):
- return True
- except FileNotFoundError:
- # Broken symlink in source
- pass
+ try:
+ toppath = pathlib.Path(toplevel)
+ for entry in toppath.glob(filename_glob):
+ try:
+ with open(entry, 'r', encoding='utf-8', errors='ignore') as f:
+ for line in f.readlines():
+ if re.match(line_regex, line):
+ return True
+ except FileNotFoundError:
+ # Broken symlink in source
+ pass
+ except FileNotFoundError:
+ # pathlib.Path.glob() might throw this when file/directory
+ # disappear while scanning.
+ bb.note("unimplemented-ptest: FileNotFoundError exception while scanning (disappearing file while scanning?). Check was ignored." % d.getVar('PN'))
+ pass
return False
srcdir = d.getVar('S')
In some cases, pathlib.Path.glob() might throw FileNotFoundError when file/directory disappear while it is iterating over them. This "warning" is not important enough to crash build in this case so just take a bb.note of the problem and move on. Signed-off-by: Yoann Congal <yoann.congal@smile.fr> Reported-by: Mark Hatle <mark.hatle@amd.com> Closes: https://lists.openembedded.org/g/openembedded-core/message/189254 --- meta/classes-global/insane.bbclass | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-)