summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2017-09-04 14:00:31 +1200
committerPaul Eggleton <paul.eggleton@linux.intel.com>2017-09-05 09:40:36 +1200
commit56d935c48b94ddb12ad251254da235f2281961b8 (patch)
tree01dc7711b76990f264859ae133be6345426fa969
parent7234f33a7eb38ad51a8345f6689bc26e29f29f92 (diff)
downloadbitbake-contrib-56d935c48b94ddb12ad251254da235f2281961b8.tar.gz
cooker: clear extra config settings and remote datastores on client disconnect
When the UI disconnects, we can throw away any server-side remote datastores we created in response to calls from the UI, and we *must* drop everything in extraconfigdata or it will taint any future operations. Dropping extraconfigdata upon disconnect fixes taskhash mismatch errors when running devtool.DevtoolTests.test_devtool_update_recipe_local_files within oe-selftest with BB_SERVER_TIMEOUT=100 in OpenEmbedded. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-rw-r--r--lib/bb/command.py3
-rw-r--r--lib/bb/cooker.py2
2 files changed, 5 insertions, 0 deletions
diff --git a/lib/bb/command.py b/lib/bb/command.py
index 0d0354c30..6c966e3db 100644
--- a/lib/bb/command.py
+++ b/lib/bb/command.py
@@ -145,6 +145,9 @@ class Command:
self.currentAsyncCommand = None
self.cooker.finishcommand()
+ def reset(self):
+ self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
+
def split_mc_pn(pn):
if pn.startswith("multiconfig:"):
_, mc, pn = pn.split(":", 2)
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index f5ae831c4..10cb8be6c 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -1616,6 +1616,8 @@ class BBCooker:
def clientComplete(self):
"""Called when the client is done using the server"""
self.finishcommand()
+ self.extraconfigdata = {}
+ self.command.reset()
self.databuilder.reset()
self.data = self.databuilder.data