[oe-commits] [bitbake] 03/04: cooker: Improve inotify overflow handling

git at git.openembedded.org git at git.openembedded.org
Wed Aug 9 22:51:19 UTC 2017


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository bitbake.

commit ec60459fe2ba16966544eebff43b061abb7ed3ba
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Wed Aug 9 12:57:57 2017 +0100

    cooker: Improve inotify overflow handling
    
    Add a proper function for clearing the mtime cache. Clean up the inotify
    event overflow case to err on the side of caution and clear any potentially
    now out of sync caches.
    
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 lib/bb/cooker.py         | 5 ++++-
 lib/bb/parse/__init__.py | 4 ++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 77b7f3d..b3d6cd9 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -189,7 +189,7 @@ class BBCooker:
 
         # If being called by something like tinfoil, we need to clean cached data
         # which may now be invalid
-        bb.parse.__mtime_cache = {}
+        bb.parse.clear_cache()
         bb.parse.BBHandler.cached_statements = {}
 
         self.ui_cmdline = None
@@ -247,7 +247,9 @@ class BBCooker:
     def config_notifications(self, event):
         if event.maskname == "IN_Q_OVERFLOW":
             bb.warn("inotify event queue overflowed, invalidating caches.")
+            self.parsecache_valid = False
             self.baseconfig_valid = False
+            bb.parse.clear_cache()
             return
         if not event.pathname in self.configwatcher.bbwatchedfiles:
             return
@@ -259,6 +261,7 @@ class BBCooker:
         if event.maskname == "IN_Q_OVERFLOW":
             bb.warn("inotify event queue overflowed, invalidating caches.")
             self.parsecache_valid = False
+            bb.parse.clear_cache()
             return
         if not event.pathname in self.inotify_modified_files:
             self.inotify_modified_files.append(event.pathname)
diff --git a/lib/bb/parse/__init__.py b/lib/bb/parse/__init__.py
index a2952ec..2fc4002 100644
--- a/lib/bb/parse/__init__.py
+++ b/lib/bb/parse/__init__.py
@@ -84,6 +84,10 @@ def update_cache(f):
         logger.debug(1, "Updating mtime cache for %s" % f)
         update_mtime(f)
 
+def clear_cache():
+    global __mtime_cache
+    __mtime_cache = {}
+
 def mark_dependency(d, f):
     if f.startswith('./'):
         f = "%s/%s" % (os.getcwd(), f[2:])

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list