From 07546cc63f5e2a1a74bd7f5cac6ad1c9948264d4 Mon Sep 17 00:00:00 2001 From: Yoann Congal Date: Mon, 16 Oct 2023 17:51:13 +0200 Subject: insane: unimplemented-ptest: ignore source file errors 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. (From OE-Core rev: 85ddbb67f0f6f823cac0966db78e5b74c5a54c4c) Signed-off-by: Yoann Congal Reported-by: Mark Hatle Closes: https://lists.openembedded.org/g/openembedded-core/message/189254 Signed-off-by: Richard Purdie --- meta/classes-global/insane.bbclass | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'meta/classes-global') diff --git a/meta/classes-global/insane.bbclass b/meta/classes-global/insane.bbclass index f7a2c392cf..6f3cd3026d 100644 --- a/meta/classes-global/insane.bbclass +++ b/meta/classes-global/insane.bbclass @@ -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') -- cgit v1.2.3-54-g00ecf