[oe-commits] Randy Witt : qemurunner: Shut down logging thread successfully when test fails

git at git.openembedded.org git at git.openembedded.org
Tue Aug 25 22:28:01 UTC 2015


Module: openembedded-core.git
Branch: master
Commit: 6497fddf7f6c4a59e16dab4a9daeb3614a61a8dc
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=6497fddf7f6c4a59e16dab4a9daeb3614a61a8dc

Author: Randy Witt <randy.e.witt at linux.intel.com>
Date:   Tue Aug 25 13:58:47 2015 -0700

qemurunner: Shut down logging thread successfully when test fails

Before this change on a test failure an exception would be generated due
to runqemu being killed before the logging thread which was on the other
end of the socket.

The exception was actually correct saying there was no data on a socket
marked readable, but this was because the qemu process was killed before
the listener thread.

Signed-off-by: Randy Witt <randy.e.witt at linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 meta/lib/oeqa/utils/qemurunner.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
index 33f3185..d079072 100644
--- a/meta/lib/oeqa/utils/qemurunner.py
+++ b/meta/lib/oeqa/utils/qemurunner.py
@@ -209,6 +209,7 @@ class QemuRunner:
 
     def stop(self):
 
+        self.stop_thread()
         if self.runqemu:
             logger.info("Sending SIGTERM to runqemu")
             try:
@@ -228,7 +229,6 @@ class QemuRunner:
             self.server_socket = None
         self.qemupid = None
         self.ip = None
-        self.stop_thread()
 
     def stop_thread(self):
         if self.thread and self.thread.is_alive():
@@ -403,6 +403,7 @@ class LoggingThread(threading.Thread):
                 elif self.serversock.fileno() == event[0]:
                     self.logger.info("Connection request received")
                     self.readsock, _ = self.serversock.accept()
+                    self.readsock.setblocking(0)
                     poll.unregister(self.serversock.fileno())
                     poll.register(self.readsock.fileno())
 



More information about the Openembedded-commits mailing list