Re: macOS status
"Kirill A. Korinsky" <[email protected]>
| Newsgroups | gmane.lisp.gcl.devel |
|---|---|
| Message-ID | <[email protected]> |
I really doubt that it makes something useful.
I've attached to process by debug and it says:
> (lldb) bt
> ^C* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
> * frame #0: 0x0000000000000000
> frame #1: 0x00007ff803977ff1 libsystem_c.dylib`__smakebuf + 384
> frame #2: 0x00007ff803985b52 libsystem_c.dylib`__swsetup + 148
> frame #3: 0x00007ff803963b92 libsystem_c.dylib`__v2printf + 86
> frame #4: 0x00007ff803975912 libsystem_c.dylib`vfprintf_l + 54
> frame #5: 0x00007ff803991fd3 libsystem_c.dylib`printf + 174
> frame #6: 0x000000010000dd1d raw_pre_gcl`error + 253
> frame #7: 0x00000001000b443c raw_pre_gcl`my_malloc + 44
> frame #8: 0x00007ff803909149 libsystem_malloc.dylib`_malloc_zone_malloc_instrumented_or_legacy + 88
> frame #9: 0x00007ff803977ff1 libsystem_c.dylib`__smakebuf + 384
> frame #10: 0x00007ff803985b52 libsystem_c.dylib`__swsetup + 148
> frame #11: 0x00007ff803963b92 libsystem_c.dylib`__v2printf + 86
> frame #12: 0x00007ff803975912 libsystem_c.dylib`vfprintf_l + 54
> frame #13: 0x00007ff803991fd3 libsystem_c.dylib`printf + 174
> frame #14: 0x000000010000dd1d raw_pre_gcl`error + 253
> frame #15: 0x00000001000b443c raw_pre_gcl`my_malloc + 44
> frame #16: 0x00007ff803909149 libsystem_malloc.dylib`_malloc_zone_malloc_instrumented_or_legacy + 88
> frame #17: 0x00007ff803977ff1 libsystem_c.dylib`__smakebuf + 384
> frame #18: 0x00007ff803985b52 libsystem_c.dylib`__swsetup + 148
> frame #19: 0x00007ff803963b92 libsystem_c.dylib`__v2printf + 86
> frame #20: 0x00007ff803975912 libsystem_c.dylib`vfprintf_l + 54
> frame #21: 0x00007ff803991fd3 libsystem_c.dylib`printf + 174
> frame #22: 0x000000010000dd1d raw_pre_gcl`error + 253
> frame #23: 0x00000001000b443c raw_pre_gcl`my_malloc + 44
> frame #24: 0x00007ff803909149 libsystem_malloc.dylib`_malloc_zone_malloc_instrumented_or_legacy + 88
>
anyway, with some with some debuger using I was able to get the first stacktrace:
> (lldb) bt
> * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
> * frame #0: 0x000000010000d790 raw_pre_gcl`error
> frame #1: 0x00000001000bf89c raw_pre_gcl`my_malloc + 44
> frame #2: 0x00007ff817d43abb libsystem_malloc.dylib`_malloc_zone_malloc + 125
> frame #3: 0x00007ff817decc74 libsystem_c.dylib`__parsefloat_buf + 195
> frame #4: 0x00007ff817de3cc7 libsystem_c.dylib`__svfscanf_l + 2842
> frame #5: 0x00007ff817de3185 libsystem_c.dylib`vsscanf_l + 221
> frame #6: 0x00007ff817de9d83 libsystem_c.dylib`sscanf + 160
> frame #7: 0x000000010000ba04 raw_pre_gcl`update_real_maxpage + 436
> frame #8: 0x00000001000b6fad raw_pre_gcl`gcl_init_alloc + 589
> frame #9: 0x00000001000bf8ad raw_pre_gcl`my_malloc + 61
> frame #10: 0x00007ff817d43abb libsystem_malloc.dylib`_malloc_zone_malloc + 125
> frame #11: 0x00007ff817decc74 libsystem_c.dylib`__parsefloat_buf + 195
> frame #12: 0x00007ff817de3cc7 libsystem_c.dylib`__svfscanf_l + 2842
> frame #13: 0x00007ff817de3185 libsystem_c.dylib`vsscanf_l + 221
> frame #14: 0x00007ff817de9d83 libsystem_c.dylib`sscanf + 160
> frame #15: 0x000000010000ba04 raw_pre_gcl`update_real_maxpage + 436
> frame #16: 0x00000001000b6fad raw_pre_gcl`gcl_init_alloc + 589
> frame #17: 0x000000010000cb90 raw_pre_gcl`main + 128
> frame #18: 0x000000010276152e dyld`start + 462
and if I build gcl with -g it allows to see the crash point:
> * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
> frame #0: 0x000000010000dbbc raw_pre_gcl`error(s="Bad malloc") at main.c:687:24
> 684 void
> 685 error(char *s)
> 686 {
> -> 687 if (catch_fatal>0 && interrupt_enable )
> 688 {catch_fatal = -1;
> 689 #ifdef SGC
> 690 if (sgc_enabled)
> Target 0: (raw_pre_gcl) stopped.
but any attempt to use bt leads to 100% CPU usage by LLDB.
All of this indicates that something quite bad with memory when this ENV is enabled.
--
wbr, Kirill
> On 24. Dec 2023, at 18:25, Camm Maguire <[email protected]> wrote:
>
> Greetings! Might want to try figures between 0.1 and 1.0 to see where
> it breaks. At least we know you are emulating sbrk now as in the past.
>
> This error is in reference to mac specific code contributed by a
> knowledgeable user quite some time ago in unexmacosx.c:
>
> void init_darwin_zone_compat () {
>
> extern unsigned malloc_num_zones;
> extern malloc_zone_t **malloc_zones;
> unsigned nmzc;
> malloc_zone_t *mzc[10];
> unsigned i;
>
> nmzc=malloc_num_zones;
> assert(nmzc<=sizeof(mzc)/sizeof(*mzc));
> memcpy(mzc,malloc_zones,nmzc*sizeof(*mzc));
>
> gcl_zone=&gcl_zone_body;
>
> gcl_zone->size = (void *) stub_size;
> gcl_zone->malloc = (void *) stub_malloc;
> gcl_zone->calloc = (void *) stub_calloc;
> gcl_zone->valloc = (void *) stub_valloc;
> gcl_zone->realloc = (void *) stub_realloc;
> gcl_zone->free = (void *) stub_free;
> gcl_zone->destroy = (void *) stub_free;
> gcl_zone->batch_malloc = (void *) stub_malloc;
> gcl_zone->batch_free = (void *) stub_free;
>
> #ifdef HAVE_MALLOC_ZONE_MEMALIGN
> gcl_zone->free_definite_size = (void *) stub_free;
> gcl_zone->memalign = (void *) stub_memalign;
> #endif
>
> for (i=0;i<nmzc;i++)
> malloc_zone_unregister(mzc[i]);
>
> /* Make our zone the default zone. */
> malloc_zone_register (gcl_zone);
> for (i=0;i<nmzc;i++)
> malloc_zone_register (mzc[i]);
>
> }
>
> Pretty sure you are calling this function just once unless
> CAN_UNRANDOMIZE_SBRK is defined in your config.h. This pertains to my
> previous comments that your configure output appeared to be able to
> unrandomize sbrk even though it wasn't going to use it. Is this defined
> in h/gclincl.h?
>
> Take care,
>
> "Kirill A. Korinsky" <[email protected]> writes:
>
>> Hello,
>>
>> On 24. Dec 2023, at 15:34, Camm Maguire <[email protected]> wrote:
>>
>> Please export the environment variable GCL_MEM_MULTIPLE=0.1 or similar
>> to limit gcl to 1/10 of system memory. There are also ways to do this
>> at the lisp level in terms of absolute instead of percentage figures.
>>
>> build stuck with output:
>>
>> ar x libpre_gcl.a $(ar t libpre_gcl.a |grep ^gcl_)
>> /Users/catap/src/gcl/gcl/unixport/raw_pre_gcl /Users/catap/src/gcl/gcl/unixport/ -libdir /Users/catap/src/gcl/gcl/ < foo
>> raw_pre_gcl(82333,0x105781600) malloc: Attempted to register zone more than once: 0x1007272c8
>>
>> meanwhile raw_pre_gcl consumes 100% CPU core.
>
> --
> Camm Maguire [email protected]
> ==========================================================================
> "The earth is but one country, and mankind its citizens." -- Baha'u'llah
signature.asc
(application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE3/KLNtcfWfLw7JxqmNjZhndZIm4FAmWIecwACgkQmNjZhndZ Im4bjg//b/WbHEiM/a/UcsSh9euOsOcE2oLNzYxDJFckcNG7nccC2FCv+Bt0b8gG 4hlmviBEkpE6SHOTSUCG5I2TkvX/qvJbdKvw3owPEYhqj+vX61vNF149CVIUYrQs fovp8Y/FvCMjDZnJLnem28mDHUmUJgQjZgpneADbiOD66Cdz12BJcPXzPPtUnjql Zs/Bas2MWPXwusUZSxS8bID1K9s6p/nugN3gMr4aP5FmNrJYb2hnu2om8dFhIyPy A4zzXVEFVRstvN9pyzz8rCNqNlYqlD9YRMwWblHSfKLSiyv1c4P5IF3EuDWmqqUb RQ/56dwrZme80Ku+PzkQ3z44K85ZdWxX8QC/Hrq7lYD1IT+2FY0jH5Fd6A0i54e4 TAUbLF3PW4CjbESae7BMw2SQDHL4E9y4T3Rw5sSoGYCT/87rBHpJHlyGKVcG+VDP /kpfNmxAsFibErZJgiYcvfc+dzcro92paS1sV0JtvXnQJEJFpopDllQmEAAYU4Ta gTYLVnklgWWx1uGerW8ZtSg+Gbxq+Di2ZIAyuXG/dODAmp5vH+L0jhmWY6kdwWEb KwfPM2slotsf3u7w/BFr4/EGyocVhRtVBCf+WaWnM7TElO9FqsPGVjbzJJZQ0Wuh vgMLqhMN4PVPp49ZLV+ugmFKhkEe1sSD6RTsDcPGu4xva2mKNp4= =UrAe -----END PGP SIGNATURE-----