[lldb-dev] The lit test driver gets killed because of SIGHUP

Jonas Devlieghere via lldb-dev lldb-dev at lists.llvm.org
Wed Dec 5 11:16:03 PST 2018


On Wed, Dec 5, 2018 at 9:45 AM Pavel Labath <pavel at labath.sk> wrote:

> On 05/12/2018 18:36, Jonas Devlieghere wrote:
> > I believe that posix doesn't make this guarantee, but that in reality
> > neither linux nor darwin recycles pids before they wrap around?
>
> Yes, linux tries pretty hard to not recycle pids, but this is hampered
> by the fact that the default pid limit  is 32k and that process and
> thread ids share the same namespace.
>
> So given that we have over 1k tests and each test can easily spawn over
> 32 tids/pids on a 32-core machine (parallel parsing of debug info), we
> can easily run through the whole pid pool in a single test run.
>

Yeah, that makes sense. What I meant is that I don't think it's what's
happening here as we're only running a few tests and I can see the pids are
moslty consecutive.

As I mentioned in the previous e-mail I wrote a Python module in C to check
who's sending the PID. It turns out it's the inferior, the one that's
receiving signal 17 (SIGSTOP) from the debugserver. This actually makes
sense as SIGSTOP is involved in process control. I'd have to double check,
but it would definitely make sense if this signal is sent to the whole
foreground process group, similar to ^C and it would explain why changing
that prevents this from happening.

I'm going to see what happens if I change the SIGSTOP into a SIGINT.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20181205/9167faa2/attachment.html>


More information about the lldb-dev mailing list