<div dir="ltr">> <span style="font-size:12.8000001907349px">That is horrifying. This cannot possibly be the intended behavior.</span><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">Sorry, I got a bit too dramatic here.</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">We will try to fix this up in lldb-server but hopefully it can be addressed at the OS level, too. I think this would be a very good improvement for the OS X community.</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 1, 2015 at 3:57 PM, Chaoren Lin <span dir="ltr"><<a href="mailto:chaorenl@google.com" target="_blank">chaorenl@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Since these are all GdbRemote tests, the regular process of iterating over targets/process in self.dbg and killing them is ineffective. I think we'll need to add a tear down step in gdbremote_testcase.py to cleanup using raw gdb packets to debugserver.<div><br></div><div><span class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.8000001907349px">all processes get re-parented to launchd and they <b>remain zombies there</b>.</span></blockquote><div><br></div></span><div>That is horrifying. This cannot possibly be the intended behavior.</div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 1, 2015 at 11:24 AM, Greg Clayton <span dir="ltr"><<a href="mailto:gclayton@apple.com" target="_blank">gclayton@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Someone isn't reaping their processes. Since you have figured out which tests do this, it shouldn't be too hard to track down. After the python process goes away, all processes get re-parented to launchd and they remain zombies there. Some GDB remote tests actually launch their own process and then they attach to it using the debugserver. In this case, on MacOSX, we still need to reap the process, even though "debugserver" or "lldb-server" also needs to reap it if they don't detach... So on MacOSX:<br>
<br>
If you:<br>
- python: launch "a.out" from python<br>
- debugserver: attach to it and debug it and kill<br>
- debugserver: needs to reap "a.out"<br>
- python: needs to reap "a.out"<br>
<br>
Not sure if the python needing to reap "a.out" also happens on other unix variants or if this is just Mach/BSD specific? Or just Darwin specific.<br>
<div><div><br>
<br>
> On Mar 31, 2015, at 3:25 PM, Chaoren Lin <<a href="mailto:chaorenl@google.com" target="_blank">chaorenl@google.com</a>> wrote:<br>
><br>
> Hi Greg,<br>
><br>
> The following tests leave behind zombie a.out processes on OS X after finishing:<br>
>       • TestGdbRemoteAbort.py<br>
>       • TestGdbRemoteSegFault.py<br>
>       • TestGdbRemote_vCont.py<br>
>       • TestGdbRemoteSingleStep.py<br>
>       • TestLldbGdbServer.py<br>
> Since the parent is launchd, there is no way to remove them. Eventually our OS X buildbot runs into a zombie apocalypse, and must be rebooted.<br>
><br>
> This seems to be a bug in launchd, since it should be reaping the zombies.<br>
><br>
> Is there anything we can do about this?<br>
><br>
> Thanks,<br>
> Chaoren<br>
<br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>