|
Message-ID: <CANHaCVJ6szZ=GXvOigkBSOxNU4OhRa4EHKtOAJ1Gvmt86CNEGw@mail.gmail.com>
Date: Sun, 19 Jun 2016 01:20:02 +0000
From: "nathan@...han7.eu" <nathan@...han7.eu>
To: musl@...ts.openwall.com
Subject: Re: abort() fails to terminate PID 1 process
It appears that raise(3) only returns after signal handling, and hence the
infinite loop should only be reached if we're hitting this failure case.
Perhaps we should replace it with asm("ud2") and the equivalent on non-x86
arches, causing a SIGILL, which will definitely abort the process.
On Sat, Jun 18, 2016 at 4:32 PM Karl Böhlmark <karl.bohlmark@...il.com>
wrote:
> Hi!
>
> After running alpine-linux based docker containers for a while we noticed
> some problematic behaviour when one of our services had a memory leak
> causing the process to abort.
>
> Instead of getting abnormal process termination we were seeing the process
> hanging at 100% cpu.
>
> A minimal reproduction of this issue is to run
>
> #include <stdlib.h>
> int main ()
> {
> abort();
> }
>
> with "unshare --fork --pid" so that it runs as PID 1 in it's own PID
> namespace.
>
> Would it be reasonable to add a fallback strategy in abort() for
> terminating processes when the signals don't have any effect?
>
> Karl
>
Content of type "text/html" skipped
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.