htop icon indicating copy to clipboard operation
htop copied to clipboard

Unable to get kinfo_procs: Cannot allocate memory after running for a long time

Open ReagentX opened this issue 3 years ago • 26 comments

After a lot of runtime (multiple days), I get Unable to get kinfo_procs: Cannot allocate memory and htop crashes.

ReagentX avatar Sep 11 '20 20:09 ReagentX

MacOS like https://github.com/hishamhm/htop/issues/963 ?

fasterit avatar Sep 11 '20 21:09 fasterit

Yes: 10.15.6 (19G2021)

  Model Name:	MacBook Pro
  Model Identifier:	MacBookPro11,5
  Processor Name:	Quad-Core Intel Core i7
  Processor Speed:	2.8 GHz
  Number of Processors:	1
  Total Number of Cores:	4
  L2 Cache (per Core):	256 KB
  L3 Cache:	6 MB
  Hyper-Threading Technology:	Enabled
  Memory:	16 GB
  Boot ROM Version:	199.0.0.0.0
  SMC Version (system):	2.30f2

ReagentX avatar Sep 11 '20 21:09 ReagentX

Is htop prior to the crash/error-exit using an abnormal amount of memory?

Can you try to use htop under valgrind (see #116).

cgzones avatar Sep 11 '20 21:09 cgzones

I just compiled valgrind, I will run htop until it crashes and update this issue.

ReagentX avatar Sep 11 '20 22:09 ReagentX

Alright, here is the output of the crash:

❯ valgrind htop
==90800== Memcheck, a memory error detector
==90800== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==90800== Using Valgrind-3.17.0.GIT and LibVEX; rerun with -h for copyright info
==90800== Command: htop
==90800==
--90800-- UNKNOWN host message [id 204, to mach_host_self(), reply 0x707]
--90800-- UNKNOWN host message [id 204, to mach_host_self(), reply 0x707] (repeated 2 times)
--90800-- UNKNOWN host message [id 216, to mach_host_self(), reply 0x707]
Unable to get kinfo_procs: Cannot allocate memory
==90800==
==90800== HEAP SUMMARY:
==90800==     in use at exit: 1,140,367 bytes in 2,361 blocks
==90800==   total heap usage: 119,294 allocs, 116,933 frees, 8,067,543,527 bytes allocated
==90800==
==90800== LEAK SUMMARY:
==90800==    definitely lost: 13,350 bytes in 8 blocks
==90800==    indirectly lost: 377,735 bytes in 177 blocks
==90800==      possibly lost: 2,360 bytes in 22 blocks
==90800==    still reachable: 710,559 bytes in 1,950 blocks
==90800==                       of which reachable via heuristic:
==90800==                         newarray           : 56 bytes in 1 blocks
==90800==         suppressed: 36,363 bytes in 204 blocks
==90800== Rerun with --leak-check=full to see details of leaked memory
==90800==
==90800== For lists of detected and suppressed errors, rerun with: -s
==90800== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 5 from 4)
~                                                                                        took 19h 32m 33s ─╮
❯                                                                                                         ─╯

ReagentX avatar Sep 13 '20 02:09 ReagentX

Okay, I have a rough guess where this might be.

Could you re-run valgrind with full leak-checking/reporting (preferably on a debug build of htop) for only a few seconds and exit then? It should report a list of leaked allocations alongside stack-traces of when they were allocated.

The crash itself happens, because the kernel becomes out-of-memory while trying to service the { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 } syscall in ProcessList_getKInfoProcs.

BenBE avatar Sep 13 '20 11:09 BenBE

I tried to run with --leak-check=full when I saw that last error message, so here is the result of an overnight run (with no crash).

