[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Branch Version_2_7_0pre
From: |
Camm Maguire |
Subject: |
Re: Branch Version_2_7_0pre |
Date: |
Fri, 22 Dec 2023 16:17:18 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Greetings, and thanks again!
vfork: from your trace, macosx seems to be calling malloc before exec
in the child, and this is a no no for vfork. signal handling is
irrelevant. I will investigate posix_spawn and let you know.
I take it readline and gprof issues are clear.
I've committed a fix which will hopefully get you beyond the libc
issue. Please keep me informed.
Take care,
"Kirill A. Korinsky" <kirill@korins.ky> writes:
> On 22. Dec 2023, at 17:19, Camm Maguire <camm@maguirefamily.org> wrote:
>
> On 3), after reading up on vfork, and examining your logs, it is indeed
> deprecated. This has been in use in 2.6 for many years -- have you been
> applying a patch there as well?
>
> This patch was introduced by me at MacPorts when I upgraded GCL from 2.6.12
> to 2.6.14. Both 2.6.13 and 2.6.14 doesn't work without this patch.
>
> If I recall right I've used git bisect to find when it was broken to start my
> investigation to figure out this changes.
>
> And the GCL code in question here is (o/unixsys.c):
>
> if (!(pid=pvfork())) {
> errno=0;
> execvp(*p1,(void *)p1);
> _exit(128|(errno&0x7f));
> }
>
> I'm guessing macosx is mallocing the environment. Or perhaps it is the
> profile timer blocking. You might want to try replacing pvfork above
> with vfork. If this works it is a simple fix confining the signal
> handling to the parent.
>
> I've applied the patch:
>
> - if (!(pid=pvfork())) {
> + if (!(pid=vfork())) {
> errno=0;
> execvp(*p1,(void *)p1);
> _exit(128|(errno&0x7f));
>
> and it crashed as before with stack trace (I've disabled GCL's signals to get
> it):
>
> Termination Reason: Namespace SIGNAL, Code 11 Segmentation fault: 11
> Terminating Process: exc handler [93250]
>
> VM Region Info: 0x28 is not in any region. Bytes before following region:
> 140737488199640
> REGION TYPE START - END [ VSIZE] PRT/MAX
> SHRMOD REGION DETAIL
> UNUSED SPACE AT START
> --->
> VM_ALLOCATE 7ffffffda000-7ffffffdb000 [ 4K] r-x/r-x
> SM=ALI
>
> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
> 0 libsystem_malloc.dylib 0x7ff817d3772c _malloc_fork_prepare + 80
> 1 libSystem.B.dylib 0x7ff822d06759 libSystem_atfork_prepare
> + 55
> 2 libsystem_c.dylib 0x7ff817e1b8a8 vfork + 27
>
> On 5) if you could please do the following at the stopped part of the
> build:
>
> cd unixport
> ./saved_pre_gcl
> (in-package :si)
> (trace dlopen dlsym)
> (mdlsym "memcmp")
>
> Sure,
>
>>(in-package :si)
>
> #<"SYSTEM" package>
>
> SYSTEM>(trace dlopen dlsym)
>
> (DLOPEN DLSYM)
>
> SYSTEM>(mdlsym "memcmp")
>
> 1> (DLSYM 0 "memcmp")
> <1 (DLSYM 140703530381538)
> |libsystem_platform|:|memcmp|
>
> SYSTEM>
>
> On 4), as I had indicated, the current bootstrap process is needlessly
> slow and is there just to check all modes of operation. saved_pre_gcl
> operates from evaluated lisp source, saved_gcl0 from compiled at safety
> 3. saved_gcl is fully optimized. Until we address this at final
> release, may I suggest keeping a build around, and when testing a
> change, do
>
> cd unixport
> ./saved_gcl
>
> (time (load "boot.lisp"))
>
> make saved_gcl
>
> For me this takes 240 seconds.
>
> Let's back to it when we fix building.
--
Camm Maguire camm@maguirefamily.org
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah
- Re: Branch Version_2_7_0pre, (continued)
- Re: Branch Version_2_7_0pre, Kirill A. Korinsky, 2023/12/21
- Re: Branch Version_2_7_0pre, Kirill A. Korinsky, 2023/12/21
- Re: Branch Version_2_7_0pre, Kirill A. Korinsky, 2023/12/21
- Re: Branch Version_2_7_0pre, Camm Maguire, 2023/12/21
- Re: Branch Version_2_7_0pre, Kirill A. Korinsky, 2023/12/21
- Re: Branch Version_2_7_0pre, Camm Maguire, 2023/12/21
- Re: Branch Version_2_7_0pre, Camm Maguire, 2023/12/21
- Re: Branch Version_2_7_0pre, Kirill A. Korinsky, 2023/12/22
- Re: Branch Version_2_7_0pre, Camm Maguire, 2023/12/22
- Re: Branch Version_2_7_0pre, Kirill A. Korinsky, 2023/12/22
- Re: Branch Version_2_7_0pre,
Camm Maguire <=
- Re: Branch Version_2_7_0pre, Kirill A. Korinsky, 2023/12/22
- Re: Branch Version_2_7_0pre, Kirill A. Korinsky, 2023/12/22
- Re: Branch Version_2_7_0pre, Kirill A. Korinsky, 2023/12/22
- Re: Branch Version_2_7_0pre, Camm Maguire, 2023/12/23
- Re: Branch Version_2_7_0pre, Kirill A. Korinsky, 2023/12/23
- Re: Branch Version_2_7_0pre, Camm Maguire, 2023/12/24
- Re: Branch Version_2_7_0pre, Kirill A. Korinsky, 2023/12/24
- posix_spawn, Camm Maguire, 2023/12/22
- Re: posix_spawn, Kirill A. Korinsky, 2023/12/22
- Re: posix_spawn, Camm Maguire, 2023/12/22