[cfe-dev] Clang 'locks up' when compiling optimized

Brian Cain via cfe-dev cfe-dev at lists.llvm.org
Wed Jun 28 08:29:34 PDT 2017


Hmm, yes, I didn't notice that in the backtrace but you're right.

I don't think "assume infinite resources" is the bug though.  malloc()'s
not signal-safe on linux, so it probably isn't on MacOS either.  We
shouldn't be calling malloc() from the signal handler.

As a practical matter, maybe this is a feature that you could disable
either at build-time or runtime?

On Wed, Jun 28, 2017 at 10:25 AM, David Barto <barto at cambridgesemantics.com>
wrote:

> Looks like the bug is that the crash handler is attempting to allocate
> memory, and the reason it was crashing was that it ran out of memory.
>
> Sounds like a real clang issue to deal with as the compiler should not
> assume infinite resources.
>
> David
>
> On Jun 28, 2017, at 8:18 AM, Brian Cain <brian.cain at gmail.com> wrote:
>
> On Wed, Jun 28, 2017 at 10:10 AM, David Barto <
> barto at cambridgesemantics.com> wrote:
>
>> This is part of an in-memory system (no swap space configured) so RSS
>> would match the AS size for this use case. From what I read about RSS and
>> AS for MacOS and Linux.
>>
>> Why did it lock up, why not throw the exception and exit?
>>
>>
>>
> Dunno, it seems like the OS is driving now and it's not immediately clear
> to me why that system call wouldn't yield either success or failure.  But
> clang is asking for a resource (more memory), and I've seen those stall
> before.  My experience with linux (may or may not be applicable) leads me
> to believe that the system is perhaps resource-constrained and your task is
> pending while it tries to free up those resources.
>
> RLIMIT_AS and RLIMIT_RSS are distinct on linux, I guess I am a little
> surprised to see that they're not on MacOS.
>
> In any case, the most likely culprit is your setrlimit.  If I were you I
> would take clang out of the loop entirely and write a test program that
> does allocations just like the ones clang does (various sized mallocs, you
> could try profiling to get a ballpark histogram).  I would be surprised if
> you don't see the same behavior.
>
> -Brian
>
>
> David Barto
> barto at cambridgesemantics.com
>
> Sometimes, my best code does nothing. Most of the rest of it has bugs.
>
>
>
>


-- 
-Brian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170628/3495cd80/attachment.html>


More information about the cfe-dev mailing list