From: Markus Lehtonen Date: Thu, 15 Sep 2016 11:20:50 +0000 (+0300) Subject: cookerdata: allow multiple passes of config re-parsing X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=07a03a1290fd206df2b40ffc28381b5b3c10ba4a;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git cookerdata: allow multiple passes of config re-parsing [YOCTO #10188] Signed-off-by: Markus Lehtonen Signed-off-by: Richard Purdie --- diff --git a/lib/bb/cookerdata.py b/lib/bb/cookerdata.py index 07425ce00d8..9e88f9571dc 100644 --- a/lib/bb/cookerdata.py +++ b/lib/bb/cookerdata.py @@ -270,9 +270,16 @@ class CookerDataBuilder(object): bb.event.fire(bb.event.ConfigParsed(), self.data) - if self.data.getVar("BB_INVALIDCONF", False) is True: + reparse_cnt = 0 + while self.data.getVar("BB_INVALIDCONF", False) is True: + if reparse_cnt > 20: + logger.error("Configuration has been re-parsed over 20 times, " + "breaking out of the loop...") + raise Exception("Too deep config re-parse loop. Check locations where " + "BB_INVALIDCONF is being set (ConfigParsed event handlers)") self.data.setVar("BB_INVALIDCONF", False) self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles) + reparse_cnt += 1 bb.event.fire(bb.event.ConfigParsed(), self.data) bb.parse.init_parser(self.data)