dvarrazzo / py-setproctitle

A Python module to customize the process title
Other
498 stars 65 forks source link

setproctitle crashes after a fork on MacOS #113

Closed Aegdesil closed 2 years ago

Aegdesil commented 2 years ago

Using this code, setproctitle crashes after a forked process is started in a thread on Mac OS.

import multiprocessing as mp
from threading import Thread

from setproctitle import setproctitle

def foo():
    setproctitle("title in child")

def thread():
    p = mp.Process(target=foo)
    p.start()
    p.join()
    print(p.exitcode)  # returns -6 on failure 0 on success

if __name__ == "__main__":
    # Setting to spawn solves the problem
    mp.set_start_method("fork")
    # Setting a title in the parent before the process starts also solves the problem
    # setproctitle("title in parent")
    t = Thread(target=thread)
    t.start()
    t.join()

I get these logs:

objc[75525]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called.
objc[75525]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.
-6

Python version: 3.7.8 Setproctitle version: 1.3.1 Mac OS version: 12.5

Maybe #111 is related ?

Aegdesil commented 2 years ago

After some tests, the issue was introduced in version 1.3.0 (version 1.2.3 works).

dvarrazzo commented 2 years ago

Thank you for the report. Yes, it seems related to #111.

Would you be able to convert your repro into a test suite test, for instance as done in https://github.com/dvarrazzo/py-setproctitle/commit/e3b7e0d20e6b57b4491572108cf022abe7815293

@gershnik is the author of the feature and has fixed #111 too. Maybe he has idea about how to fix this failure mode too?

Thank you!

gershnik commented 2 years ago

Despite appearances this issue isn't directly related to #111. It is a general issue common to all languages on macOS. See for example this SO question. The best explanation I saw can be found here.

Does the official workaround: setting environment variable OBJC_DISABLE_INITIALIZE_FORK_SAFETY=yes solve the issue?

Note however that:

The fundamental problem -- that forking is at odds with multithreading -- is still there, even before High Sierra, and even on Linux. The workaround merely disables a safety check, and users are just lucky that they don't run into bad situations most of the time.

Aegdesil commented 2 years ago

Yes, I feel like setting this environment variable is just a way to hide the problem, not a real fix. This error exists because there is a dangerous behavior that could cause other problems. Also using this would hide all the errors related to forking, not just the ones from your library.

The fact that this behavior was introduced recently makes me feel like there could be a workaround, although I don't know enough about setproctitle and these low level APIs to really provide help.

I found an article discussing some workarounds but I don't know if it's relevant.

gershnik commented 2 years ago

Well the usable advice from that article basically says "use spawn instead of fork or initialize everything before fork" which is exactly the workarounds you noticed in the comments of the repro code (e.g. calling setproctitle in the parent will initialize things).

The issue is that only the author of the final top level python code can (maybe) say whether the combination of threading and forking is safe in this particular case. In your repro code it is, but it is easy to inadvertently change this by adding some innocuous code or calling into some module.

gershnik commented 2 years ago

Calling getproctitle before fork also initializes everything btw. and is probably the best workaround if calling setproctitle is undesirable.

Aegdesil commented 2 years ago

Wouldn't it be possible to initialize everything on import rather than having to call getproctitle ?

I will look into switching to spawn but I think this would break many things, for now calling getproctitle works for me.

gershnik commented 2 years ago

Good point. Also note this from the module README

You should import and use the module (even just calling getproctitle()) pretty early in your program lifetime: code writing env vars may interfere with the module initialisation.

So there is already a need for doing so for other reasons. @dvarrazzo should the module just call getproctitle itself in __init__.py? Now that __init__.py exists I don't see why not.

dvarrazzo commented 2 years ago

@gershnik it is probably a reasonable workaround, yes.

Trying to reproduce the issue and then fix it the way suggested.

dvarrazzo commented 2 years ago

