All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] prserv: Fix exit race issues
@ 2014-03-28 12:10 Richard Purdie
  0 siblings, 0 replies; only message in thread
From: Richard Purdie @ 2014-03-28 12:10 UTC (permalink / raw)
  To: bitbake-devel

We shouldn't immediately remove the pid file when stopping the server, if we do, this
causes a traceback within the server itself which can then hang. Fix this by removing
the stale pid file as the last thing we do.

Also:

* don't printing a new "waiting" line every 0.5 seconds.
* make the loop more granular since the user can 'feel' the 0.5 seconds

[YOCTO #5984]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
diff --git a/bitbake/lib/prserv/serv.py b/bitbake/lib/prserv/serv.py
index e4c1c2a..1e170ce 100644
--- a/bitbake/lib/prserv/serv.py
+++ b/bitbake/lib/prserv/serv.py
@@ -275,17 +275,13 @@ def stop_daemon(host, port):
         PRServerConnection(host, port).terminate()
     except:
         logger.critical("Stop PRService %s:%d failed" % (host,port))
-    time.sleep(0.5)
 
     try:
         if pid:
-            if os.path.exists(pidfile):
-                os.remove(pidfile)
-
             wait_timeout = 0
-            while is_running(pid) and wait_timeout < 10:
-                print("Waiting for pr-server to exit.")
-                time.sleep(0.5)
+            print("Waiting for pr-server to exit.")
+            while is_running(pid) and wait_timeout < 50:
+                time.sleep(0.1)
                 wait_timeout += 1
 
             if is_running(pid):
@@ -293,6 +289,9 @@ def stop_daemon(host, port):
                 os.kill(pid,signal.SIGTERM)
                 time.sleep(0.1)
 
+            if os.path.exists(pidfile):
+                os.remove(pidfile)
+
     except OSError as e:
         err = str(e)
         if err.find("No such process") <= 0:




^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2014-03-28 12:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-28 12:10 [PATCH] prserv: Fix exit race issues Richard Purdie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.