Bläddra i källkod

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 <yoann.congal@smile.fr>
Reported-by: Mark Hatle <mark.hatle@amd.com>
Closes: https://lists.openembedded.org/g/openembedded-core/message/189254
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Yoann Congal 1 år sedan
förälder
incheckning
07546cc63f
1 ändrade filer med 16 tillägg och 10 borttagningar
  1. 16 10
      meta/classes-global/insane.bbclass

+ 16 - 10
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')