Change in vdsm[master]: supervdsm: Add zombiereaper to supervdsm
dkuznets at redhat.com
dkuznets at redhat.com
Thu Aug 14 11:42:23 UTC 2014
Dima Kuznetsov has posted comments on this change.
Change subject: supervdsm: Add zombiereaper to supervdsm
......................................................................
Patch Set 10:
(1 comment)
http://gerrit.ovirt.org/#/c/28915/10/vdsm/supervdsmServer
File vdsm/supervdsmServer:
Line 244: # If it didn't fail because process is already dead
Line 245: if e.errno != errno.ESRCH:
Line 246: raise
Line 247:
Line 248: raise Timeout()
> I thought that our problem is actually here - we raise Timeout without call
Actually, terminate() does not wait on child unless child has already returned:
def terminate(self):
if self.returncode is None:
try:
os.kill(self.pid, signal.SIGTERM)
except OSError, e:
if self.wait(timeout=0.1) is None:
raise
So when doing:
pipe.send("Bye")
proc.terminate()
chances are (unless the scheduling is very favorable) child won't get collected as it waits for the 'Bye'. However, you're correct, that if we get a timeout on the pipe, we'll get a zombie.
Line 249:
Line 250: try:
Line 251: res, err = pipe.recv()
Line 252: pipe.send("Bye")
--
To view, visit http://gerrit.ovirt.org/28915
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I5333caf7a1162c5d783f556bb9204fb74d1ab469
Gerrit-PatchSet: 10
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Dima Kuznetsov <dkuznets at redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken at redhat.com>
Gerrit-Reviewer: Dima Kuznetsov <dkuznets at redhat.com>
Gerrit-Reviewer: Yaniv Bronhaim <ybronhei at redhat.com>
Gerrit-Reviewer: automation at ovirt.org
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
More information about the vdsm-patches
mailing list