bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#30364: 26.0.91; thread crash on macos


From: Eli Zaretskii
Subject: bug#30364: 26.0.91; thread crash on macos
Date: Sun, 18 Feb 2018 21:04:58 +0200

> From: Aaron Jensen <aaronjensen@gmail.com>
> Date: Sun, 18 Feb 2018 10:38:46 -0800
> Cc: Noam Postavsky <npostavs@gmail.com>, 30364@debbugs.gnu.org, 
>       Noam Postavsky <npostavs@users.sourceforge.net>, Alan Third 
> <alan@idiocy.org>
> 
> On Sun, Feb 18, 2018 at 10:25 AM, Eli Zaretskii <eliz@gnu.org> wrote:
> > Ah, okay.  I see I've misinterpreted the reason for the crash: the
> > thread that crashes is the one that does GC.  And since GC is deeply
> > recursive, and you have 120 - 26 + 1 = 95 other threads all waiting
> > for the global lock, the first hypothesis I have is that the thread
> > which GCs hits stack overflow, because the other 95 threads use up (or
> > reserve) too much stack space.
> 
> FWIW, this happens even if I only have 1 thread active. The benchmark
> 100 is just for me to more easily repro it.
> 
> Here's a trace from doing one thread at a time:
> 
> https://gist.github.com/aaronjensen/cb91f0c7f63a28335a9cea3c88037d59

What do you mean by "one thread at a time"?  How was your program
changed for this run?

> > Can you or someone else who knows about Darwin figure out what are the
> > limitations on stack space in multithreaded programs on macOS?
> 
> I can probably look into it at some point if you think it is still
> relevant given above.

It crashes in a deeply recursive GC, so it might be relevant.

Can you figure out which object is being marked and causes the
exception?

> (lldb) frame select 2449
> frame #2449: 0x000000010029a4b7 emacs`Ffuncall + 759
> emacs`Ffuncall:
>     0x10029a4b7 <+759>: movq   %rax, -0x38(%rbp)
>     0x10029a4bb <+763>: jmp    0x10029a528               ; <+872>
>     0x10029a4c0 <+768>: movl   $0xc1, %edi
>     0x10029a4c5 <+773>: movq   -0x28(%rbp), %rax
> (lldb) p args
> error: use of undeclared identifier 'args'
> 
> I'm not seeing sources, so I probably need to figure out how to load symbols.

Yes, it looks like you don't have enough of the debug info in the
executable.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]