❯ valgrind  --leak-check=full htop
==12590== Memcheck, a memory error detector
==12590== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==12590== Using Valgrind-3.17.0.GIT and LibVEX; rerun with -h for copyright info
==12590== Command: htop
==12590==
--12590-- UNKNOWN host message [id 204, to mach_host_self(), reply 0x707]
--12590-- UNKNOWN host message [id 204, to mach_host_self(), reply 0x707] (repeated 2 times)
--12590-- UNKNOWN host message [id 216, to mach_host_self(), reply 0x707]
==12590==
==12590== HEAP SUMMARY:
==12590==     in use at exit: 566,198 bytes in 560 blocks
==12590==   total heap usage: 72,034 allocs, 71,474 frees, 4,320,055,295 bytes allocated
==12590==
==12590== 13 bytes in 1 blocks are definitely lost in loss record 9 of 254
==12590==    at 0x100139545: malloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100DDBCE5: strdup (in /usr/lib/system/libsystem_c.dylib)
==12590==    by 0x1009A7883: update_getenv (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A73E8: _nc_first_db (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009AE4E2: _nc_read_entry2 (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A9866: _nc_setup_tinfo (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A9C04: _nc_setupterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x100995447: newterm_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009957D2: newterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009920CB: initscr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x100003E26: CRT_init (in /usr/local/bin/htop)
==12590==    by 0x100005C62: main (in /usr/local/bin/htop)
==12590==
==12590== 24 bytes in 1 blocks are possibly lost in loss record 23 of 254
==12590==    at 0x100139545: malloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100AFDC37: realizeClassWithoutSwift(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFF870: adjustCustomFlagsForMethodChange(objc_class*, method_t*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100B025E8: property_copyAttributeValue (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100B02346: free_class(objc_class*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AECFCC: objc_msgLookup (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x10002826B: dyld::notifySingle(dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*) (in /usr/lib/dyld)
==12590==    by 0x10003BFE8: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A0B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A0DD: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==12590==    by 0x100028661: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==12590==
==12590== 25 bytes in 1 blocks are definitely lost in loss record 26 of 254
==12590==    at 0x100139545: malloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x1009A7BB7: _nc_home_terminfo (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A73D3: _nc_first_db (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009AE4E2: _nc_read_entry2 (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A9866: _nc_setup_tinfo (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A9C04: _nc_setupterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x100995447: newterm_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009957D2: newterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009920CB: initscr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x100003E26: CRT_init (in /usr/local/bin/htop)
==12590==    by 0x100005C62: main (in /usr/local/bin/htop)
==12590==
==12590== 32 bytes in 1 blocks are possibly lost in loss record 120 of 254
==12590==    at 0x100139545: malloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100AFDBE5: realizeClassWithoutSwift(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFF870: adjustCustomFlagsForMethodChange(objc_class*, method_t*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100B0257B: property_copyAttributeValue (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100B02346: free_class(objc_class*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AECFCC: objc_msgLookup (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x10002826B: dyld::notifySingle(dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*) (in /usr/lib/dyld)
==12590==    by 0x10003BFE8: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A0B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A0DD: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==12590==    by 0x100028661: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==12590==
==12590== 32 bytes in 1 blocks are possibly lost in loss record 121 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100AFE5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFE6C6: objc_class::mangledName() (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFE4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AEFE98: objc_initializeClassPair (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AF02DD: objc_registerClassPair (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x1002420E5: __CFInitialize (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12590==    by 0x10024150F: ??? (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12590==    by 0x100040F62: ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12590==    by 0x1000415D2: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12590==    by 0x10003BFFA: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==
==12590== 32 bytes in 1 blocks are possibly lost in loss record 122 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100AFE5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFE6C6: objc_class::mangledName() (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFE69F: objc_class::mangledName() (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFE4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AEFE98: objc_initializeClassPair (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x10024158D: ??? (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12590==    by 0x100040F62: ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12590==    by 0x1000415D2: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12590==    by 0x10003BFFA: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==
==12590== 32 bytes in 1 blocks are possibly lost in loss record 123 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100AFE5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFE6C6: objc_class::mangledName() (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFE4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AEFE98: objc_initializeClassPair (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AF02DD: objc_registerClassPair (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x1002420E5: __CFInitialize (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12590==    by 0x1002415E9: ??? (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12590==    by 0x100040F62: ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12590==    by 0x1000415D2: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12590==    by 0x10003BFFA: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==
==12590== 32 bytes in 1 blocks are possibly lost in loss record 124 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100AFE5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFE4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AEEC43: allocateBuckets(unsigned int) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AEE398: lookUpImpOrForward (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x10108BF99: _xpc_payload_alloc (in /usr/lib/system/libxpc.dylib)
==12590==    by 0x10108BE65: _xpc_payload_create_from_mach_msg (in /usr/lib/system/libxpc.dylib)
==12590==    by 0x10108BD22: xpc_receive_mach_msg (in /usr/lib/system/libxpc.dylib)
==12590==    by 0x1010A5B8A: _xpc_pipe_routine (in /usr/lib/system/libxpc.dylib)
==12590==    by 0x10108AB61: xpc_pipe_routine_with_flags (in /usr/lib/system/libxpc.dylib)
==12590==    by 0x10108A9E1: _xpc_interface_routine (in /usr/lib/system/libxpc.dylib)
==12590==    by 0x10108CCE7: bootstrap_look_up3 (in /usr/lib/system/libxpc.dylib)
==12590==
==12590== 32 bytes in 1 blocks are possibly lost in loss record 125 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100AFE5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFE4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFDFF3: realizeClassWithoutSwift(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AEED44: -[NSObject dealloc] (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AEE398: lookUpImpOrForward (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x10108BF99: _xpc_payload_alloc (in /usr/lib/system/libxpc.dylib)
==12590==    by 0x10108BE65: _xpc_payload_create_from_mach_msg (in /usr/lib/system/libxpc.dylib)
==12590==    by 0x10108BD22: xpc_receive_mach_msg (in /usr/lib/system/libxpc.dylib)
==12590==    by 0x1010A5B8A: _xpc_pipe_routine (in /usr/lib/system/libxpc.dylib)
==12590==    by 0x10108AB61: xpc_pipe_routine_with_flags (in /usr/lib/system/libxpc.dylib)
==12590==    by 0x10108A9E1: _xpc_interface_routine (in /usr/lib/system/libxpc.dylib)
==12590==
==12590== 48 bytes in 1 blocks are possibly lost in loss record 137 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100AFD99E: realizeClassMaybeSwiftMaybeRelock(objc_class*, mutex_tt<false>&, bool) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFF99D: adjustCustomFlagsForMethodChange(objc_class*, method_t*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100B0257B: property_copyAttributeValue (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100B02346: free_class(objc_class*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AECFCC: objc_msgLookup (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x10002826B: dyld::notifySingle(dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*) (in /usr/lib/dyld)
==12590==    by 0x10003BFE8: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A0B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A0DD: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==12590==    by 0x100028661: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==12590==
==12590== 48 bytes in 1 blocks are possibly lost in loss record 138 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100AFD99E: realizeClassMaybeSwiftMaybeRelock(objc_class*, mutex_tt<false>&, bool) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AFF99D: adjustCustomFlagsForMethodChange(objc_class*, method_t*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100B025E8: property_copyAttributeValue (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100B02346: free_class(objc_class*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AECFCC: objc_msgLookup (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x10002826B: dyld::notifySingle(dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*) (in /usr/lib/dyld)
==12590==    by 0x10003BFE8: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A0B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A0DD: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==12590==    by 0x100028661: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==12590==
==12590== 56 bytes in 1 blocks are possibly lost in loss record 139 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100FA3190: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100FA33A0: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100DD59ED: notify_register_tz (in /usr/lib/system/libsystem_c.dylib)
==12590==    by 0x100DD535F: tzsetwall_basic (in /usr/lib/system/libsystem_c.dylib)
==12590==    by 0x100DD71A3: localtime_r (in /usr/lib/system/libsystem_c.dylib)
==12590==    by 0x10001144E: DarwinProcess_setStartTime (in /usr/local/bin/htop)
==12590==    by 0x1000116A2: DarwinProcess_setFromKInfoProc (in /usr/local/bin/htop)
==12590==    by 0x100011F9E: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12590==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12590==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12590==
==12590== 56 bytes in 1 blocks are possibly lost in loss record 140 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100FA3190: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100FA33A0: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100E89901: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==
==12590== 56 bytes in 1 blocks are possibly lost in loss record 141 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100FA3190: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100FA33A0: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100E8991E: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==
==12590== 56 bytes in 1 blocks are possibly lost in loss record 142 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100FA3190: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100FA33A0: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100E8993B: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==
==12590== 56 bytes in 1 blocks are possibly lost in loss record 143 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100FA3190: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100FA33A0: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100E89958: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==
==12590== 56 bytes in 1 blocks are possibly lost in loss record 144 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100FA3190: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100FA33A0: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x10104F9F3: _os_trace_prefs_and_mode_refresh_slow (in /usr/lib/system/libsystem_trace.dylib)
==12590==    by 0x10104E78A: _os_activity_create_addr (in /usr/lib/system/libsystem_trace.dylib)
==12590==    by 0x100E8A23A: ds_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89CBB: si_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89D9E: search_item_bynumber (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89CF6: search_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89CBB: si_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E88FBE: getpwuid (in /usr/lib/system/libsystem_info.dylib)
==12590==
==12590== 66 bytes in 1 blocks are definitely lost in loss record 163 of 254
==12590==    at 0x100139EE6: realloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x1009A790E: _nc_doalloc (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009AB720: tparam_internal (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009AB2D1: tparm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x100993C21: _nc_mvcur_init_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009956A5: newterm_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009957D2: newterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009920CB: initscr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x100003E26: CRT_init (in /usr/local/bin/htop)
==12590==    by 0x100005C62: main (in /usr/local/bin/htop)
==12590==
==12590== 110 bytes in 1 blocks are definitely lost in loss record 185 of 254
==12590==    at 0x100139EE6: realloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x1009A790E: _nc_doalloc (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009AAE81: _nc_tparm_analyze (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009AB367: tparam_internal (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009AB2D1: tparm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x10098DCB9: set_foreground_color (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x10098E9E6: _nc_do_color_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A3453: vid_puts_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A02AA: PutAttrChar (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x10099FF45: PutChar (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A0CF2: EmitRange (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A0810: PutRange (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==
==12590== 112 bytes in 1 blocks are possibly lost in loss record 186 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100FA33CC: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100DD59ED: notify_register_tz (in /usr/lib/system/libsystem_c.dylib)
==12590==    by 0x100DD535F: tzsetwall_basic (in /usr/lib/system/libsystem_c.dylib)
==12590==    by 0x100DD71A3: localtime_r (in /usr/lib/system/libsystem_c.dylib)
==12590==    by 0x10001144E: DarwinProcess_setStartTime (in /usr/local/bin/htop)
==12590==    by 0x1000116A2: DarwinProcess_setFromKInfoProc (in /usr/local/bin/htop)
==12590==    by 0x100011F9E: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12590==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12590==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12590==
==12590== 112 bytes in 1 blocks are possibly lost in loss record 187 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100FA33CC: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100E89901: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12590==
==12590== 112 bytes in 1 blocks are possibly lost in loss record 188 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100FA33CC: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100E8991E: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12590==
==12590== 112 bytes in 1 blocks are possibly lost in loss record 189 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100FA33CC: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100E8993B: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12590==
==12590== 112 bytes in 1 blocks are possibly lost in loss record 190 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100FA33CC: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100E89958: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12590==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12590==
==12590== 112 bytes in 1 blocks are possibly lost in loss record 191 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100FA33CC: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12590==    by 0x10104F9F3: _os_trace_prefs_and_mode_refresh_slow (in /usr/lib/system/libsystem_trace.dylib)
==12590==    by 0x10104E78A: _os_activity_create_addr (in /usr/lib/system/libsystem_trace.dylib)
==12590==    by 0x100E8A23A: ds_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89CBB: si_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89D9E: search_item_bynumber (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89CF6: search_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E89CBB: si_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x100E88FBE: getpwuid (in /usr/lib/system/libsystem_info.dylib)
==12590==    by 0x10000D677: UsersTable_getRef (in /usr/local/bin/htop)
==12590==
==12590== 154 (32 direct, 122 indirect) bytes in 1 blocks are definitely lost in loss record 200 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x1009A74D0: _nc_first_db (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009AE4E2: _nc_read_entry2 (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A9866: _nc_setup_tinfo (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A9C04: _nc_setupterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x100995447: newterm_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009957D2: newterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009920CB: initscr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x100003E26: CRT_init (in /usr/local/bin/htop)
==12590==    by 0x100005C62: main (in /usr/local/bin/htop)
==12590==
==12590== 1,040 bytes in 1 blocks are possibly lost in loss record 232 of 254
==12590==    at 0x1001397BA: malloc_zone_malloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x100AEB0B5: getProtocol(char const*) (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x100AF035E: objc_registerClassPair (in /usr/lib/libobjc.A.dylib)
==12590==    by 0x1002420E5: __CFInitialize (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12590==    by 0x10024163F: ??? (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12590==    by 0x100040F62: ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12590==    by 0x1000415D2: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12590==    by 0x10003BFFA: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A0B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12590==    by 0x10003A153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==12590==
==12590== 3,584 bytes in 1 blocks are definitely lost in loss record 242 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x1009A3DF9: _nc_init_wacs (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x100999563: _nc_setupscreen_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x10099548A: newterm_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009957D2: newterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009920CB: initscr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x100003E26: CRT_init (in /usr/local/bin/htop)
==12590==    by 0x100005C62: main (in /usr/local/bin/htop)
==12590==
==12590== 7,952 bytes in 1 blocks are definitely lost in loss record 246 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x1009A686F: _nc_build_names (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A6F91: _nc_find_type_entry (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009AAAFA: tigetflag_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009A40BF: assume_default_colors_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x10000406F: CRT_init (in /usr/local/bin/htop)
==12590==    by 0x100005C62: main (in /usr/local/bin/htop)
==12590==
==12590== 379,181 (1,568 direct, 377,613 indirect) bytes in 1 blocks are definitely lost in loss record 254 of 254
==12590==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12590==    by 0x1009A9F49: new_prescr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009957C1: newterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x1009920CB: initscr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12590==    by 0x100003E26: CRT_init (in /usr/local/bin/htop)
==12590==    by 0x100005C62: main (in /usr/local/bin/htop)
==12590==
==12590== LEAK SUMMARY:
==12590==    definitely lost: 13,350 bytes in 8 blocks
==12590==    indirectly lost: 377,735 bytes in 177 blocks
==12590==      possibly lost: 2,360 bytes in 22 blocks
==12590==    still reachable: 136,390 bytes in 149 blocks
==12590==                       of which reachable via heuristic:
==12590==                         newarray           : 56 bytes in 1 blocks
==12590==         suppressed: 36,363 bytes in 204 blocks
==12590== Reachable blocks (those to which a pointer was found) are not shown.
==12590== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==12590==
==12590== For lists of detected and suppressed errors, rerun with: -s
==12590== ERROR SUMMARY: 30 errors from 30 contexts (suppressed: 14 from 13)
~                                                                                                  took 10h 49m 24s

ReagentX avatar Sep 13 '20 13:09 ReagentX

Thank you for this trace. I'll have a look if I see anything strange.

Many of the stack traces are quite short and miss the root of the call tree. It'd be good, if there was a chance to get the traces with longer backtrace paths (In particular the libsystem_notify based traces). Please re-run with --num-callers=50 so that all presented leaks also include some source inside htop.

The list of frames that may cause issues over time (that I could clearly see from the previous trace) are loss records 139, 186 and 191.

BenBE avatar Sep 13 '20 13:09 BenBE

❯ valgrind  --leak-check=full --num-callers=50 htop
==12333== Memcheck, a memory error detector
==12333== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==12333== Using Valgrind-3.17.0.GIT and LibVEX; rerun with -h for copyright info
==12333== Command: htop
==12333==
--12333-- UNKNOWN host message [id 204, to mach_host_self(), reply 0x707]
--12333-- UNKNOWN host message [id 204, to mach_host_self(), reply 0x707] (repeated 2 times)
--12333-- UNKNOWN host message [id 216, to mach_host_self(), reply 0x707]
==12333==
==12333== HEAP SUMMARY:
==12333==     in use at exit: 566,154 bytes in 559 blocks
==12333==   total heap usage: 18,686 allocs, 18,127 frees, 153,186,170 bytes allocated
==12333==
==12333== 13 bytes in 1 blocks are definitely lost in loss record 9 of 253
==12333==    at 0x100139545: malloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100DDBCE5: strdup (in /usr/lib/system/libsystem_c.dylib)
==12333==    by 0x1009A7883: update_getenv (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A73E8: _nc_first_db (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009AE4E2: _nc_read_entry2 (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A9866: _nc_setup_tinfo (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A9C04: _nc_setupterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x100995447: newterm_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009957D2: newterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009920CB: initscr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x100003E26: CRT_init (in /usr/local/bin/htop)
==12333==    by 0x100005C62: main (in /usr/local/bin/htop)
==12333==
==12333== 24 bytes in 1 blocks are possibly lost in loss record 23 of 253
==12333==    at 0x100139545: malloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100AFDC37: realizeClassWithoutSwift(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFF870: adjustCustomFlagsForMethodChange(objc_class*, method_t*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100B025E8: property_copyAttributeValue (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100B02346: free_class(objc_class*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AECFCC: objc_msgLookup (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x10002826B: dyld::notifySingle(dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*) (in /usr/lib/dyld)
==12333==    by 0x10003BFE8: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A0B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A0DD: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==12333==    by 0x100028661: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==12333==    by 0x10002DBB9: dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027226: dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027024: _dyld_start (in /usr/lib/dyld)
==12333==
==12333== 25 bytes in 1 blocks are definitely lost in loss record 26 of 253
==12333==    at 0x100139545: malloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x1009A7BB7: _nc_home_terminfo (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A73D3: _nc_first_db (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009AE4E2: _nc_read_entry2 (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A9866: _nc_setup_tinfo (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A9C04: _nc_setupterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x100995447: newterm_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009957D2: newterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009920CB: initscr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x100003E26: CRT_init (in /usr/local/bin/htop)
==12333==    by 0x100005C62: main (in /usr/local/bin/htop)
==12333==
==12333== 32 bytes in 1 blocks are possibly lost in loss record 120 of 253
==12333==    at 0x100139545: malloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100AFDBE5: realizeClassWithoutSwift(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFF870: adjustCustomFlagsForMethodChange(objc_class*, method_t*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100B0257B: property_copyAttributeValue (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100B02346: free_class(objc_class*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AECFCC: objc_msgLookup (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x10002826B: dyld::notifySingle(dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*) (in /usr/lib/dyld)
==12333==    by 0x10003BFE8: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A0B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A0DD: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==12333==    by 0x100028661: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==12333==    by 0x10002DBB9: dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027226: dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027024: _dyld_start (in /usr/lib/dyld)
==12333==
==12333== 32 bytes in 1 blocks are possibly lost in loss record 121 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100AFE5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFE6C6: objc_class::mangledName() (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFE4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AEFE98: objc_initializeClassPair (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AF02DD: objc_registerClassPair (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x1002420E5: __CFInitialize (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12333==    by 0x10024150F: ??? (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12333==    by 0x100040F62: ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12333==    by 0x1000415D2: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12333==    by 0x10003BFFA: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A0B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==12333==    by 0x1000286A7: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==12333==    by 0x10002DBB9: dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027226: dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027024: _dyld_start (in /usr/lib/dyld)
==12333==
==12333== 32 bytes in 1 blocks are possibly lost in loss record 122 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100AFE5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFE6C6: objc_class::mangledName() (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFE69F: objc_class::mangledName() (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFE4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AEFE98: objc_initializeClassPair (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x10024158D: ??? (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12333==    by 0x100040F62: ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12333==    by 0x1000415D2: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12333==    by 0x10003BFFA: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A0B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==12333==    by 0x1000286A7: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==12333==    by 0x10002DBB9: dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027226: dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027024: _dyld_start (in /usr/lib/dyld)
==12333==
==12333== 32 bytes in 1 blocks are possibly lost in loss record 123 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100AFE5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFE6C6: objc_class::mangledName() (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFE4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AEFE98: objc_initializeClassPair (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AF02DD: objc_registerClassPair (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x1002420E5: __CFInitialize (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12333==    by 0x1002415E9: ??? (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12333==    by 0x100040F62: ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12333==    by 0x1000415D2: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12333==    by 0x10003BFFA: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A0B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==12333==    by 0x1000286A7: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==12333==    by 0x10002DBB9: dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027226: dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027024: _dyld_start (in /usr/lib/dyld)
==12333==
==12333== 32 bytes in 1 blocks are possibly lost in loss record 124 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100AFE5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFE4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AEEC43: allocateBuckets(unsigned int) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AEE398: lookUpImpOrForward (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x10108BF99: _xpc_payload_alloc (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x10108BE65: _xpc_payload_create_from_mach_msg (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x10108BD22: xpc_receive_mach_msg (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x1010A5B8A: _xpc_pipe_routine (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x10108AB61: xpc_pipe_routine_with_flags (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x10108A9E1: _xpc_interface_routine (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x10108CCE7: bootstrap_look_up3 (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x10108CB19: bootstrap_look_up2 (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x100FA2301: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100FA229D: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100FA0597: notify_monitor_file (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9D7E5: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100DD59ED: notify_register_tz (in /usr/lib/system/libsystem_c.dylib)
==12333==    by 0x100DD535F: tzsetwall_basic (in /usr/lib/system/libsystem_c.dylib)
==12333==    by 0x100DD71A3: localtime_r (in /usr/lib/system/libsystem_c.dylib)
==12333==    by 0x10001144E: DarwinProcess_setStartTime (in /usr/local/bin/htop)
==12333==    by 0x1000116A2: DarwinProcess_setFromKInfoProc (in /usr/local/bin/htop)
==12333==    by 0x100011F9E: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 32 bytes in 1 blocks are possibly lost in loss record 125 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100AFE5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFE4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFDFF3: realizeClassWithoutSwift(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AEED44: -[NSObject dealloc] (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AEE398: lookUpImpOrForward (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x10108BF99: _xpc_payload_alloc (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x10108BE65: _xpc_payload_create_from_mach_msg (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x10108BD22: xpc_receive_mach_msg (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x1010A5B8A: _xpc_pipe_routine (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x10108AB61: xpc_pipe_routine_with_flags (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x10108A9E1: _xpc_interface_routine (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x10108CCE7: bootstrap_look_up3 (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x10108CB19: bootstrap_look_up2 (in /usr/lib/system/libxpc.dylib)
==12333==    by 0x100FA2301: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100FA229D: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100FA0597: notify_monitor_file (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9D7E5: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100DD59ED: notify_register_tz (in /usr/lib/system/libsystem_c.dylib)
==12333==    by 0x100DD535F: tzsetwall_basic (in /usr/lib/system/libsystem_c.dylib)
==12333==    by 0x100DD71A3: localtime_r (in /usr/lib/system/libsystem_c.dylib)
==12333==    by 0x10001144E: DarwinProcess_setStartTime (in /usr/local/bin/htop)
==12333==    by 0x1000116A2: DarwinProcess_setFromKInfoProc (in /usr/local/bin/htop)
==12333==    by 0x100011F9E: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 48 bytes in 1 blocks are possibly lost in loss record 136 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100AFD99E: realizeClassMaybeSwiftMaybeRelock(objc_class*, mutex_tt<false>&, bool) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFF99D: adjustCustomFlagsForMethodChange(objc_class*, method_t*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100B0257B: property_copyAttributeValue (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100B02346: free_class(objc_class*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AECFCC: objc_msgLookup (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x10002826B: dyld::notifySingle(dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*) (in /usr/lib/dyld)
==12333==    by 0x10003BFE8: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A0B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A0DD: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==12333==    by 0x100028661: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==12333==    by 0x10002DBB9: dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027226: dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027024: _dyld_start (in /usr/lib/dyld)
==12333==
==12333== 48 bytes in 1 blocks are possibly lost in loss record 137 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100AFD99E: realizeClassMaybeSwiftMaybeRelock(objc_class*, mutex_tt<false>&, bool) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AFF99D: adjustCustomFlagsForMethodChange(objc_class*, method_t*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100B025E8: property_copyAttributeValue (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100B02346: free_class(objc_class*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AECFCC: objc_msgLookup (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x10002826B: dyld::notifySingle(dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*) (in /usr/lib/dyld)
==12333==    by 0x10003BFE8: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A0B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A0DD: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==12333==    by 0x100028661: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==12333==    by 0x10002DBB9: dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027226: dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027024: _dyld_start (in /usr/lib/dyld)
==12333==
==12333== 56 bytes in 1 blocks are possibly lost in loss record 138 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100FA3190: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100FA33A0: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100DD59ED: notify_register_tz (in /usr/lib/system/libsystem_c.dylib)
==12333==    by 0x100DD535F: tzsetwall_basic (in /usr/lib/system/libsystem_c.dylib)
==12333==    by 0x100DD71A3: localtime_r (in /usr/lib/system/libsystem_c.dylib)
==12333==    by 0x10001144E: DarwinProcess_setStartTime (in /usr/local/bin/htop)
==12333==    by 0x1000116A2: DarwinProcess_setFromKInfoProc (in /usr/local/bin/htop)
==12333==    by 0x100011F9E: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 56 bytes in 1 blocks are possibly lost in loss record 139 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100FA3190: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100FA33A0: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100E89901: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E892B8: si_module_static_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E8902D: si_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E88FB3: getpwuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x10000D677: UsersTable_getRef (in /usr/local/bin/htop)
==12333==    by 0x10001200A: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 56 bytes in 1 blocks are possibly lost in loss record 140 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100FA3190: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100FA33A0: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100E8991E: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E892B8: si_module_static_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E8902D: si_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E88FB3: getpwuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x10000D677: UsersTable_getRef (in /usr/local/bin/htop)
==12333==    by 0x10001200A: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 56 bytes in 1 blocks are possibly lost in loss record 141 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100FA3190: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100FA33A0: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100E8993B: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E892B8: si_module_static_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E8902D: si_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E88FB3: getpwuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x10000D677: UsersTable_getRef (in /usr/local/bin/htop)
==12333==    by 0x10001200A: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 56 bytes in 1 blocks are possibly lost in loss record 142 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100FA3190: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100FA33A0: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100E89958: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E892B8: si_module_static_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E8902D: si_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E88FB3: getpwuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x10000D677: UsersTable_getRef (in /usr/local/bin/htop)
==12333==    by 0x10001200A: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 56 bytes in 1 blocks are possibly lost in loss record 143 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100FA3190: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100FA33A0: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x10104F9F3: _os_trace_prefs_and_mode_refresh_slow (in /usr/lib/system/libsystem_trace.dylib)
==12333==    by 0x10104E78A: _os_activity_create_addr (in /usr/lib/system/libsystem_trace.dylib)
==12333==    by 0x100E8A23A: ds_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89CBB: si_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89D9E: search_item_bynumber (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89CF6: search_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89CBB: si_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E88FBE: getpwuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x10000D677: UsersTable_getRef (in /usr/local/bin/htop)
==12333==    by 0x10001200A: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 66 bytes in 1 blocks are definitely lost in loss record 162 of 253
==12333==    at 0x100139EE6: realloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x1009A790E: _nc_doalloc (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009AB720: tparam_internal (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009AB2D1: tparm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x100993C21: _nc_mvcur_init_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009956A5: newterm_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009957D2: newterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009920CB: initscr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x100003E26: CRT_init (in /usr/local/bin/htop)
==12333==    by 0x100005C62: main (in /usr/local/bin/htop)
==12333==
==12333== 110 bytes in 1 blocks are definitely lost in loss record 184 of 253
==12333==    at 0x100139EE6: realloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x1009A790E: _nc_doalloc (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009AAE81: _nc_tparm_analyze (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009AB367: tparam_internal (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009AB2D1: tparm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x10098DCB9: set_foreground_color (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x10098E9E6: _nc_do_color_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A3453: vid_puts_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A02AA: PutAttrChar (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x10099FF45: PutChar (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A0CF2: EmitRange (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A0810: PutRange (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x10099E29A: TransformLine (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x10099CD3F: doupdate_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x100996D07: wrefresh (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009910B3: _nc_wgetch (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x10099196F: wgetch (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x10000AEAB: ScreenManager_run (in /usr/local/bin/htop)
==12333==    by 0x100005D4C: main (in /usr/local/bin/htop)
==12333==
==12333== 112 bytes in 1 blocks are possibly lost in loss record 185 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100FA33CC: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100DD59ED: notify_register_tz (in /usr/lib/system/libsystem_c.dylib)
==12333==    by 0x100DD535F: tzsetwall_basic (in /usr/lib/system/libsystem_c.dylib)
==12333==    by 0x100DD71A3: localtime_r (in /usr/lib/system/libsystem_c.dylib)
==12333==    by 0x10001144E: DarwinProcess_setStartTime (in /usr/local/bin/htop)
==12333==    by 0x1000116A2: DarwinProcess_setFromKInfoProc (in /usr/local/bin/htop)
==12333==    by 0x100011F9E: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 112 bytes in 1 blocks are possibly lost in loss record 186 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100FA33CC: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100E89901: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E892B8: si_module_static_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E8902D: si_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E88FB3: getpwuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x10000D677: UsersTable_getRef (in /usr/local/bin/htop)
==12333==    by 0x10001200A: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 112 bytes in 1 blocks are possibly lost in loss record 187 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100FA33CC: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100E8991E: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E892B8: si_module_static_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E8902D: si_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E88FB3: getpwuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x10000D677: UsersTable_getRef (in /usr/local/bin/htop)
==12333==    by 0x10001200A: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 112 bytes in 1 blocks are possibly lost in loss record 188 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100FA33CC: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100E8993B: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E892B8: si_module_static_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E8902D: si_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E88FB3: getpwuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x10000D677: UsersTable_getRef (in /usr/local/bin/htop)
==12333==    by 0x10001200A: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 112 bytes in 1 blocks are possibly lost in loss record 189 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100FA33CC: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100E89958: __si_module_static_ds_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E89838: si_module_static_ds (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89644: si_module_config_modules_for_category (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E893B4: __si_module_static_search_block_invoke (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100C47657: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100C487DD: _dispatch_once_callout (in /usr/lib/system/libdispatch.dylib)
==12333==    by 0x100E892B8: si_module_static_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E890E3: si_module_with_name (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E8902D: si_search (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E88FB3: getpwuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x10000D677: UsersTable_getRef (in /usr/local/bin/htop)
==12333==    by 0x10001200A: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 112 bytes in 1 blocks are possibly lost in loss record 190 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100FA33CC: _notify_fork_child (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x100F9DA6B: notify_register_check (in /usr/lib/system/libsystem_notify.dylib)
==12333==    by 0x10104F9F3: _os_trace_prefs_and_mode_refresh_slow (in /usr/lib/system/libsystem_trace.dylib)
==12333==    by 0x10104E78A: _os_activity_create_addr (in /usr/lib/system/libsystem_trace.dylib)
==12333==    by 0x100E8A23A: ds_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89CBB: si_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89D9E: search_item_bynumber (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89CF6: search_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E89CBB: si_user_byuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x100E88FBE: getpwuid (in /usr/lib/system/libsystem_info.dylib)
==12333==    by 0x10000D677: UsersTable_getRef (in /usr/local/bin/htop)
==12333==    by 0x10001200A: ProcessList_goThroughEntries (in /usr/local/bin/htop)
==12333==    by 0x10000A698: ProcessList_scan (in /usr/local/bin/htop)
==12333==    by 0x100005D1A: main (in /usr/local/bin/htop)
==12333==
==12333== 154 (32 direct, 122 indirect) bytes in 1 blocks are definitely lost in loss record 199 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x1009A74D0: _nc_first_db (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009AE4E2: _nc_read_entry2 (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A9866: _nc_setup_tinfo (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A9C04: _nc_setupterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x100995447: newterm_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009957D2: newterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009920CB: initscr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x100003E26: CRT_init (in /usr/local/bin/htop)
==12333==    by 0x100005C62: main (in /usr/local/bin/htop)
==12333==
==12333== 1,040 bytes in 1 blocks are possibly lost in loss record 231 of 253
==12333==    at 0x1001397BA: malloc_zone_malloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x100AEB0B5: getProtocol(char const*) (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x100AF035E: objc_registerClassPair (in /usr/lib/libobjc.A.dylib)
==12333==    by 0x1002420E5: __CFInitialize (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12333==    by 0x10024163F: ??? (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==12333==    by 0x100040F62: ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12333==    by 0x1000415D2: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==12333==    by 0x10003BFFA: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003BF65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A0B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==12333==    by 0x10003A153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==12333==    by 0x1000286A7: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==12333==    by 0x10002DBB9: dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027226: dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) (in /usr/lib/dyld)
==12333==    by 0x100027024: _dyld_start (in /usr/lib/dyld)
==12333==
==12333== 3,584 bytes in 1 blocks are definitely lost in loss record 241 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x1009A3DF9: _nc_init_wacs (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x100999563: _nc_setupscreen_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x10099548A: newterm_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009957D2: newterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009920CB: initscr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x100003E26: CRT_init (in /usr/local/bin/htop)
==12333==    by 0x100005C62: main (in /usr/local/bin/htop)
==12333==
==12333== 7,952 bytes in 1 blocks are definitely lost in loss record 245 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x1009A686F: _nc_build_names (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A6F91: _nc_find_type_entry (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009AAAFA: tigetflag_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009A40BF: assume_default_colors_sp (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x10000406F: CRT_init (in /usr/local/bin/htop)
==12333==    by 0x100005C62: main (in /usr/local/bin/htop)
==12333==
==12333== 379,181 (1,568 direct, 377,613 indirect) bytes in 1 blocks are definitely lost in loss record 253 of 253
==12333==    at 0x100139BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-6049595/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==12333==    by 0x1009A9F49: new_prescr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009957C1: newterm (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x1009920CB: initscr (in /usr/local/Cellar/ncurses/6.2/lib/libncursesw.6.dylib)
==12333==    by 0x100003E26: CRT_init (in /usr/local/bin/htop)
==12333==    by 0x100005C62: main (in /usr/local/bin/htop)
==12333==
==12333== LEAK SUMMARY:
==12333==    definitely lost: 13,350 bytes in 8 blocks
==12333==    indirectly lost: 377,735 bytes in 177 blocks
==12333==      possibly lost: 2,360 bytes in 22 blocks
==12333==    still reachable: 136,346 bytes in 148 blocks
==12333==                       of which reachable via heuristic:
==12333==                         newarray           : 56 bytes in 1 blocks
==12333==         suppressed: 36,363 bytes in 204 blocks
==12333== Reachable blocks (those to which a pointer was found) are not shown.
==12333== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==12333==
==12333== For lists of detected and suppressed errors, rerun with: -s
==12333== ERROR SUMMARY: 30 errors from 30 contexts (suppressed: 14 from 13)

ReagentX avatar Sep 13 '20 16:09 ReagentX

Putting the leaks in CRT_init aside (internal to ncurses, which would require a special ncurses debug build to properly free) I only see calls to getpwuid and localtime_r being made; unfortunately in a routine that is called once for every refresh. The other category of leaks seems to be from within the dynamic loader; which shouldn't be too much of a hassle, if these aren't called repeatedly (which I assume they are likely not).

The value of getpwuid probably can be cached, thus avoiding the leak there to some degree. For the localtime_r this is somewhat more difficult and can only be worked around by avoiding it altogether (if this really constitutes a repeated leak.

Unfortunately I don't have any MacOS devices, thus I can't test this myself. :(

BenBE avatar Sep 13 '20 17:09 BenBE

@ReagentX Sorry for the delay. Can you try if the patch in #124 has any effect on the speed of the resource exhaustion (only addresses the getpwuid leak)?

In addition you may try to replace (calls to localtime_r+strftime) in https://github.com/htop-dev/htop/blob/master/darwin/DarwinProcess.c#L57-L58 by

   snprintf(proc->starttime_show, sizeof(proc->starttime_show), "N/A");

for testing.

BenBE avatar Sep 16 '20 20:09 BenBE

Can someone with access to a Darwin machine compile htop with address sanitizers:

./autogen.sh
./configure CC=clang CFLAGS="-O1 -g -fsanitize=address -fno-omit-frame-pointer"
make

And then run htop via ASAN_OPTIONS=detect_leaks=1 ./htop for a couple hours, then exit and look for leak reports.

cgzones avatar Oct 06 '20 16:10 cgzones

@cgzones I tried that, but AddressSanitizer's detect_leaks doesn't seem to be supported on macOS.

$ ./autogen.sh
$ ./configure CC=clang CFLAGS="-O1 -g -fsanitize=address -fno-omit-frame-pointer"
$ make
$ ASAN_OPTIONS=detect_leaks=1 ./htop
==5375==AddressSanitizer: detect_leaks is not supported on this platform.
fish: 'env ASAN_OPTIONS=detect_leaks=1…' terminated by signal SIGABRT (Abort)

Maybe, this issue is related.

htop master branch 5cc20e7cb27800166499d90ca457e17097adb3f4 macOS 11.0 Beta 9 (20A5384c) Xcode 12.2 Beta 2 (12B5025f)

$ clang --version
Apple clang version 12.0.0 (clang-1200.0.32.6)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

kkebo avatar Oct 13 '20 05:10 kkebo

I've noticed that a crash happens every time lots of processes are spawend and killed again.

I have a project where I have to run Karma test runner which spawns different browsers to test JavaScript code. For me, when I start Karma, htop crashes immediately after all the browsers (Firefox, Chrome, Safari, Opera) were started, event when I restart htop before starting Karma.

See this branch if you want to test it yourself. You'll need to run npm install to install dependencies and npm test to start the tests.

BendingBender avatar Oct 16 '20 16:10 BendingBender

Just contributing, as this has happened more and more lately (or I'm noticing it more?).

I'll start a sudo htop in the morning and it'll crash by noon. I've had it do another three times today, and a couple times yesterday. I've not been doing anything particularly intensive on the disk, memory, CPU or GPU. Haven't noticed any patterns (but it's often in the background in iTerm2 through tmux anyway).

Unable to get kinfo_procs: Cannot allocate memory

Happy to answer questions to find a solution sooner!

vSanjo avatar Nov 17 '20 07:11 vSanjo

Happy to answer questions to find a solution sooner!

Can you have a look at memory leak detection tool for MacOS and check if you can find something with that that could hint to the issue? Build htop with debug symbols for meaningful output.

Also: Is there a difference in the time it takes for htop to cause this error if running with and without root privileges? Does it happen without root perms? time /path/to/locally/built/htop is a good way to check. Does the effect take less time to occur when it happened before in the same session? Does htop show anything strange (like an ever-increasing resource usage for its own process or some kernel thread)?

Can you check the hypothesis from https://github.com/htop-dev/htop/issues/118#issuecomment-710159828 by spawning/terminating large amounts of processes in quick succession (building large C programs with make -j 16 is a way to test).

Lastly (mostly for stats): Which MacOS version? Which CPU architecture?

BenBE avatar Nov 17 '20 08:11 BenBE

Just a though: Maybe the number of processes changes between https://github.com/htop-dev/htop/blob/b3b890f546e5054b4d9222c8efcef3a425a152ab/darwin/DarwinProcessList.c#L113 and https://github.com/htop-dev/htop/blob/b3b890f546e5054b4d9222c8efcef3a425a152ab/darwin/DarwinProcessList.c#L122, so the buffer processes is not large enough any-more?

Possible solution?

struct kinfo_proc* ProcessList_getKInfoProcs(size_t* count) {
   int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 };
   struct kinfo_proc* processes = NULL;

   int retries = 3;

   while (retries > 0) {
      retries--;

      size_t size = 0;
      if (sysctl(mib, 4, NULL, &size, NULL, 0) < 0) {
         CRT_fatalError("Unable to get size of kproc_infos");
      }

      struct kinfo_proc* tmp = xRealloc(processes, size);
      if (tmp == NULL) {
         CRT_fatalError("Out of memory for kproc_infos");
      }
      processes = tmp;

      if (sysctl(mib, 4, processes, &size, NULL, 0) == 0) {
         *count = size;
         return processes;
      }
   }

   CRT_fatalError("Unable to get kinfo_procs");
}

cgzones avatar Nov 17 '20 12:11 cgzones

That would at least explain the correlation with a busy system.

Is there any errno in addition that we could track? Also: Maybe only ever increase allocated memory size for the buffer, even if the returned required size decreased. Or overallocate by 20% and xRealloc to the proper size upon successful information retrieval.

General patch idea looks sane though …

BenBE avatar Nov 17 '20 12:11 BenBE

Can someone verify if #318 solves the issue?

cgzones avatar Nov 17 '20 14:11 cgzones

@BendingBender @vSanjo Could you please test the fix in #318? TIA.

BenBE avatar Nov 18 '20 13:11 BenBE

@BenBE, thanks for your replies, sorry for the delay in my own.

I'll try #318 for you now - but I will say I've had it happen when there aren't a lot of processes running either. I've noticed it fail when I come back from my lunch and the laptop is asleep.

I'll report back shortly.

--

Update 1.

My testing suite has been tmux open with two panes. In both, htop is running, sorted my CPU%, with my usual config. One is the new build in #318 , one is the previous build. They have been running fine all day under my usual work-load, no issues. Can't say I've seen much difference between the two (and I didn't expect to). I've built a few small C applications but nothing big (do you have recommendations, I don't often build my own software). Neither budged under that kind of load. I'll update again at the end of the work-day 4 hours from now.

vSanjo avatar Nov 23 '20 02:11 vSanjo

I've built a few small C applications but nothing big (do you have recommendations, I don't often build my own software).

You might want to try building the Linux kernel (~20 minute workout for your CPU, make allmodconfig) or OpenSSL (~2 minute workout for your CPU) with make -j 16 (don't forget that number when trying to build Linux!!!) to have as many processes start/stop in parallel as possible.

BenBE avatar Nov 23 '20 07:11 BenBE

Well good news!

I actually built OpenSSl with make -j, implying infinite processes.

And the old version of htop failed, but the new version passed with ease. I can replicate it easily too. When the tasks jump from around 510 to 600, the old version quickly fails. The new version has no problem continuing.

vSanjo avatar Nov 23 '20 07:11 vSanjo

Thanks @vSanjo for testing. #318 is now applied and should solve the issue. If anyone still sees the same error, please feel free to re-open.

cgzones avatar Nov 23 '20 16:11 cgzones

I could still observe this issue when executing a parallel build of gRPC and watching via htop 3.2.0:

Unable to get kinfo_procs: Cannot allocate memory

Maybe the code should allocate enough space for some more processes, say 1.5x or 2x? Could also increase the overallocation factor on each retry...

pschlan avatar Sep 05 '22 15:09 pschlan

@pschlan please give #1093 a try.

cgzones avatar Sep 20 '22 19:09 cgzones

@cgzones Thanks, looks good so far! (Rebuilt gRPC with -j a couple of thimes which triggered the issue before, and with the patch it wasn't reproducible.)

pschlan avatar Sep 23 '22 17:09 pschlan

@cgzones Thanks, looks good so far! (Rebuilt gRPC with -j a couple of thimes which triggered the issue before, and with the patch it wasn't reproducible.)

@pschlan Thank you for your feedback. I'll take this to go ahead with the merging.

BenBE avatar Sep 23 '22 18:09 BenBE