]> code.ossystems Code Review - openembedded-core.git/commitdiff
qemurunner: Improves checking for server and target IPs on qemus parameters
authorAlejandro Hernandez <alejandro.hernandez@linux.intel.com>
Thu, 6 Aug 2015 18:44:22 +0000 (18:44 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 9 Aug 2015 07:12:41 +0000 (00:12 -0700)
Fixes OS hanging infinitely waiting for qemus process to release bitbake.lock

Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/utils/qemurunner.py

index 1cf8f7668ce50100d64f1c7f99f7463c267df29d..02ac89c1421fdf8ed8cff04da72ba37b97306e94 100644 (file)
@@ -120,14 +120,17 @@ class QemuRunner:
             cmdline = ''
             with open('/proc/%s/cmdline' % self.qemupid) as p:
                 cmdline = p.read()
-            ips = re.findall("((?:[0-9]{1,3}\.){3}[0-9]{1,3})", cmdline.split("ip=")[1])
-            if not ips or len(ips) != 3:
+            try:
+                ips = re.findall("((?:[0-9]{1,3}\.){3}[0-9]{1,3})", cmdline.split("ip=")[1])
+                if not ips or len(ips) != 3:
+                    raise ValueError
+                else:
+                    self.ip = ips[0]
+                    self.server_ip = ips[1]
+            except IndexError, ValueError:
                 logger.info("Couldn't get ip from qemu process arguments! Here is the qemu command line used: %s" % cmdline)
                 self.stop()
                 return False
-            else:
-                self.ip = ips[0]
-                self.server_ip = ips[1]
             logger.info("Target IP: %s" % self.ip)
             logger.info("Server IP: %s" % self.server_ip)
             logger.info("Waiting at most %d seconds for login banner" % self.boottime)