Change in vdsm[master]: Revert "supervdsm: Add zombiereaper to supervdsm"

piotr.kliczewski at gmail.com piotr.kliczewski at gmail.com
Thu Jan 15 13:21:06 UTC 2015


Piotr Kliczewski has uploaded a new change for review.

Change subject: Revert "supervdsm: Add zombiereaper to supervdsm"
......................................................................

Revert "supervdsm: Add zombiereaper to supervdsm"

Introduction of zombiereaper is causing communication failures between
vdsm and supervdsm. The change register signal handler which causes
multiprocessing to fail.

There was python bug opened to fix multiprocessing issue but it was not
backported to 2.6.

There is still issue on rhel7 so reventing on master as well.

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1168217
Change-Id: I90a76ad689938cc36fd9adbf73bd16e9a408cbb5
Signed-off-by: pkliczewski <piotr.kliczewski at gmail.com>
---
M vdsm/supervdsmServer
1 file changed, 14 insertions(+), 23 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/61/36961/1

diff --git a/vdsm/supervdsmServer b/vdsm/supervdsmServer
index 58e93da..7a984e4 100755
--- a/vdsm/supervdsmServer
+++ b/vdsm/supervdsmServer
@@ -31,7 +31,6 @@
 import signal
 import logging
 import logging.config
-import vdsm.infra.zombiereaper as zombiereaper
 
 import numaUtils
 
@@ -223,30 +222,23 @@
         proc = Process(target=child, args=(hisPipe,))
         proc.start()
 
-        try:
-            if not pipe.poll(RUN_AS_TIMEOUT):
-                try:
-                    os.kill(proc.pid, signal.SIGKILL)
-                except OSError as e:
-                    # If it didn't fail because process is already dead
-                    if e.errno != errno.ESRCH:
-                        raise
+        if not pipe.poll(RUN_AS_TIMEOUT):
+            try:
+                os.kill(proc.pid, signal.SIGKILL)
+            except OSError as e:
+                # If it didn't fail because process is already dead
+                if e.errno != errno.ESRCH:
+                    raise
 
-                raise Timeout()
+            raise Timeout()
 
-            res, err = pipe.recv()
-            pipe.send("Bye")
-            proc.terminate()
+        res, err = pipe.recv()
+        pipe.send("Bye")
+        proc.terminate()
+        if err is not None:
+            raise err
 
-            if err is not None:
-                raise err
-
-            return res
-
-        finally:
-            # Add to zombiereaper if process has not been waited upon
-            if proc.exitcode is None:
-                zombiereaper.autoReapPID(proc.pid)
+        return res
 
     @logDecorator
     def validateAccess(self, user, groups, *args, **kwargs):
@@ -402,7 +394,6 @@
 
 def main(sockfile, pidfile=None):
     log = logging.getLogger("SuperVdsm.Server")
-    zombiereaper.registerSignalHandler()
     if not config.getboolean('vars', 'core_dump_enable'):
         resource.setrlimit(resource.RLIMIT_CORE, (0, 0))
 


-- 
To view, visit http://gerrit.ovirt.org/36961
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I90a76ad689938cc36fd9adbf73bd16e9a408cbb5
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Piotr Kliczewski <piotr.kliczewski at gmail.com>


More information about the vdsm-patches mailing list