So, early import caused side effects about which people moaned about in the past (see #45, #46 for instance). So it was a precise choice to make sure they wouldn't happen anymore - see 485a6a530ef1e5814d8981f03310620feb0b9d56

However the side effects only manifest on Linux, so I think it's reasonable to restore early init on macOS only.

I'm preparing a MR...

dvarrazzo commented 2 years ago

@Aegdesil, @gershnik, do you want to check if #114 fixes the problem? Is this an acceptable fix?

Cheers!

gershnik commented 2 years ago

Looks great to me! Thank you!

Aegdesil commented 2 years ago

What is the procedure to install from source ? I tried to run pip install -e path/to/py-setproctitle which seemed to work (version 1.3.2.dev0 was shown as installed, and pip freeze shows the package), but when trying to import setproctitle I get ModuleNotFoundError: No module named 'setproctitle'

I trust you for the fix anyway.

dvarrazzo commented 2 years ago

I tried to run pip install -e path/to/py-setproctitle which seemed to work (version 1.3.2.dev0 was shown as installed, and pip freeze shows the package), but when trying to import setproctitle I get ModuleNotFoundError: No module named 'setproctitle'

Looks like -e got broken when we made the package and moved the sources into pkg/setproctitle (ff58a503875d3f19ba2014b2f7bb053ea908d412). python setup.py install should work.

Aegdesil commented 2 years ago

Thank you, I can confirm that this fixes my issue.

dvarrazzo commented 2 years ago

setproctitle 1.3.2 released. Have fun!

glic3rinu commented 2 years ago

Hi, I believe this issue is still happening on 1.3.2, although you need to do something more on the forked process to trigger the crash. I've found that doing a call with requests library consistently triggers the segfault on the child.

This particular snippet works on 1.3.1, but made it crash too with other code (e.g. using requests_kerberos) ...

import os
import sys
import requests

import setproctitle  # this import makes the child crash on 1.3.2
print(setproctitle.__version__)

pid = os.fork()
if not pid:
    print('HTTP GET goole.com: ')
    print(requests.get('https://google.com'))
    sys.exit()
os.wait()
dvarrazzo commented 2 years ago

@glic3rinu I have added your test in the CI but I don't see it failing there: https://github.com/dvarrazzo/py-setproctitle/commit/8d48f94e023a3d4900c0726fb3a8ef454ebb90a3 Run is here.

@gershnik are you able to advise about the issue, and in general about the stability of this feature?

gershnik commented 2 years ago

@dvarrazzo I am unable to reproduce this either in a clean environment or in the tests. Without more details it is impossible to say what it is and whether it is even caused by setproctitle.

@glic3rinu Can you provide more details about what you observe and your environment? Do you see the same error that opened this bug ("... may have been in progress in another thread when fork() ...") or just plain segfault? Which Python version, MacOS etc. are you using?

glic3rinu commented 2 years ago

Hey @gershnik @dvarrazzo thanks for looking into this. Posting the full error report from Mac OS with all the details of the crash:

Path:                  /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/Resources/Python.app/Contents/MacOS/Python
Identifier:            Python
Version:               3.10.7 (3.10.7)
Code Type:             X86-64 (Native)
Parent Process:        Python [84870]
Responsible:           Terminal [14512]
User ID:               502

Date/Time:             2022-10-13 16:30:57.070 +0100
OS Version:            macOS 11.7 (20G817)
Report Version:        12
Bridge OS Version:     6.6 (19P6067)
Anonymous UUID:        D4D40BAF-436D-FFE3-75C6-2988D917D955

Time Awake Since Boot: 26000 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.root.user-interactive-qos

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000110
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [84871]

VM Regions Near 0x110:
--> 
    __TEXT                      10f4e4000-10f4e8000    [   16K] r-x/r-x SM=COW  /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/Resources/Python.app/Contents/MacOS/Python

Application Specific Information:
dyld: in dlopen()
*** multi-threaded process forked ***
crashed on child side of fork pre-exec

Thread 0 Crashed:: Dispatch queue: com.apple.root.user-interactive-qos
0   libdispatch.dylib               0x00007fff20176b8b dispatch_apply_f + 775
1   com.apple.CoreFoundation        0x00007fff2050ce7c __104-[CFPrefsSearchListSource synchronouslySendDaemonMessage:andAgentMessage:andDirectMessage:replyHandler:]_block_invoke.81 + 97
2   com.apple.CoreFoundation        0x00007fff203bf04f CFPREFERENCES_IS_WAITING_FOR_SYSTEM_AND_USER_CFPREFSDS + 74
3   com.apple.CoreFoundation        0x00007fff203beeef -[CFPrefsSearchListSource synchronouslySendDaemonMessage:andAgentMessage:andDirectMessage:replyHandler:] + 181
4   com.apple.CoreFoundation        0x00007fff203bd995 -[CFPrefsSearchListSource alreadylocked_generationCountFromListOfSources:count:] + 220
5   com.apple.CoreFoundation        0x00007fff203bd6cf -[CFPrefsSearchListSource alreadylocked_getDictionary:] + 391
6   com.apple.CoreFoundation        0x00007fff203bd2d6 -[CFPrefsSearchListSource alreadylocked_copyValueForKey:] + 144
7   com.apple.CoreFoundation        0x00007fff203bd21f -[CFPrefsSource copyValueForKey:] + 47
8   com.apple.CoreFoundation        0x00007fff203bd1d1 __76-[_CFXPreferences copyAppValueForKey:identifier:container:configurationURL:]_block_invoke + 32
9   com.apple.CoreFoundation        0x00007fff203b5a0a __108-[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:]_block_invoke + 361
10  com.apple.CoreFoundation        0x00007fff2050d641 -[_CFXPreferences withSearchListForIdentifier:container:cloudConfigurationURL:perform:] + 372
11  com.apple.CoreFoundation        0x00007fff203b5485 -[_CFXPreferences copyAppValueForKey:identifier:container:configurationURL:] + 137
12  com.apple.CoreFoundation        0x00007fff203b53ba _CFPreferencesCopyAppValueWithContainerAndConfiguration + 101
13  com.apple.SystemConfiguration   0x00007fff20e5099b SCDynamicStoreCopyProxiesWithOptions + 155
14  _scproxy.cpython-310-darwin.so  0x000000011055b8cd get_proxy_settings + 32
15  org.python.python               0x000000010f5b1142 cfunction_vectorcall_NOARGS + 101
16  org.python.python               0x000000010f65e256 call_function + 172
17  org.python.python               0x000000010f6546d6 _PyEval_EvalFrameDefault + 21975
18  org.python.python               0x000000010f64ddde _PyEval_Vector + 368
19  org.python.python               0x000000010f65e256 call_function + 172
20  org.python.python               0x000000010f6546d6 _PyEval_EvalFrameDefault + 21975
21  org.python.python               0x000000010f64ddde _PyEval_Vector + 368
22  org.python.python               0x000000010f65e256 call_function + 172
23  org.python.python               0x000000010f6546d6 _PyEval_EvalFrameDefault + 21975
24  org.python.python               0x000000010f64ddde _PyEval_Vector + 368
25  org.python.python               0x000000010f65e256 call_function + 172
26  org.python.python               0x000000010f6547a4 _PyEval_EvalFrameDefault + 22181
27  org.python.python               0x000000010f64ddde _PyEval_Vector + 368
28  org.python.python               0x000000010f65e256 call_function + 172
29  org.python.python               0x000000010f6547a4 _PyEval_EvalFrameDefault + 22181
30  org.python.python               0x000000010f64ddde _PyEval_Vector + 368
31  org.python.python               0x000000010f65e256 call_function + 172
32  org.python.python               0x000000010f655636 _PyEval_EvalFrameDefault + 25911
33  org.python.python               0x000000010f64ddde _PyEval_Vector + 368
34  org.python.python               0x000000010f5651fe method_vectorcall + 160
35  org.python.python               0x000000010f562701 PyVectorcall_Call + 164
36  org.python.python               0x000000010f6500cd _PyEval_EvalFrameDefault + 4046
37  org.python.python               0x000000010f64ddde _PyEval_Vector + 368
38  org.python.python               0x000000010f562701 PyVectorcall_Call + 164
39  org.python.python               0x000000010f6500cd _PyEval_EvalFrameDefault + 4046
40  org.python.python               0x000000010f64ddde _PyEval_Vector + 368
41  org.python.python               0x000000010f65e256 call_function + 172
42  org.python.python               0x000000010f656bed _PyEval_EvalFrameDefault + 31470
43  org.python.python               0x000000010f64ddde _PyEval_Vector + 368
44  org.python.python               0x000000010f64dc5d PyEval_EvalCode + 112
45  org.python.python               0x000000010f6ac2ab run_eval_code_obj + 72
46  org.python.python               0x000000010f6ac231 run_mod + 96
47  org.python.python               0x000000010f6af461 PyRun_StringFlags + 120
48  org.python.python               0x000000010f6af3b1 PyRun_SimpleStringFlags + 69
49  org.python.python               0x000000010f6cbeb6 Py_RunMain + 410
50  org.python.python               0x000000010f6cd108 pymain_main + 35
51  org.python.python               0x000000010f6cd3d3 Py_BytesMain + 42
52  libdyld.dylib                   0x00007fff2032af3d start + 1

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x00000001128040c0  rbx: 0x0000000000000100  rcx: 0x0000000000000000  rdx: 0x0000000000000001
  rdi: 0x00007fff201764e4  rsi: 0x00007fff806033c0  rbp: 0x00007ffee0719260  rsp: 0x00007ffee07191d0
   r8: 0x00000001128040c0   r9: 0x0000000000000000  r10: 0x0000000112800140  r11: 0x0000000112800000
  r12: 0x00000001128040c0  r13: 0x0000000000000000  r14: 0x00000000100020ff  r15: 0x0000000112804080
  rip: 0x00007fff20176b8b  rfl: 0x0000000000010206  cr2: 0x0000000000000110

Logical CPU:     0
Error Code:      0x00000006 (no mapping for user data write)
Trap Number:     14

Thread 0 instruction stream:
  41 0c 0f 8e 67 01 00 00-48 89 48 18 4c 89 70 08  A...g...H.H.L.p.
  4c 89 60 10 48 85 db 48-0f 44 d8 49 89 c4 41 ff  L.`.H..H.D.I..A.
  cd 75 a3 eb 1e 48 89 75-d0 48 89 55 c8 e8 1c ab  .u...H.u.H.U....
  01 00 48 8d 3d 80 f9 ff-ff 48 8b 55 c8 48 8b 75  ..H.=....H.U.H.u
  d0 eb 9e 41 c7 47 28 00-00 00 00 48 c7 43 10 00  ...A.G(....H.C..
  00 00 00 48 87 5e 30 48-85 db 0f 84 d7 00 00 00  ...H.^0H........
 [48]89 43 10 4c 89 ff e8-35 04 00 00 0f 28 45 b0  H.C.L...5....(E. <==
  65 0f 29 04 25 a0 00 00-00 48 83 c4 68 5b 41 5c  e.).%....H..h[A\
  41 5d 41 5e 41 5f 5d c3-65 8b 04 25 20 00 00 00  A]A^A_].e..% ...
  c1 e8 08 25 ff 3f 00 00-0f 84 d8 fd ff ff 0f bc  ...%.?..........
  c0 ff c0 e9 b2 fd ff ff-89 c2 bf 01 00 00 00 49  ...............I
  39 d1 73 06 99 41 f7 f9-89 c7 4d 89 ce 4c 0f af  9.s..A....M..L..

Thread 0 last branch register state not available.

Binary Images:
       0x10f4e4000 -        0x10f4e7fff +org.python.python (3.10.7 - 3.10.7) <641FA8BB-47FD-3560-8DF5-1212D1AB6DB9> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/Resources/Python.app/Contents/MacOS/Python
       0x10f4f1000 -        0x10f7ccfff +org.python.python (3.10.7, [c] 2001-2021 Python Software Foundation. - 3.10.7) <40064D6E-3F11-3677-9A85-1A967C4E7801> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/Python
       0x10fc94000 -        0x10fc9bfff +_struct.cpython-310-darwin.so (0) <9BEC11C1-AE44-3E3F-ABBA-7D64D89ECBE9> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_struct.cpython-310-darwin.so
       0x10fca8000 -        0x10fcaffff +binascii.cpython-310-darwin.so (0) <4FEFE4B1-A3BC-3D55-AECF-1A491272EF38> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/binascii.cpython-310-darwin.so
       0x10fcbc000 -        0x10fcc7fff +math.cpython-310-darwin.so (0) <B3B55EA0-6F13-38B7-BC6E-9BFD81792DAD> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/math.cpython-310-darwin.so
       0x10fcd4000 -        0x10fcd7fff +_bisect.cpython-310-darwin.so (0) <325DE225-677D-34CE-9DD8-753D56EFD96E> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_bisect.cpython-310-darwin.so
       0x10fce4000 -        0x10fce7fff +_random.cpython-310-darwin.so (0) <4C9E58D3-EDB7-3218-B814-0AFCE2B277B8> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_random.cpython-310-darwin.so
       0x10fcf4000 -        0x10fcfbfff +_sha512.cpython-310-darwin.so (0) <858A5639-A23F-3B6F-A312-A7791EE3A5F8> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_sha512.cpython-310-darwin.so
       0x10fd08000 -        0x10fd17fff +_socket.cpython-310-darwin.so (0) <DB2C5674-F064-3CBC-B3D6-74D8474FE048> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_socket.cpython-310-darwin.so
       0x10fd24000 -        0x10fd2bfff +select.cpython-310-darwin.so (0) <87D01861-5D52-3E71-829B-9C2E96CDE359> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/select.cpython-310-darwin.so
       0x10fd38000 -        0x10fd3ffff +array.cpython-310-darwin.so (0) <73E2DC30-C200-33BE-A140-1770602F3140> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/array.cpython-310-darwin.so
       0x10fd4c000 -        0x10fd5bfff +_datetime.cpython-310-darwin.so (0) <44761DBB-92FC-365B-841B-35A448EFC7C4> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_datetime.cpython-310-darwin.so
       0x10fe6c000 -        0x10fe83fff +_ssl.cpython-310-darwin.so (0) <91E2ADD5-FE13-35D5-8D7B-4BC30A61D598> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_ssl.cpython-310-darwin.so
       0x10fe9c000 -        0x10feebfff +libssl.1.1.dylib (0) <199CDB02-717F-31BA-9AA4-D51191D9247B> /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib
       0x10ff18000 -        0x1100d7fff +libcrypto.1.1.dylib (0) <E9A1CEB6-8BBC-3D80-95AD-C55A61CF4476> /usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib
       0x110170000 -        0x110177fff +_hashlib.cpython-310-darwin.so (0) <E165C8DA-7592-324D-922E-16CE7A6C4DEF> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_hashlib.cpython-310-darwin.so
       0x110184000 -        0x11018bfff +_blake2.cpython-310-darwin.so (0) <94C76444-FD4C-3A9F-B376-7B4AD7E665F6> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_blake2.cpython-310-darwin.so
       0x110298000 -        0x11029bfff +_heapq.cpython-310-darwin.so (0) <8E7B3E57-E53E-3D58-A223-784E99EDA054> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_heapq.cpython-310-darwin.so
       0x1102a8000 -        0x1102abfff +_queue.cpython-310-darwin.so (0) <1C4B1487-25A5-3BC7-A9E4-677CFC9B0599> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_queue.cpython-310-darwin.so
       0x1102b8000 -        0x1102bffff +zlib.cpython-310-darwin.so (0) <F4330D2F-6C09-3BF7-AFDC-8D51F5963012> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/zlib.cpython-310-darwin.so
       0x1102cc000 -        0x1103d7fff +unicodedata.cpython-310-darwin.so (0) <9927A67E-014B-36C6-8F32-CC162AFFE9D5> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/unicodedata.cpython-310-darwin.so
       0x1103e4000 -        0x1103ebfff +_multibytecodec.cpython-310-darwin.so (0) <8E5571C0-AE4E-31CB-B057-82B87F42A6A8> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_multibytecodec.cpython-310-darwin.so
       0x1103f8000 -        0x1103fffff +_json.cpython-310-darwin.so (0) <8690077A-4EBD-3E26-8136-266F65E86DF4> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_json.cpython-310-darwin.so
       0x11050c000 -        0x11050ffff +_bz2.cpython-310-darwin.so (0) <94CF4F61-218B-32F9-888D-17A6B8A4F9D2> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_bz2.cpython-310-darwin.so
       0x11051c000 -        0x110523fff +_lzma.cpython-310-darwin.so (0) <3A402943-D37B-3ECF-8DA6-7AA5E87FC31F> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_lzma.cpython-310-darwin.so
       0x110530000 -        0x11054bfff +liblzma.5.dylib (0) <690CF609-95C3-370B-93D3-07DBD22D618D> /usr/local/opt/xz/lib/liblzma.5.dylib
       0x110558000 -        0x11055bfff +_scproxy.cpython-310-darwin.so (0) <D477D92C-6C7E-3F33-9885-A7D5BCD5648A> /usr/local/Cellar/python@3.10/3.10.7/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload/_scproxy.cpython-310-darwin.so
       0x110668000 -        0x11066bfff +_setproctitle.cpython-310-darwin.so (0) <A493DABD-2E20-3BD9-A59F-AE317999F1C4> /usr/local/lib/python3.10/site-packages/setproctitle/_setproctitle.cpython-310-darwin.so
       0x1199f7000 -        0x119a92fff  dyld (852.2) <3D15C9A5-8AD3-324E-849B-5F0CB5EB8B46> /usr/lib/dyld
    0x7fff20047000 -     0x7fff20048fff  libsystem_blocks.dylib (79) <F5B25F38-FC21-3BF5-A147-3B913DA098BE> /usr/lib/system/libsystem_blocks.dylib
    0x7fff20049000 -     0x7fff2007efff  libxpc.dylib (2038.120.1) <AB7BBDA1-3AC6-3832-8AB1-F3BFB7A0E5EC> /usr/lib/system/libxpc.dylib
    0x7fff2007f000 -     0x7fff20096fff  libsystem_trace.dylib (1277.120.1) <1F20357C-395F-3095-B525-AD9403290A92> /usr/lib/system/libsystem_trace.dylib
    0x7fff20097000 -     0x7fff20134fff  libcorecrypto.dylib (1000.140.4) <BDD3FF5E-34F8-3AC0-A05C-F9AC17C88BBF> /usr/lib/system/libcorecrypto.dylib
    0x7fff20135000 -     0x7fff20161fff  libsystem_malloc.dylib (317.140.5) <3AB4C7E9-C49C-3EB7-9370-370F3F655024> /usr/lib/system/libsystem_malloc.dylib
    0x7fff20162000 -     0x7fff201a6fff  libdispatch.dylib (1271.120.2) <5D824C33-C5E2-38A8-BD00-D934443DBDAB> /usr/lib/system/libdispatch.dylib
    0x7fff201a7000 -     0x7fff201e0fff  libobjc.A.dylib (824.1) <A0961DED-3477-3856-A6BC-CFE2475CB2F4> /usr/lib/libobjc.A.dylib
    0x7fff201e1000 -     0x7fff201e3fff  libsystem_featureflags.dylib (28.60.1) <2BAC8770-AFC8-3FE2-B6C6-27CE44B2B2BA> /usr/lib/system/libsystem_featureflags.dylib
    0x7fff201e4000 -     0x7fff2026cfff  libsystem_c.dylib (1439.141.1) <BC8BCEEA-CA52-32C7-9FF5-E444CF9EF66A> /usr/lib/system/libsystem_c.dylib
    0x7fff2026d000 -     0x7fff202c2fff  libc++.1.dylib (905.6) <5BA6B5ED-7842-3B13-86B0-00EB511CE2FE> /usr/lib/libc++.1.dylib
    0x7fff202c3000 -     0x7fff202d8fff  libc++abi.dylib (905.6) <B96FC1DD-0056-3E11-862A-C0BB8239FEA0> /usr/lib/libc++abi.dylib
    0x7fff202d9000 -     0x7fff20308fff  libsystem_kernel.dylib (7195.141.39) <C24D13F5-147C-32B4-9C20-F292A7A10F3C> /usr/lib/system/libsystem_kernel.dylib
    0x7fff20309000 -     0x7fff20314fff  libsystem_pthread.dylib (454.120.2) <5447E76D-BE49-3C58-AD72-EDD77DF27830> /usr/lib/system/libsystem_pthread.dylib
    0x7fff20315000 -     0x7fff20350fff  libdyld.dylib (852.2) <FD8DB5BC-F199-3524-9DC4-DAEC0E94712F> /usr/lib/system/libdyld.dylib
    0x7fff20351000 -     0x7fff2035afff  libsystem_platform.dylib (254.80.2) <52A77346-8AA5-3BB7-906D-C7503B491CF9> /usr/lib/system/libsystem_platform.dylib
    0x7fff2035b000 -     0x7fff20386fff  libsystem_info.dylib (542.40.4) <406353B2-E48A-3D20-B08F-0AB26ED8A0B3> /usr/lib/system/libsystem_info.dylib
    0x7fff20387000 -     0x7fff20824fff  com.apple.CoreFoundation (6.9 - 1778.105) <4A2C4587-EEBB-33E7-8616-7079E964A03A> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
    0x7fff20825000 -     0x7fff20a5bfff  com.apple.LaunchServices (1122.45 - 1122.45) <3B241B33-A83D-3F35-96A3-7DD44A9F876A> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
    0x7fff20a5c000 -     0x7fff20b30fff  com.apple.gpusw.MetalTools (1.0 - 1) <2D065AB2-EF9F-3B36-A05F-7D94029E73EF> /System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools
    0x7fff20b31000 -     0x7fff20d8dfff  libBLAS.dylib (1336.140.1) <D4B16233-BAE7-3D63-BB59-5DCEC63345EB> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
    0x7fff20d8e000 -     0x7fff20ddbfff  com.apple.Lexicon-framework (1.0 - 86.2) <09EC8AE4-7FC7-3D2D-A6DD-C484B664B1D5> /System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon
    0x7fff20ddc000 -     0x7fff20e4afff  libSparse.dylib (106) <0FD77742-B7DB-3296-9D0F-0DEF7EB4FF7D> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib
    0x7fff20e4b000 -     0x7fff20ec8fff  com.apple.SystemConfiguration (1.20 - 1.20) <D59BEA1F-BD5D-383A-8977-64F5B72F16C4> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
    0x7fff20ec9000 -     0x7fff20efdfff  libCRFSuite.dylib (50) <2DADF4F9-0BD3-33CF-9939-979E69F2453C> /usr/lib/libCRFSuite.dylib
    0x7fff20efe000 -     0x7fff21136fff  libmecabra.dylib (929.10) <58AA4922-A668-3165-802C-5FB4DF848E40> /usr/lib/libmecabra.dylib
    0x7fff21137000 -     0x7fff21495fff  com.apple.Foundation (6.9 - 1778.105) <554959E4-F9FB-3F67-8CC6-196159ED6CC1> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
    0x7fff21496000 -     0x7fff2157efff  com.apple.LanguageModeling (1.0 - 247.3) <EAAF99AF-2D5F-3EC5-B7F7-41D7236A09F3> /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling
    0x7fff2157f000 -     0x7fff216b5fff  com.apple.CoreDisplay (237.4 - 237.4) <CDD47724-D213-3665-BD34-A51F374AE94F> /System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay
    0x7fff216b6000 -     0x7fff21926fff  com.apple.audio.AudioToolboxCore (1.0 - 1181.72.4) <54A6D1F9-3F5C-3427-95EE-ED5CC613A6A1> /System/Library/PrivateFrameworks/AudioToolboxCore.framework/Versions/A/AudioToolboxCore
    0x7fff21927000 -     0x7fff21b0cfff  com.apple.CoreText (677.6.0.4 - 677.6.0.4) <1E81E372-02B3-3E9C-BB48-33DC80E49158> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
    0x7fff21b0d000 -     0x7fff2219efff  com.apple.audio.CoreAudio (5.0 - 5.0) <A5ED9C97-E177-388F-AED8-D760C6963377> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
    0x7fff2219f000 -     0x7fff224f6fff  com.apple.security (7.0 - 59754.141.1.7.1) <BE535B6D-0189-3EBE-A68C-7F3634BD8C89> /System/Library/Frameworks/Security.framework/Versions/A/Security
    0x7fff224f7000 -     0x7fff22756fff  libicucore.A.dylib (66112.1) <9F2A881A-25DA-3386-9DCE-D2B67C2A4141> /usr/lib/libicucore.A.dylib
    0x7fff22757000 -     0x7fff22760fff  libsystem_darwin.dylib (1439.141.1) <75592BEC-777B-381F-8C07-15B8A4C712A7> /usr/lib/system/libsystem_darwin.dylib
    0x7fff22761000 -     0x7fff22a4cfff  com.apple.CoreServices.CarbonCore (1307.3 - 1307.3) <6A17480E-855D-3172-8C2B-7F8592EDA8A7> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
    0x7fff22a4d000 -     0x7fff22a8bfff  com.apple.CoreServicesInternal (476.1.1 - 476.1.1) <E1B26DCD-95C5-3ED2-B716-BFA029ACAA2D> /System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal
    0x7fff22a8c000 -     0x7fff22ac6fff  com.apple.CSStore (1122.45 - 1122.45) <229A56A4-E139-30A5-821E-F4E9BD9D5F17> /System/Library/PrivateFrameworks/CoreServicesStore.framework/Versions/A/CoreServicesStore
    0x7fff22ac7000 -     0x7fff22b75fff  com.apple.framework.IOKit (2.0.2 - 1845.120.6) <A395F442-1253-3CA9-953F-7A235EEB7F67> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
    0x7fff22b76000 -     0x7fff22b81fff  libsystem_notify.dylib (279.40.4) <02E22D9D-01E2-361C-BB9A-B5BE18D28280> /usr/lib/system/libsystem_notify.dylib
    0x7fff23fe8000 -     0x7fff2466efff  libnetwork.dylib (2288.140.9) <2DE517EE-E318-366B-A7FA-AD5F62D007CB> /usr/lib/libnetwork.dylib
    0x7fff2466f000 -     0x7fff24b0dfff  com.apple.CFNetwork (1240.0.4 - 1240.0.4) <B3DC6D99-4EEA-323F-B992-70910B0E871C> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
    0x7fff24b0e000 -     0x7fff24b1cfff  libsystem_networkextension.dylib (1295.140.3) <3AA133EC-F0C0-38F3-8E80-007DFAA5D9D1> /usr/lib/system/libsystem_networkextension.dylib
    0x7fff24b1d000 -     0x7fff24b1dfff  libenergytrace.dylib (22.100.1) <EDE247D7-22AC-3339-AC3E-04A5BD13E3F2> /usr/lib/libenergytrace.dylib
    0x7fff24b1e000 -     0x7fff24b7afff  libMobileGestalt.dylib (978.140.1) <D32EAE92-51AB-3370-894A-BE778BA33FA6> /usr/lib/libMobileGestalt.dylib
    0x7fff24b7b000 -     0x7fff24b91fff  libsystem_asl.dylib (385.0.2) <88F4051D-1CF5-314E-A952-247C38996E16> /usr/lib/system/libsystem_asl.dylib
    0x7fff24b92000 -     0x7fff24baafff  com.apple.TCC (1.0 - 1) <705BD7E5-CF7E-38DF-AAC4-6A4F19D04D22> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
    0x7fff24bab000 -     0x7fff24f10fff  com.apple.SkyLight (1.600.0 - 588.10) <78FFC855-8FB8-300B-878C-174F019DBA94> /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight
    0x7fff24f11000 -     0x7fff2559afff  com.apple.CoreGraphics (2.0 - 1463.19.1) <C911B812-7401-3EAF-B365-A9B7B98B708A> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
    0x7fff2559b000 -     0x7fff25692fff  com.apple.ColorSync (4.13.0 - 3473.7.1) <2EFD49F9-6E31-350B-8544-DA1663F89EA1> /System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync
    0x7fff25693000 -     0x7fff256eefff  com.apple.HIServices (1.22 - 716) <76A6ECCF-9098-3A1F-A80B-40408A9AA4A5> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
    0x7fff25a95000 -     0x7fff25eb4fff  com.apple.CoreData (120 - 1048) <6D7D0B7E-7646-3F79-8108-0C1D11821749> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
    0x7fff25eb5000 -     0x7fff25ecafff  com.apple.ProtocolBuffer (1 - 285.24.10.20.1) <6EC4B8BC-C44A-3211-A0B5-A7298518231B> /System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer
    0x7fff25ecb000 -     0x7fff2607efff  libsqlite3.dylib (321.3) <8F485B58-8440-310F-9F08-60AACABBBDC1> /usr/lib/libsqlite3.dylib
    0x7fff260fc000 -     0x7fff26113fff  com.apple.commonutilities (8.0 - 900) <4D28711F-3425-31EB-A9D5-3FA489461EA3> /System/Library/PrivateFrameworks/CommonUtilities.framework/Versions/A/CommonUtilities
    0x7fff26114000 -     0x7fff26193fff  com.apple.BaseBoard (526 - 526) <8ABD1C28-584C-33E7-8BE8-4EFC5EEF1575> /System/Library/PrivateFrameworks/BaseBoard.framework/Versions/A/BaseBoard
    0x7fff26194000 -     0x7fff261dcfff  com.apple.RunningBoardServices (1.0 - 505.100.9) <BE0AEF0C-A31A-32F1-8157-9560A1A24633> /System/Library/PrivateFrameworks/RunningBoardServices.framework/Versions/A/RunningBoardServices
    0x7fff261dd000 -     0x7fff26251fff  com.apple.AE (918.6 - 918.6) <E1BD267B-4C2E-358F-98F5-ED0440FFD789> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
    0x7fff26252000 -     0x7fff26258fff  libdns_services.dylib (1310.140.1) <EABE9A6A-96DE-3A2E-B0E0-17F277A65757> /usr/lib/libdns_services.dylib
    0x7fff26259000 -     0x7fff26260fff  libsystem_symptoms.dylib (1431.140.1) <E9CB193F-260B-3835-B76E-A2209343FA1E> /usr/lib/system/libsystem_symptoms.dylib
    0x7fff26261000 -     0x7fff263ecfff  com.apple.Network (1.0 - 1) <6A3C9CBC-DE8E-3D0A-BA52-316E70255DCD> /System/Library/Frameworks/Network.framework/Versions/A/Network
    0x7fff263ed000 -     0x7fff2641cfff  com.apple.analyticsd (1.0 - 1) <6DEBD4D5-FEB3-3B39-A8F5-1E2E396CD266> /System/Library/PrivateFrameworks/CoreAnalytics.framework/Versions/A/CoreAnalytics
    0x7fff2641d000 -     0x7fff2641ffff  libDiagnosticMessagesClient.dylib (112) <8CE0D64A-597F-3048-80C3-590D866D067A> /usr/lib/libDiagnosticMessagesClient.dylib
    0x7fff26420000 -     0x7fff2646cfff  com.apple.spotlight.metadata.utilities (1.0 - 2150.29) <88322A2A-3DDD-35E0-A95C-54F4D5693191> /System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities
    0x7fff2646d000 -     0x7fff26507fff  com.apple.Metadata (10.7.0 - 2150.29) <0ABF8F88-B7D4-3787-9779-624B53D01702> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
    0x7fff26508000 -     0x7fff2650efff  com.apple.DiskArbitration (2.7 - 2.7) <21325211-A5F7-3AB9-BDFE-6B6DC06E587E> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
    0x7fff2650f000 -     0x7fff26b76fff  com.apple.vImage (8.1 - 544.5) <29267505-B871-3B53-9C6C-7A3757410C77> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
    0x7fff26b77000 -     0x7fff26e54fff  com.apple.QuartzCore (1.11 - 927.24) <A1FBBC37-D008-34E6-B034-6AF1856C8E2A> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
    0x7fff26e55000 -     0x7fff26e96fff  libFontRegistry.dylib (309.0.0.2) <D13D1774-9FC2-3A3B-BFD0-8ABFAF9AE1E0> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
    0x7fff270d0000 -     0x7fff270dffff  com.apple.OpenDirectory (11.7 - 230.40.1) <B7BB547E-B00F-37B3-A4A8-AF414F029E64> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
    0x7fff270e0000 -     0x7fff270fffff  com.apple.CFOpenDirectory (11.7 - 230.40.1) <E4682D99-DD7C-3C74-A0A1-E561B6E616C6> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
    0x7fff27100000 -     0x7fff2710cfff  com.apple.CoreServices.FSEvents (1290.120.6 - 1290.120.6) <78184C84-4633-3867-AACD-8F0256F40D5A> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents
    0x7fff2710d000 -     0x7fff27131fff  com.apple.coreservices.SharedFileList (144 - 144) <243CAB7D-EA1A-3322-9833-B4B24F63AB3E> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList
    0x7fff27132000 -     0x7fff27134fff  libapp_launch_measurement.dylib (14.1) <2AE731D8-757E-3A23-8375-9D266B762CC3> /usr/lib/libapp_launch_measurement.dylib
    0x7fff27135000 -     0x7fff2717cfff  com.apple.CoreAutoLayout (1.0 - 21.10.1) <32846C89-8FED-3225-B370-34FB1DA82A85> /System/Library/PrivateFrameworks/CoreAutoLayout.framework/Versions/A/CoreAutoLayout
    0x7fff2717d000 -     0x7fff2725ffff  libxml2.2.dylib (34.16) <A79350B7-AF98-3E15-8479-47547BD10B98> /usr/lib/libxml2.2.dylib
    0x7fff27260000 -     0x7fff272adfff  com.apple.CoreVideo (1.8 - 0.0) <FE8A9F52-4140-36D8-BE09-800E75857EAD> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
    0x7fff272ae000 -     0x7fff272b0fff  com.apple.loginsupport (1.0 - 1) <FF0F8335-44A1-30C6-A005-5B50FAEC72CF> /System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport
    0x7fff28268000 -     0x7fff28278fff  libsystem_containermanager.dylib (318.100.4) <A249AED7-16C8-3DDF-8DF9-BAB8BB4AEA2D> /usr/lib/system/libsystem_containermanager.dylib
    0x7fff28279000 -     0x7fff2828afff  com.apple.IOSurface (290.8.1 - 290.8.1) <327F44F6-872E-3BAC-95D6-69A6E30DDA8A> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
    0x7fff2828b000 -     0x7fff28294fff  com.apple.IOAccelerator (442.9 - 442.9) <9E68CF82-E687-3391-A744-8B5FDA25047E> /System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator
    0x7fff28295000 -     0x7fff283b8fff  com.apple.Metal (244.303 - 244.303) <86743C4C-4556-3EA0-AEA5-46673C7634B3> /System/Library/Frameworks/Metal.framework/Versions/A/Metal
    0x7fff283b9000 -     0x7fff283d5fff  com.apple.audio.caulk (1.0 - 70) <A8D1B95D-91AF-3FF5-9CD7-93661045C83A> /System/Library/PrivateFrameworks/caulk.framework/Versions/A/caulk
    0x7fff283d6000 -     0x7fff284c0fff  com.apple.CoreMedia (1.0 - 2780.10.4.1) <111E0B35-5EE5-37F9-9B30-25AF183F5984> /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia
    0x7fff284c1000 -     0x7fff2861dfff  libFontParser.dylib (305.6.0.4) <8E529842-25A6-397B-AF74-118990925EA4> /System/Library/PrivateFrameworks/FontServices.framework/libFontParser.dylib
    0x7fff2895c000 -     0x7fff28b98fff  com.apple.ImageIO (3.3.0 - 2130.10.2) <49B5996A-0A4C-3ECF-A907-1655DD0E4111> /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
    0x7fff28b99000 -     0x7fff28f14fff  com.apple.CoreImage (16.3.0 - 1140.2) <3C2DE86C-89FA-3EC1-ACFE-6BE95F54B123> /System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage
    0x7fff28f15000 -     0x7fff28f7bfff  com.apple.MetalPerformanceShaders.MPSCore (1.0 - 1) <2C3E2056-D58B-3DF9-8C18-9064BA94D8F1> /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSCore.framework/Versions/A/MPSCore
    0x7fff28f7c000 -     0x7fff28f7ffff  libsystem_configuration.dylib (1109.140.1) <53B71513-3009-3A8C-A5AA-9C15DD0AB54E> /usr/lib/system/libsystem_configuration.dylib
    0x7fff28f80000 -     0x7fff28f84fff  libsystem_sandbox.dylib (1441.141.9) <465104C7-5CD3-3AE0-8342-B19A402C4C06> /usr/lib/system/libsystem_sandbox.dylib
    0x7fff28f85000 -     0x7fff28f86fff  com.apple.AggregateDictionary (1.0 - 1) <CD5E6E8F-7AB6-345E-9243-D5D674DC0225> /System/Library/PrivateFrameworks/AggregateDictionary.framework/Versions/A/AggregateDictionary
    0x7fff28f87000 -     0x7fff28f8afff  com.apple.AppleSystemInfo (3.1.5 - 3.1.5) <15CBB967-FAAE-3A22-A87F-4833A9D835E3> /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo
    0x7fff28f8b000 -     0x7fff28f8cfff  liblangid.dylib (136) <D6DDBEB6-7A9A-3F00-8DEF-18934CFC0A08> /usr/lib/liblangid.dylib
    0x7fff28f8d000 -     0x7fff29031fff  com.apple.CoreNLP (1.0 - 245.2) <F40C2289-9A6D-3C55-A6DA-FFAD41636415> /System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP
    0x7fff29032000 -     0x7fff29038fff  com.apple.LinguisticData (1.0 - 399) <E6DC793D-3133-3D9B-BCF8-E4A628E45586> /System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData
    0x7fff29039000 -     0x7fff296e1fff  libBNNS.dylib (288.100.5) <1E45AC70-6C75-3F27-9252-40DF6B2D674A> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib
    0x7fff296e2000 -     0x7fff298b4fff  libvDSP.dylib (760.100.3) <64ABE11C-D3B9-386D-90CC-187C673C296D> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
    0x7fff298b5000 -     0x7fff298c6fff  com.apple.CoreEmoji (1.0 - 128.4) <011AA15B-6988-3F36-81A3-2B52B561D6E0> /System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji
    0x7fff298c7000 -     0x7fff298d1fff  com.apple.IOMobileFramebuffer (343.0.0 - 343.0.0) <13E0E3E1-9458-31CB-A6D5-9FE528CAFFB9> /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/Versions/A/IOMobileFramebuffer
    0x7fff29bca000 -     0x7fff29bdafff  com.apple.AssertionServices (1.0 - 505.100.9) <1B805E53-D42F-3019-88F0-64D3BD287DDB> /System/Library/PrivateFrameworks/AssertionServices.framework/Versions/A/AssertionServices
    0x7fff29bdb000 -     0x7fff29c66fff  com.apple.securityfoundation (6.0 - 55240.40.4) <F3A64423-8CD0-39E8-B0D3-4FAE4DBE4214> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
    0x7fff29c67000 -     0x7fff29c70fff  com.apple.coreservices.BackgroundTaskManagement (1.0 - 104) <8CF5B495-3026-3CE1-9EFC-8D7D71380A43> /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement
    0x7fff29c71000 -     0x7fff29c75fff  com.apple.xpc.ServiceManagement (1.0 - 1) <8098B1E9-642C-3833-AD15-0C67FEAF103E> /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement
    0x7fff29c76000 -     0x7fff29c78fff  libquarantine.dylib (119.40.4) <21C63859-6DFB-3463-9ADF-BB44FB28067C> /usr/lib/system/libquarantine.dylib
    0x7fff29c79000 -     0x7fff29c84fff  libCheckFix.dylib (31) <2367D288-6E21-3DBF-9A9E-00649A74C790> /usr/lib/libCheckFix.dylib
    0x7fff29c85000 -     0x7fff29c9cfff  libcoretls.dylib (169.100.1) <FC8265A0-9659-35D9-BA6F-6507A44742FE> /usr/lib/libcoretls.dylib
    0x7fff29c9d000 -     0x7fff29cadfff  libbsm.0.dylib (68.40.1) <0CF67F8A-268D-320A-A3A4-D7C2D9AB8027> /usr/lib/libbsm.0.dylib
    0x7fff29cae000 -     0x7fff29cf7fff  libmecab.dylib (929.10) <47A982DF-1436-366E-AC45-1DA068832AED> /usr/lib/libmecab.dylib
    0x7fff29cf8000 -     0x7fff29cfdfff  libgermantok.dylib (24) <189F508A-723B-345D-918F-178CF15077F3> /usr/lib/libgermantok.dylib
    0x7fff29cfe000 -     0x7fff29d13fff  libLinearAlgebra.dylib (1336.140.1) <27358E5F-256F-309F-AAC8-BAC4A56C7BF4> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib
    0x7fff29d14000 -     0x7fff29f32fff  com.apple.MetalPerformanceShaders.MPSNeuralNetwork (1.0 - 1) <A446A07F-29F9-3FC4-B00D-1C20B2E7347B> /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork
    0x7fff29f33000 -     0x7fff29f82fff  com.apple.MetalPerformanceShaders.MPSRayIntersector (1.0 - 1) <274E0939-A31C-3C15-91E4-33449F997FF6> /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSRayIntersector.framework/Versions/A/MPSRayIntersector
    0x7fff29f83000 -     0x7fff2a0e4fff  com.apple.MLCompute (1.0 - 1) <6026D664-0453-321F-81FE-A40AD902849E> /System/Library/Frameworks/MLCompute.framework/Versions/A/MLCompute
    0x7fff2a0e5000 -     0x7fff2a11bfff  com.apple.MetalPerformanceShaders.MPSMatrix (1.0 - 1) <A999B1FC-0004-38D2-8A00-35AAF20E38D9> /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix
    0x7fff2a11c000 -     0x7fff2a172fff  com.apple.MetalPerformanceShaders.MPSNDArray (1.0 - 1) <190153C9-F25B-3438-8A9A-501135103A54> /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSNDArray.framework/Versions/A/MPSNDArray
    0x7fff2a173000 -     0x7fff2a203fff  com.apple.MetalPerformanceShaders.MPSImage (1.0 - 1) <4D4B21EF-461D-3AB3-BDC2-830651204025> /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSImage.framework/Versions/A/MPSImage
    0x7fff2a204000 -     0x7fff2a213fff  com.apple.AppleFSCompression (125 - 1.0) <1C5279EE-8F78-386E-9E4D-24A3785CACA2> /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
    0x7fff2a214000 -     0x7fff2a220fff  libbz2.1.0.dylib (44) <6E82D414-3810-36CF-94FF-B1BDF48DB501> /usr/lib/libbz2.1.0.dylib
    0x7fff2a221000 -     0x7fff2a225fff  libsystem_coreservices.dylib (127.1) <6D84FA08-CB2B-34E1-9AB4-A54E82CB9161> /usr/lib/system/libsystem_coreservices.dylib
    0x7fff2a226000 -     0x7fff2a253fff  com.apple.CoreServices.OSServices (1122.45 - 1122.45) <7F805949-C6FC-33B0-A2C3-4BFBF22847D4> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
    0x7fff2a422000 -     0x7fff2a434fff  libz.1.dylib (76.1) <568898B6-2B9A-39A5-B2B7-B764FA8823F4> /usr/lib/libz.1.dylib
    0x7fff2a435000 -     0x7fff2a47cfff  libsystem_m.dylib (3186.100.3) <1836B380-C579-3195-BC3F-77404D432186> /usr/lib/system/libsystem_m.dylib
    0x7fff2a47d000 -     0x7fff2a47dfff  libcharset.1.dylib (59) <3A46C22D-E678-356B-9BAD-6E837704D662> /usr/lib/libcharset.1.dylib
    0x7fff2a47e000 -     0x7fff2a483fff  libmacho.dylib (980) <F7BDAFE5-4E49-39DD-8F94-CD5E49C91A90> /usr/lib/system/libmacho.dylib
    0x7fff2a484000 -     0x7fff2a49ffff  libkxld.dylib (7195.141.39) <E8430BF8-7D99-3D84-832A-AAD6B1BFC680> /usr/lib/system/libkxld.dylib
    0x7fff2a4a0000 -     0x7fff2a4abfff  libcommonCrypto.dylib (60178.120.3) <B057F752-3057-394D-A3F6-AA11A04A6392> /usr/lib/system/libcommonCrypto.dylib
    0x7fff2a4ac000 -     0x7fff2a4b6fff  libunwind.dylib (201) <9D6A6228-8DC3-3521-B458-4EDE4A9F5E65> /usr/lib/system/libunwind.dylib
    0x7fff2a4b7000 -     0x7fff2a4befff  liboah.dylib (203.58) <AC9E8A76-FCAA-3F97-802A-D22EF770463B> /usr/lib/liboah.dylib
    0x7fff2a4bf000 -     0x7fff2a4c9fff  libcopyfile.dylib (173.40.2) <BD7EAE7B-28C1-36DF-96B8-F506D50DFF28> /usr/lib/system/libcopyfile.dylib
    0x7fff2a4ca000 -     0x7fff2a4d1fff  libcompiler_rt.dylib (102.2) <BA910DC2-C697-3DAD-9A70-7C8CD5217AC3> /usr/lib/system/libcompiler_rt.dylib
    0x7fff2a4d2000 -     0x7fff2a4d4fff  libsystem_collections.dylib (1439.141.1) <21F2EF42-56ED-3E0F-9C29-94E0888DC52C> /usr/lib/system/libsystem_collections.dylib
    0x7fff2a4d5000 -     0x7fff2a4d7fff  libsystem_secinit.dylib (87.60.1) <E976428F-F9E2-334B-AA91-9AAD40234718> /usr/lib/system/libsystem_secinit.dylib
    0x7fff2a4d8000 -     0x7fff2a4dafff  libremovefile.dylib (49.120.1) <5AC9F8EC-F0E8-3D8A-ADB5-96B5FB581896> /usr/lib/system/libremovefile.dylib
    0x7fff2a4db000 -     0x7fff2a4dbfff  libkeymgr.dylib (31) <9FBE08F6-0679-3976-AFDC-1EAF40C3958F> /usr/lib/system/libkeymgr.dylib
    0x7fff2a4dc000 -     0x7fff2a4e3fff  libsystem_dnssd.dylib (1310.140.1) <8C4D6C93-285F-3587-A986-5BB96A1C664F> /usr/lib/system/libsystem_dnssd.dylib
    0x7fff2a4e4000 -     0x7fff2a4e9fff  libcache.dylib (83) <56DCEFF5-111E-32FD-B4E9-E148507C4FEC> /usr/lib/system/libcache.dylib
    0x7fff2a4ea000 -     0x7fff2a4ebfff  libSystem.B.dylib (1292.120.1) <4345E5A3-9BA5-3754-8AE6-C8FA6157B8BB> /usr/lib/libSystem.B.dylib
    0x7fff2a4ec000 -     0x7fff2a4effff  libfakelink.dylib (3) <6002BC93-3627-366E-8D21-A552D56CB215> /usr/lib/libfakelink.dylib
    0x7fff2a4f0000 -     0x7fff2a4f0fff  com.apple.SoftLinking (1.0 - 1) <3D0CEDFD-B263-39CA-8B31-E0A498D05EB3> /System/Library/PrivateFrameworks/SoftLinking.framework/Versions/A/SoftLinking
    0x7fff2a4f1000 -     0x7fff2a528fff  libpcap.A.dylib (98.100.3) <236EE73F-6D38-38E0-9BC0-B427DEB7F9FD> /usr/lib/libpcap.A.dylib
    0x7fff2a529000 -     0x7fff2a619fff  libiconv.2.dylib (59) <DEE0153A-BDF9-33CA-B8C7-3C39DB906B5E> /usr/lib/libiconv.2.dylib
    0x7fff2a61a000 -     0x7fff2a62bfff  libcmph.dylib (8) <83A69507-07D1-387F-9D06-1011E7909EAC> /usr/lib/libcmph.dylib
    0x7fff2a62c000 -     0x7fff2a69dfff  libarchive.2.dylib (83.100.2) <45B577F5-0064-3E73-89B8-BE4A121B214F> /usr/lib/libarchive.2.dylib
    0x7fff2a69e000 -     0x7fff2a705fff  com.apple.SearchKit (1.4.1 - 1.4.1) <7C264603-379D-38BF-A3EC-49C01059C5E5> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
    0x7fff2a706000 -     0x7fff2a707fff  libThaiTokenizer.dylib (3) <BA265C01-176E-3F7D-97F6-7FAABB0CAEC8> /usr/lib/libThaiTokenizer.dylib
    0x7fff2a708000 -     0x7fff2a72afff  com.apple.applesauce (1.0 - 16.28) <EAFF4FEC-51F3-3D0D-9D99-E62E75937F1B> /System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce
    0x7fff2a72b000 -     0x7fff2a742fff  libapple_nghttp2.dylib (1.41) <AC9520D7-D54F-3031-9503-FEA5A5ED5E56> /usr/lib/libapple_nghttp2.dylib
    0x7fff2a743000 -     0x7fff2a759fff  libSparseBLAS.dylib (1336.140.1) <7D926256-F187-33CA-87D6-74F1660C438A> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib
    0x7fff2a75a000 -     0x7fff2a75bfff  com.apple.MetalPerformanceShaders.MetalPerformanceShaders (1.0 - 1) <3E9C32AD-7F40-359E-B430-E31C09EC1F78> /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders
    0x7fff2a75c000 -     0x7fff2a760fff  libpam.2.dylib (28.40.1) <C851B25F-835B-3543-A93F-4EAA521DDC34> /usr/lib/libpam.2.dylib
    0x7fff2a761000 -     0x7fff2a780fff  libcompression.dylib (96.120.1) <F36054C1-6074-3A22-82EF-6F4A2A52599C> /usr/lib/libcompression.dylib
    0x7fff2a781000 -     0x7fff2a786fff  libQuadrature.dylib (7) <256CB21E-2878-3F22-B4B5-E1FB60D64C9E> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib
    0x7fff2a787000 -     0x7fff2ab24fff  libLAPACK.dylib (1336.140.1) <02F2D4D1-8763-32D1-B5F9-9DD439EFC8E8> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
    0x7fff2ab25000 -     0x7fff2ab74fff  com.apple.DictionaryServices (1.2 - 341) <FB843860-C7D5-3060-B50E-303A3CBAE9A9> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
    0x7fff2ab75000 -     0x7fff2ab8dfff  liblzma.5.dylib (16) <455C9083-014D-3037-AC54-1395F3796734> /usr/lib/liblzma.5.dylib
    0x7fff2ab8e000 -     0x7fff2ab8ffff  libcoretls_cfhelpers.dylib (169.100.1) <6760D250-2628-3DA2-A8A4-6F438E09527A> /usr/lib/libcoretls_cfhelpers.dylib
    0x7fff2ab90000 -     0x7fff2ac8bfff  com.apple.APFS (1677.141.3 - 1677.141.3) <E4B0DF0F-E1A5-3FEF-A2A6-8105AD54D95A> /System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS
    0x7fff2ac8c000 -     0x7fff2ac9afff  libxar.1.dylib (452.0.6) <735B47F9-E9CA-3D6B-BA55-851A7D37E037> /usr/lib/libxar.1.dylib
    0x7fff2ac9b000 -     0x7fff2ac9efff  libutil.dylib (58.40.3) <B5961283-0856-3D78-AE9C-EAFB6A903569> /usr/lib/libutil.dylib
    0x7fff2ac9f000 -     0x7fff2acc7fff  libxslt.1.dylib (17.6) <EB641671-10F8-31AC-BF5F-497AD9A739C2> /usr/lib/libxslt.1.dylib
    0x7fff2acc8000 -     0x7fff2acd2fff  libChineseTokenizer.dylib (37.1) <62BC78D3-1400-3366-A04E-C8BEE6AC00B5> /usr/lib/libChineseTokenizer.dylib
    0x7fff2acd3000 -     0x7fff2ad90fff  libvMisc.dylib (760.100.3) <9FF51B6A-6EF2-3F13-886D-C1DAB0A10687> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
    0x7fff2ad91000 -     0x7fff2ae28fff  libate.dylib (3.0.6) <CCD85C79-E892-339A-B0AB-E385D4F635F5> /usr/lib/libate.dylib
    0x7fff2ae29000 -     0x7fff2ae30fff  libIOReport.dylib (64.100.1) <0997845A-1FF3-35B3-A5ED-2FB16D07F624> /usr/lib/libIOReport.dylib
    0x7fff2afc6000 -     0x7fff2b019fff  com.apple.AppleVAFramework (6.1.3 - 6.1.3) <1D2A99E8-473C-3C56-BD50-98549FDC8932> /System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA
    0x7fff2b01a000 -     0x7fff2b033fff  libexpat.1.dylib (26.141.1) <0416D6BA-2AEB-3BBA-8584-FA28E62E8007> /usr/lib/libexpat.1.dylib
    0x7fff2b034000 -     0x7fff2b03dfff  libheimdal-asn1.dylib (597.140.3) <5BC6E1AB-E966-344C-AF90-B4144FFCE989> /usr/lib/libheimdal-asn1.dylib
    0x7fff2b0c0000 -     0x7fff2b15efff  com.apple.MediaExperience (1.0 - 1) <38E097F4-310F-38F1-B34B-7AE4CBEE0095> /System/Library/PrivateFrameworks/MediaExperience.framework/Versions/A/MediaExperience
    0x7fff2b15f000 -     0x7fff2b187fff  com.apple.persistentconnection (1.0 - 1.0) <CF93C3EC-D1D1-3BAE-92B1-5D85A969F748> /System/Library/PrivateFrameworks/PersistentConnection.framework/Versions/A/PersistentConnection
    0x7fff2b188000 -     0x7fff2b196fff  com.apple.GraphVisualizer (1.0 - 100.1) <928039C0-8548-38A0-BBE9-6AA807CCE7B7> /System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer
    0x7fff2b197000 -     0x7fff2b5b2fff  com.apple.vision.FaceCore (4.3.2 - 4.3.2) <13FFCD22-55DB-301B-9C6F-03C94266591B> /System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore
    0x7fff2b5b3000 -     0x7fff2b5fafff  com.apple.OTSVG (1.0 - 677.6.0.4) <F89F3381-E8B0-3964-995E-6213AD6955B2> /System/Library/PrivateFrameworks/OTSVG.framework/Versions/A/OTSVG
    0x7fff2b5fb000 -     0x7fff2b601fff  com.apple.xpc.AppServerSupport (1.0 - 2038.120.1) <368ADC95-9313-3EDE-8F1F-DF12A497C13A> /System/Library/PrivateFrameworks/AppServerSupport.framework/Versions/A/AppServerSupport
    0x7fff2b602000 -     0x7fff2b614fff  libhvf.dylib (1.0 - $[CURRENT_PROJECT_VERSION]) <0516271E-EC4D-3CDB-B14F-8062437D7B2E> /System/Library/PrivateFrameworks/FontServices.framework/libhvf.dylib
    0x7fff2b615000 -     0x7fff2b617fff  libspindump.dylib (295.3) <E090FDF1-6C64-39B9-A750-63EC6AB7E0C1> /usr/lib/libspindump.dylib
    0x7fff2b618000 -     0x7fff2b6d8fff  com.apple.Heimdal (4.0 - 2.0) <2474065E-9291-3AF6-B053-B801C6650BC2> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
    0x7fff2b878000 -     0x7fff2b8b4fff  com.apple.bom (14.0 - 235.1) <840AAE12-A67E-3AF6-AD0A-5E6814AB3B26> /System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom
    0x7fff2b8b5000 -     0x7fff2b8fefff  com.apple.AppleJPEG (1.0 - 1) <2A8FF19B-B937-3F0B-A59B-A9A8B24F53E6> /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG
    0x7fff2b8ff000 -     0x7fff2b9defff  libJP2.dylib (2130.10.2) <FEA4CBFA-DCEA-38E4-8992-488476D8CF3E> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
    0x7fff2b9df000 -     0x7fff2b9e2fff  com.apple.WatchdogClient.framework (1.0 - 98.120.2) <2907CD2F-A115-34CF-BB9D-DCFEBAEE78F3> /System/Library/PrivateFrameworks/WatchdogClient.framework/Versions/A/WatchdogClient
    0x7fff2b9e3000 -     0x7fff2ba19fff  com.apple.MultitouchSupport.framework (4440.3.1 - 4440.3.1) <9F19F332-ADC4-3D35-A9ED-C62AC334A704> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
    0x7fff2ba1a000 -     0x7fff2bb78fff  com.apple.VideoToolbox (1.0 - 2780.10.4.1) <F50EAE4F-310B-3BDC-9718-BA4185F53531> /System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox
    0x7fff2bb79000 -     0x7fff2bbacfff  libAudioToolboxUtility.dylib (1181.72.4) <DA97CC50-C424-3850-BE05-C5793C3F1DCA> /usr/lib/libAudioToolboxUtility.dylib
    0x7fff2bbad000 -     0x7fff2bbcdfff  libPng.dylib (2130.10.2) <08FC994B-A5C7-32C0-8E6F-59B4CE10FD71> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
    0x7fff2bbce000 -     0x7fff2bc2ffff  libTIFF.dylib (2130.10.2) <E46EEB9F-3FBD-3A8B-B939-3705DD38B1C7> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
    0x7fff2bc30000 -     0x7fff2bc4cfff  com.apple.IOPresentment (58 - 37) <BA4B88DD-52FF-3F07-82E2-533E7D6548C0> /System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment
    0x7fff2bc4d000 -     0x7fff2bc54fff  com.apple.GPUWrangler (6.3.6 - 6.3.6) <D41B27C4-9FC6-3F2F-8C65-06F9ED6EE43D> /System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler
    0x7fff2bc55000 -     0x7fff2bc58fff  libRadiance.dylib (2130.10.2) <43516BAD-3D67-3326-8B9C-88DF3CE91D99> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
    0x7fff2bc59000 -     0x7fff2bc5efff  com.apple.DSExternalDisplay (3.1 - 380) <85C7B7A3-8E61-3773-A7A1-0E594C390144> /System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay
    0x7fff2bc5f000 -     0x7fff2bc83fff  libJPEG.dylib (2130.10.2) <2D60BE02-9CAB-3034-ABBF-6EBC7E5144F3> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
    0x7fff2bc84000 -     0x7fff2bcb3fff  com.apple.ATSUI (1.0 - 1) <D64FE353-AFFA-3B55-8E85-F222434E2FC1> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATSUI.framework/Versions/A/ATSUI
    0x7fff2bcb4000 -     0x7fff2bcb8fff  libGIF.dylib (2130.10.2) <88717318-1149-39AF-BC67-2338ED0CA134> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
    0x7fff2bcb9000 -     0x7fff2bcc2fff  com.apple.CMCaptureCore (1.0 - 82.6) <E96DDCE5-8BCF-392D-84C6-87D76BC9DF9A> /System/Library/PrivateFrameworks/CMCaptureCore.framework/Versions/A/CMCaptureCore
    0x7fff2bcc3000 -     0x7fff2bd0afff  com.apple.print.framework.PrintCore (16.1 - 531.1) <D8F84239-11A0-311F-A66C-99C87F99D879> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
    0x7fff2cb28000 -     0x7fff2cb59fff  libSessionUtility.dylib (76.69) <9CA8B6AC-ADC8-3805-A7AE-2532B3C0EBB0> /System/Library/PrivateFrameworks/AudioSession.framework/libSessionUtility.dylib
    0x7fff2cb5a000 -     0x7fff2cc8efff  com.apple.audio.toolbox.AudioToolbox (1.14 - 1.14) <22CED5AB-7D41-39CD-A94A-26FCAF08945F> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
    0x7fff2cc8f000 -     0x7fff2ccf4fff  com.apple.audio.AudioSession (1.0 - 76.69) <85C29DF5-2A9A-3029-8AF5-91E83074C414> /System/Library/PrivateFrameworks/AudioSession.framework/Versions/A/AudioSession
    0x7fff2ccf5000 -     0x7fff2cd07fff  libAudioStatistics.dylib (27.64) <C46ED1DB-C7F4-3E56-B992-25821F9B1CE1> /usr/lib/libAudioStatistics.dylib
    0x7fff2cd08000 -     0x7fff2cd17fff  com.apple.speech.synthesis.framework (9.0.66 - 9.0.66) <1746AB65-AAAA-3BAB-AAD3-C158FB532798> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
    0x7fff2cd18000 -     0x7fff2cd84fff  com.apple.ApplicationServices.ATS (377 - 516) <484D4858-74A8-3541-91E5-2C74F70A3824> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
    0x7fff2cd85000 -     0x7fff2cd9dfff  libresolv.9.dylib (68.2) <78461752-674E-35D5-94D6-17E627802577> /usr/lib/libresolv.9.dylib
    0x7fff2ced0000 -     0x7fff2cfaffff  libSMC.dylib (20) <038349BC-2D55-3E20-B3C3-BFEEA36E730A> /usr/lib/libSMC.dylib
    0x7fff2cfb0000 -     0x7fff2d00ffff  libcups.2.dylib (494.4) <83908F13-3FDA-3410-AF5F-72850045385D> /usr/lib/libcups.2.dylib
    0x7fff2d010000 -     0x7fff2d01ffff  com.apple.LangAnalysis (1.7.0 - 254) <EEF814D5-A3F9-3FF4-8F1B-D6083AFAEC52> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
    0x7fff2d020000 -     0x7fff2d02afff  com.apple.NetAuth (6.2 - 6.2) <2FB90509-3BD8-39CF-BE6A-5490F84FF284> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
    0x7fff2d02b000 -     0x7fff2d032fff  com.apple.ColorSyncLegacy (4.13.0 - 1) <3642F12D-9971-3ED9-BFC9-C699BB6E1587> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy
    0x7fff2d033000 -     0x7fff2d03efff  com.apple.QD (4.0 - 416) <AAE33CA8-0995-3BA3-B5CE-4ED19706BB44> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
    0x7fff2d03f000 -     0x7fff2d693fff  com.apple.audio.AudioResourceArbitration (1.0 - 1) <09E26A64-0C70-38AD-B9C9-7F8847E1F09F> /System/Library/PrivateFrameworks/AudioResourceArbitration.framework/Versions/A/AudioResourceArbitration
    0x7fff2d694000 -     0x7fff2d69ffff  com.apple.perfdata (1.0 - 67.40.1) <4A3F192A-2416-3D16-B318-A160264359DE> /System/Library/PrivateFrameworks/perfdata.framework/Versions/A/perfdata
    0x7fff2d6a0000 -     0x7fff2d6aefff  libperfcheck.dylib (41) <7D626792-9A87-3A1F-BE6E-C7D8FE62B800> /usr/lib/libperfcheck.dylib
    0x7fff2d6af000 -     0x7fff2d6befff  com.apple.Kerberos (3.0 - 1) <69B24A09-0788-3ACA-A01C-358746980694> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
    0x7fff2d6bf000 -     0x7fff2d70ffff  com.apple.GSS (4.0 - 2.0) <ED415CCE-35BE-3D95-908B-6E0AAAA117BC> /System/Library/Frameworks/GSS.framework/Versions/A/GSS
    0x7fff2d710000 -     0x7fff2d720fff  com.apple.CommonAuth (4.0 - 2.0) <F04AE711-C29E-35EE-A3C1-F7205F72902F> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
    0x7fff2d8f1000 -     0x7fff2d8f1fff  liblaunch.dylib (2038.120.1) <20368763-EA5B-345A-A5AE-0AD19CF98CE3> /usr/lib/system/liblaunch.dylib
    0x7fff2fd88000 -     0x7fff2fd88fff  libsystem_product_info_filter.dylib (8.40.1) <BB06C92C-6BD7-310C-A176-DC0DCE8D9F2B> /usr/lib/system/libsystem_product_info_filter.dylib
    0x7fff2fe60000 -     0x7fff2fe60fff  com.apple.Accelerate.vecLib (3.11 - vecLib 3.11) <F46E0ACF-7524-3CA3-A64A-5DDF6081EB67> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
    0x7fff2fe86000 -     0x7fff2fe86fff  com.apple.CoreServices (1122.45 - 1122.45) <F58134D0-6EDB-351B-9F5B-4337456D02B1> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
    0x7fff30042000 -     0x7fff30042fff  com.apple.Accelerate (1.11 - Accelerate 1.11) <5CB8057A-B136-3729-962C-F95240BC828F> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
    0x7fff33061000 -     0x7fff33061fff  com.apple.ApplicationServices (48 - 50) <F989C28C-9784-3879-8B1F-58171D2B1DA7> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
    0x7fff33376000 -     0x7fff33376fff  libHeimdalProxy.dylib (79) <69042CA5-B0DE-392D-8B32-51446EA228C5> /System/Library/Frameworks/Kerberos.framework/Versions/A/Libraries/libHeimdalProxy.dylib
    0x7fff3cb3b000 -     0x7fff3cb5afff  com.apple.private.SystemPolicy (1.0 - 1) <89781097-BA30-3186-B368-3830D1FE4FC0> /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy
    0x7fff3d498000 -     0x7fff3d4aafff  libmis.dylib (274.140.2) <D8990A31-A5AE-3535-BE5E-3EE9A8D0C9F9> /usr/lib/libmis.dylib
    0x7fff6b7f1000 -     0x7fff6b7f7fff  libCoreFSCache.dylib (200.12) <B6360761-3B05-35AE-8E0C-F819414FD093> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib
    0x7fff6b7f8000 -     0x7fff6b7fcfff  libCoreVMClient.dylib (200.12) <4D617E02-85B8-3BC2-82FE-5CEA77809181> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
    0x7fff6b7fd000 -     0x7fff6b80cfff  com.apple.opengl (18.5.9 - 18.5.9) <610E765C-8C0D-3422-AD6E-636D3EBD2AD0> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
    0x7fff6b80d000 -     0x7fff6b80ffff  libCVMSPluginSupport.dylib (18.5.9) <C7B33518-2685-3985-ABCB-FC3B0105748C> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
    0x7fff6b810000 -     0x7fff6b818fff  libGFXShared.dylib (18.5.9) <AD53ED9A-C694-3EF4-863E-898E88F6D84C> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
    0x7fff6b819000 -     0x7fff6b84cfff  libGLImage.dylib (18.5.9) <6C478ED9-E513-3E43-B9F1-D15A20A0EE85> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
    0x7fff6b84d000 -     0x7fff6b889fff  libGLU.dylib (18.5.9) <D5473328-FD13-36A5-9CAC-CF4F59CDAA29> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
    0x7fff6ba1e000 -     0x7fff6ba28fff  libGL.dylib (18.5.9) <08A0476A-D04F-3816-AA4D-11EC2467F748> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
    0x7fff6ce68000 -     0x7fff6cec0fff  com.apple.opencl (4.6 - 4.6) <8C87D26C-12C6-33E8-AE32-45B699667DB3> /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=655.3M resident=0K(0%) swapped_out_or_unallocated=655.3M(100%)
Writable regions: Total=723.1M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=723.1M(100%)

                                VIRTUAL   REGION 
REGION TYPE                        SIZE    COUNT (non-coalesced) 
===========                     =======  ======= 
Dispatch continuations            96.0M        1 
Kernel Alloc Once                    8K        1 
MALLOC                           121.1M       29 
MALLOC guard page                   24K        5 
MALLOC_MEDIUM (reserved)         480.0M        4         reserved VM address space (unallocated)
STACK GUARD                          4K        1 
Stack                             17.5M        4 
Stack Guard                         12K        3 
VM_ALLOCATE                       8204K       11 
__DATA                            8361K      258 
__DATA_CONST                      9333K      162 
__DATA_DIRTY                       339K       82 
__FONT_DATA                          4K        1 
__LINKEDIT                       501.5M       53 
__OBJC_RO                         70.2M        1 
__OBJC_RW                         2496K        2 
__TEXT                           154.0M      259 
__UNICODE                          588K        1 
mapped file                       30.9M        2 
shared memory                      132K        9 
===========                     =======  ======= 
TOTAL                              1.5G      889 
TOTAL, minus reserved VM space     1.0G      889 

Model: MacBookPro15,1, BootROM 1731.140.2.0.0 (iBridge: 19.16.16067.0.0,0), 6 processors, 6-Core Intel Core i7, 2.6 GHz, 32 GB, SMC 
Graphics: kHW_IntelUHDGraphics630Item, Intel UHD Graphics 630, spdisplays_builtin
Graphics: kHW_AMDRadeonPro560XItem, Radeon Pro 560X, spdisplays_pcie_device, 4 GB
Memory Module: BANK 0/ChannelA-DIMM0, 16 GB, DDR4, 2400 MHz, SK Hynix, -
Memory Module: BANK 2/ChannelB-DIMM0, 16 GB, DDR4, 2400 MHz, SK Hynix, -
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x7BF), wl0: Aug 10 2021 19:55:28 version 9.30.444.18.32.5.71 FWID 01-93db3422
Bluetooth: Version 8.0.5d7, 3 services, 27 devices, 1 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
USB Device: USB 3.1 Bus
USB Device: USB2.0 Hub
USB Device: USB2.0 Hub
USB Device: USB-C multiport device
USB Device: USB PnP Audio Device
USB Device: USB Optical Mouse
USB Device: USB2.0 Hub
USB Device: Logitech USB Headset
USB Device: Miscellaneous Device
USB Device: Keyboard Hub
USB Device: Apple Keyboard
USB Device: USB3.0 Hub
USB Device: USB3.0 Hub
USB Device: USB 10/100/1000 LAN
USB Device: NS1081
USB Device: Apple T2 Bus
USB Device: Touch Bar Backlight
USB Device: Touch Bar Display
USB Device: Apple Internal Keyboard / Trackpad
USB Device: Headset
USB Device: Ambient Light Sensor
USB Device: FaceTime HD Camera (Built-in)
USB Device: Apple T2 Controller
Thunderbolt Bus: MacBook Pro, Apple Inc., 47.5
Thunderbolt Bus: MacBook Pro, Apple Inc., 47.5
gershnik commented 2 years ago

@glic3rinu Thank you for the full crash report. On the first blush this doesn't seem to be anything related to setproctitle, (except that its presence or absence likely nudges another issue to sporadically manifest). There seems to be some issue with your Python installation - some shared library is broken or invalid. The code fails on loading of some shared library - unfortunately the crash report doesn't say which. You can see an almost identical crash here, for example, but in that case the crash did pinpoint the error. It could be that setproctitle library is damaged - uninstalling and reinstalling it might help. If not, though I hate to suggest something as annoying as this but perhaps reinstalling Python (yours seems to be brought by homebrew) can fix this? (One hint that setproctitle isn't directly involved is that it happens on 1.3.1 even without calling it. On that version nothing is actually done in that case other than to load a shared library)

glic3rinu commented 2 years ago

yep, what you are saying @gershnik makes a lot of sense. I will do further testing on a clean python installation.

glic3rinu commented 2 years ago

Unfortunately this is still happening after reinstalling python3 and purging all site-packages:

export PYTHONPATH=
rm -rf /usr/local/lib/python3.10/site-packages/*
brew install python3  # upgraded from 3.10.7 to 3.10.8
pip3 install requests setproctitle

I believe requests imports a few c-extensions along. It is gonna be hard to find out which one it is causing the crash, for one will have to find out a way to reproduce it without requests :P.

gershnik commented 2 years ago

For what it worth I tried with Homebrew Python too (I usually use the natively installed one) and still no repro. Have you tried a different machine? Also perhaps brew remove python3 or some such to ensure clean state? (I don't normally use homebrew so not 100% sure how to guarantee clean slate there)

hynek commented 1 year ago

It seems like Apple changed something in macOS 13.2 because what used to work perfectly and / or with OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES now reliably crashes.

Here's a minimal reproducer:

import faulthandler
import os
import urllib.request

import setproctitle

faulthandler.enable()
if os.fork() == 0:
    urllib.request.getproxies()

Leads to:

Fatal Python error: Segmentation fault

Current thread 0x00007ff84f532640 (most recent call first):
  File "/usr/local/Cellar/python@3.11/3.11.1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py", line 2639 in getproxies_macosx_sysconf
  File "/usr/local/Cellar/python@3.11/3.11.1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py", line 2657 in getproxies
  File "/Users/hynek/tmp/crash.py", line 9 in <module>

Extension modules: setproctitle._setproctitle (total: 1)

Commenting out setproctitle fixes it.

urllib.request.getproxies() is used by httpx, that's how I know. :|


I've tried:

Do you want me to open a new ticket?

dvarrazzo commented 1 year ago

Maybe we should just make this package no-op on macOS?

hynek commented 1 year ago

that would be fine with me

gershnik commented 1 year ago

It reproduces for me too on 13.2. According to this the issue isn't limited to setproctitle and you might hit it with other libraries. However the workaround in that thread: running the Python interpreter with no_proxy=* environment variable, e.g.

no_proxy=\* python3 test.py

fixes it for me for the repro you provided.

@dvarrazzo the issue isn't specifically with py-setproctitle but with he fact that Python on Mac doesn't really support fork with no exec. Anyone who does it walks on thin ice until something breaks.

dvarrazzo commented 1 year ago

I am not a macOS user, and personally I think nobody should.

I have no problem in releasing a package dropping every functionality from macOS and just leave it working on Linux.

Is there any mode of work on macOS that is salvageable - detecting fork and make it no-op in that case - or should we go setproctitle = lambda x: None in all cases on macOS?

@hynek thank you for your repro. I think it would be better to create a new issue, yes.

gershnik commented 1 year ago

I suspect the number of people who rely on fork with no exec in Python on MacOS is tiny compared to regular folks who simply have many Python processes running and would benefit from this package. 😉 It is possible to use setproctitle "safely" if the import setproctitle is done after the fork in child/parent. My take is that a big bold warning in README to do that would be sufficient for advanced users who really need plain fork.

Aegdesil commented 1 year ago

It is possible to use setproctitle "safely" if the import setproctitle is done after the fork in child/parent.

Unfortunately this can be difficult, when setproctitle is used in a 3rd party library for instance. I would prefer being able to disable it based on an environment variable, so that the end user can more easily control the behavior if needed.

Also as a MacOS user I wouldn't mind always disabling it if it is too complicated to fix / maintain, however I would find it disappointing since the current version works for most people.

dvarrazzo commented 1 year ago

Do we have a way to detect the "thin-ice condition", by looking at process pid/ppid etc? Maybe storing the pid on import into a static var, and avoid to operate if getpid() <> stored_pid?

(I would prefer to avoid throwing the baby with the bathwater too).

gershnik commented 1 year ago

The problem is that all the "damage" is already done by import setproctitle. It eagerly initializes things and touches Apple libraries which, in turn, initializes them. Nothing is done after that and there is nothing to detect. Then after a fork a different library (urllib) also uses Apple's libraries. The Apple's code detects running under a different PID after being initialized and proactively crashes. This is new in macOS 13.2 it seems. Earlier versions were fine with such usage. Now if you go earlier in this issue to about Aug 2022 we made the initialization run on import in order to avoid a different manifestation of the same problem.

So it appears that the only safe (now and in any future version of macOS) way of using the library together with plain fork would be either:

Or

None of this is unique to setproctitle. Use another library that touches Apple libraries in the parent prior to fork and you will have the same issue after.

gershnik commented 1 year ago

With regards to a scenario of another library using setproctitle without host process control I don't think this is a realistic one or one that should be catered to. A library is a guest in a host process house. It has no business changing the process title on its own any more than a guest painting the host's house a different color unasked. 😄

dvarrazzo commented 1 year ago

If forking and not exec'ing is a thing documented not to do on macOS, and a program does a thing that shouldn't do, and doing so it explodes... is this genuinely a setproctitle issue?

If it is, either we fix it, or we rip off the feature. Otherwise, no action.

gershnik commented 1 year ago

It is kinda documented but not in any place a regular Python (or Node, or whatever not Apple) developer would think to look at or be aware of. It is also kinda documented for Python but again in not very visible places. See for example: https://docs.python.org/3/library/multiprocessing.html

Changed in version 3.8: On macOS, the spawn start method is now the default. The fork start method should be considered unsafe as it can lead to crashes of the subprocess. See bpo-33725.

My point is precisely that it is not a setproctitle issue. Beyond documenting that it is unsafe if used before fork (and potentially making it friendlier by not doing anything on import) I don't think any action is needed here.

dvarrazzo commented 1 year ago

That's ok then. We can keep both the baby together with the bathwater. :+1:

Maybe we can put a more prominent warning in our docs, and avoid the blame: see #127. @gershnik I'll write something and then I'll ask you for a review, if you can be so kind.

Thank you very much!