[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.
- bug#30364: 26.0.91; thread crash on macos, (continued)
- bug#30364: 26.0.91; thread crash on macos, Eli Zaretskii, 2018/02/28
- bug#30364: 26.0.91; thread crash on macos, Aaron Jensen, 2018/02/28
- bug#30364: 26.0.91; thread crash on macos, Eli Zaretskii, 2018/02/28
- bug#30364: 26.0.91; thread crash on macos, Aaron Jensen, 2018/02/28
- bug#30364: 26.0.91; thread crash on macos, Aaron Jensen, 2018/02/28
- bug#30364: 26.0.91; thread crash on macos, Paul Eggert, 2018/02/28
- bug#30364: 26.0.91; thread crash on macos, Eli Zaretskii, 2018/02/28
- bug#30364: 26.0.91; thread crash on macos, Paul Eggert, 2018/02/28
- bug#30364: 26.0.91; thread crash on macos, Paul Eggert, 2018/02/28
- bug#30364: 26.0.91; thread crash on macos, Eli Zaretskii, 2018/02/18
- bug#30364: 26.0.91; thread crash on macos,
Eli Zaretskii <=
- bug#30364: 26.0.91; thread crash on macos, Alan Third, 2018/02/18
- bug#30364: 26.0.91; thread crash on macos, Aaron Jensen, 2018/02/18
- bug#30364: 26.0.91; thread crash on macos, Alan Third, 2018/02/17