aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bb/server
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2015-03-06 15:42:03 +0000
committerAlexandru DAMIAN <alexandru.damian@intel.com>2015-03-09 13:15:20 +0000
commite7c9a6788d969c901fd6394416ac3936e62c4c72 (patch)
treee25525838389eb19091060b20c5aa0edfb598b2c /lib/bb/server
parent0b66b05169688aa4ddc4c54d175bb961b2f27fec (diff)
downloadbitbake-e7c9a6788d969c901fd6394416ac3936e62c4c72.tar.gz
xmlrpc server: delete function on errors
This patch makes sure to delete an idle function that raises an exception for the xmlrpc server. The counterpart functionality in the process server was added with: commit db50630948394bdcd361f3511af40c1896b1a017. duthor: Richard Purdie <richard.purdie@linuxfoundation.org> Date: Wed Aug 20 22:31:06 2014 +0000 bitbake: process: Deal with infinite looping of the server This patch fixes [YOCTO #7316] Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Diffstat (limited to 'lib/bb/server')
-rw-r--r--lib/bb/server/xmlrpc.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/bb/server/xmlrpc.py b/lib/bb/server/xmlrpc.py
index afe3dfe5d..17f3d9d90 100644
--- a/lib/bb/server/xmlrpc.py
+++ b/lib/bb/server/xmlrpc.py
@@ -235,6 +235,7 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
fds = [self]
nextsleep = 0.1
for function, data in self._idlefuns.items():
+ retval = None
try:
retval = function(self, data, False)
if retval is False:
@@ -248,6 +249,9 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
except:
import traceback
traceback.print_exc()
+ if retval == None:
+ # the function execute failed; delete it
+ del self._idlefuns[function]
pass
socktimeout = self.socket.gettimeout() or nextsleep