Ticket UUID: | 3cc1d91345c31934a269f3641bfd4ad4583695b6 | |||
Title: | duplicate calls to TclpFreeAllocCache() on thread exits | |||
Type: | Bug | Version: | 8.6.6, 8.5 | |
Submitter: | gustafn2 | Created on: | 2016-09-26 13:05:46 | |
Subsystem: | 49. Threading | Assigned To: | jan.nijtmans | |
Priority: | 8 | Severity: | Severe | |
Status: | Closed | Last Modified: | 2016-10-11 21:55:25 | |
Resolution: | Fixed | Closed By: | jan.nijtmans | |
Closed on: | 2016-10-11 21:55:25 | |||
Description: |
Tcl can crash during shutdown in multithreaded applications on systems using pthreads. This applies to e.g. Linux or Mac OS X when compiled without -DPUFIY. In Tcl (e.g. core-8-6-branch, AFIKT since "ever") the function TclpFreeAllocCache() is called twice during thread shutdowns, once via "manual" call indirectly via Tcl_FinalizeThread(), and once via pthreads. The automatic call happens, since Tcl registers TclpFreeAllocCache() with pthread_key_create(&key, TclpFreeAllocCache); The duplicated call itself is usually not harmful (but useless), but poses a serious problem when a multi-threaded C program registers a thread-shutdown callback via pthread_key_create(&key, CleanupFunction); where typically CleanupFunction() calls some Tcl-script and then Tcl_FinalizeThread(). In such cases, the order of calls of TclpFreeAllocCache() and CleanupFunction() is random, since http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_key_create.html states that the order of destructor calls is unspecified, when more than one destructor exists for a thread when it exits. After a call to TclpFreeAllocCache() no Tcl eval can be performed in this thread. Attempts are likely to crash. The problem is quite old but has intensified in tcl 8.6 due to the NRE machinery (TclNRAddCallback(), TclNREvalObjv()) which puts more stress on memory management. I would argue, that every larger threaded C program has to register a per-thread exit handler for per-thread cleanups. This happens as well in NaviSever/AOLserver, where tcl-based callbacks can be registered for interp destroys. One simple fix is to prevent the double invocation of TclpFreeAllocCache() and to rely on the manual call in Tcl_FinalizeThread(). This is actually nothing new and corresponds to current behavior under windows (there is not "automatic" call either). Note that the problem does not exist on unix systems when compiled with -DPURIFY, since in such cases, TclpFreeAllocCache() is never called. ================================================================== --- unix/tclUnixThrd.c +++ unix/tclUnixThrd.c @@ -743,11 +743,11 @@ TclpGetAllocCache(void) { if (!initialized) { pthread_mutex_lock(allocLockPtr); if (!initialized) { - pthread_key_create(&key, TclpFreeAllocCache); + pthread_key_create(&key, NULL); initialized = 1; } pthread_mutex_unlock(allocLockPtr); } return pthread_getspecific(key); ================================================================== Note, that the source code documentation was not correctly describing the current behavior either. The attached patch suggests some improvements. See below for evidence of crashes and the sketched behavior. The first listings shows printf-traces with thread-IDs, where the intersting lines of the thread with ID 7000003a6000 are marked with "A". It shows a case, where TclpFreeAllocCache() is called automatically via pthreads, before the thread exit handler NaviServer could call Tcl_FinalizeThread(). The second listing shows a backtrace of such a crash. Since TclpFreeAllocCache() was called before, tcl crashes in TclNREvalObjv(), or more precisely in TclNRAddCallback(interp, NRCommand, NULL, NULL, NULL, NULL); where it attempts to obtain memory. This crash happens before Tcl_FinalizeThread(). The patch will not cause any difference on systems where Tcl_FinalizeThread() is called. All said applies to Tcl 8.5 as well. all the best -gustaf neumann =================================================== In order to reproduce this crashes, get e.g. the actual version of NaviServer from bitbucket [1], compile it, and run make test TESTFLAGS="-file ns_parseurl.test" a few times from its install directory. The crash happens even more often, when the final cleanup call is not omitted [2]. [1] https://bitbucket.org/naviserver/naviserver [2] https://bitbucket.org/naviserver/naviserver/commits/137b9512f773307fc3f211642225466428dc88b3 =================================================== [21/Sep/2016:12:17:09][7286.7fff7460a000][-main-] Notice: nsmain: NaviServer/4.99.13d1 stopping [21/Sep/2016:12:17:09][7286.7fff7460a000][-main-] Notice: [driver:nssock]: stopping [21/Sep/2016:12:17:09][7286.7fff7460a000][-main-] Notice: server [test]: stopping [21/Sep/2016:12:17:09][7286.7fff7460a000][-main-] Notice: server [testvhost]: stopping [21/Sep/2016:12:17:09][7286.7000002a0000][-conn:test:emergency:0-] Notice: exiting: shutdown pending [21/Sep/2016:12:17:09][7286.7fff7460a000][-main-] Notice: server [testvhost2]: stopping #### (7000002a0000) TclpFreeAllocCache 0x7feb085007d0 initialized 1 [21/Sep/2016:12:17:09][7286.700000429000][-conn:testvhost:0-] Notice: exiting: shutdown pending #### (700000429000) TclpFreeAllocCache 0x7feb08409030 initialized 1 #### (700000429000) NsCleanupTls: NS_finalshutdown 1 #### (700000429000) ==================== DeleteInterps #### (700000429000) ==================== DeleteInterp 0x7feb098e5010 #### RunTraces(itPtr, NS_TCL_TRACE_DELETE); ============== #### RunTraces(0x7feb099d2410, 2); ============== #### (700000429000) RunTrace(0x7feb099d2410, 2) interp 0x7feb098e5010 ============== [21/Sep/2016:12:17:09][7286.7000004ac000][-conn:testvhost2:0-] Notice: exiting: shutdown pending #### (7000004ac000) TclpFreeAllocCache 0x7feb08735230 initialized 1 #### (700000429000) NsfFinalizeCmd exitHandlerRound 0 [21/Sep/2016:12:17:09][7286.70000052f000][-driver:nssock-] Notice: exiting #### (70000052f000) TclpFreeAllocCache 0x7feb086040e0 initialized 1 #### (700000429000) Tcl_DeleteInterp 0x7feb098e5010 #### (700000429000) NsCleanupTls: Tcl_FinalizeThread start #### (700000429000) FinalizeThread quick 0 #### (700000429000) call thread exithandler 0x105494770(0x7feb098e5010) +++ (700000429000) Nsf_ThreadExitProc 0x7feb098e5010 +++ (700000429000) ExitHandler interp 0x7feb098e5010 deleted 1 exitHandlerDestroyRound 2 #### (700000429000) tclBasic DeleteInterpProc 0x7feb098e5010 #### (700000429000) DeleteInterpProc could call NsfFinalizeCmd 0x7feb098e5010 #### (700000429000) DeleteInterpProc 0x7feb098e5010 DONE #### (700000429000) call thread exithandler 0x104f07100(0x7feb0912e210) #### (700000429000) call thread exithandler 0x104f07100(0x7feb099cd190) #### (700000429000) call thread exithandler 0x104ef8be0(0x0) #### (700000429000) call thread exithandler 0x104eafc20(0x7feb099ccb10) #### (700000429000) call thread exithandler 0x104ee5a80(0x7feb099cc610) #### (700000429000) call thread exithandler 0x104eca700(0x0) #### (700000429000) call thread exithandler 0x104f28cb0(0x0) #### (700000429000) call TclFinalizeIOSubsystem() #### (700000429000) TclFinalizeNotifier tsdPtr 0x7feb08adf290 tsdPtr->initialized 1 #### (700000429000) TclFinalizeNotifier firstNotifierPtr 0x7feb09951a90 tsdPtr 0x7feb08adf290 count 6 #### (700000429000) TclFinalizeThreadData 0 #### (700000429000) TclFinalizeThreadAllocThread 0x7feb08409030 #### (700000429000) TclpFreeAllocCache 0x7feb08409030 initialized 1 #### (700000429000) NsCleanupTls: Tcl_FinalizeThread done #### (700000429000) TclpFreeAllocCache 0x7feb08409030 initialized 1 #### (7000002a0000) NsCleanupTls: NS_finalshutdown 1 #### (7000002a0000) ==================== DeleteInterps #### (7000002a0000) ==================== DeleteInterp 0x7feb09155610 #### RunTraces(itPtr, NS_TCL_TRACE_DELETE); ============== #### RunTraces(0x7feb0919a810, 2); ============== #### (7000002a0000) RunTrace(0x7feb0919a810, 2) interp 0x7feb09155610 ============== #### (7000002a0000) NsfFinalizeCmd exitHandlerRound 0 #### (7000002a0000) Tcl_DeleteInterp 0x7feb09155610 #### (7000002a0000) NsCleanupTls: Tcl_FinalizeThread start #### (7000002a0000) FinalizeThread quick 0 #### (7000002a0000) call thread exithandler 0x105494770(0x7feb09155610) +++ (7000002a0000) Nsf_ThreadExitProc 0x7feb09155610 +++ (7000002a0000) ExitHandler interp 0x7feb09155610 deleted 1 exitHandlerDestroyRound 2 #### (7000002a0000) tclBasic DeleteInterpProc 0x7feb09155610 #### (7000002a0000) DeleteInterpProc could call NsfFinalizeCmd 0x7feb09155610 #### (7000002a0000) DeleteInterpProc 0x7feb09155610 DONE #### (7000002a0000) call thread exithandler 0x104f07100(0x7feb0918e790) #### (7000002a0000) call thread exithandler 0x104f07100(0x7feb0918e510) #### (7000002a0000) call thread exithandler 0x104ef8be0(0x0) #### (7000002a0000) call thread exithandler 0x104eafc20(0x7feb0918de90) #### (7000002a0000) call thread exithandler 0x104ee5a80(0x7feb0918d990) #### (7000002a0000) call thread exithandler 0x104eca700(0x0) #### (7000002a0000) call thread exithandler 0x104f28cb0(0x0) #### (7000002a0000) call TclFinalizeIOSubsystem() #### (7000002a0000) TclFinalizeNotifier tsdPtr 0x7feb0895e490 tsdPtr->initialized 1 #### (7000002a0000) TclFinalizeNotifier firstNotifierPtr 0x7feb09951a90 tsdPtr 0x7feb0895e490 count 5 #### (7000002a0000) TclFinalizeThreadData 0 #### (7000002a0000) TclFinalizeThreadAllocThread 0x7feb085007d0 #### (7000002a0000) TclpFreeAllocCache 0x7feb085007d0 initialized 1 #### (7000002a0000) NsCleanupTls: Tcl_FinalizeThread done #### (7000002a0000) TclpFreeAllocCache 0x7feb08735230 initialized 1 #### (7000004ac000) NsCleanupTls: NS_finalshutdown 1 #### (7000004ac000) ==================== DeleteInterps #### (7000004ac000) ==================== DeleteInterp 0x7feb0a1f5210 #### RunTraces(itPtr, NS_TCL_TRACE_DELETE); ============== #### RunTraces(0x7feb0a240c10, 2); ============== #### (7000004ac000) RunTrace(0x7feb0a240c10, 2) interp 0x7feb0a1f5210 ============== #### (7000004ac000) NsfFinalizeCmd exitHandlerRound 0 A [21/Sep/2016:12:17:09][7286.7000003a6000][-conn:test:1-] Notice: exiting: shutdown pending A #### (7000003a6000) TclpFreeAllocCache 0x7feb08500a80 initialized 1 #### (7000004ac000) Tcl_DeleteInterp 0x7feb0a1f5210 #### (7000004ac000) NsCleanupTls: Tcl_FinalizeThread start #### (7000004ac000) FinalizeThread quick 0 #### (7000004ac000) call thread exithandler 0x105494770(0x7feb0a1f5210) +++ (7000004ac000) Nsf_ThreadExitProc 0x7feb0a1f5210 +++ (7000004ac000) ExitHandler interp 0x7feb0a1f5210 deleted 1 exitHandlerDestroyRound 2 #### (7000004ac000) tclBasic DeleteInterpProc 0x7feb0a1f5210 #### (7000004ac000) DeleteInterpProc could call NsfFinalizeCmd 0x7feb0a1f5210 #### (7000004ac000) DeleteInterpProc 0x7feb0a1f5210 DONE #### (7000004ac000) call thread exithandler 0x104f07100(0x7feb0a239d10) #### (7000004ac000) call thread exithandler 0x104f07100(0x7feb0a239a90) #### (7000004ac000) call thread exithandler 0x104ef8be0(0x0) #### (7000004ac000) call thread exithandler 0x104eafc20(0x7feb0a239410) #### (7000004ac000) call thread exithandler 0x104ee5a80(0x7feb0a238f10) #### (7000004ac000) call thread exithandler 0x104eca700(0x0) #### (7000004ac000) call thread exithandler 0x104f28cb0(0x0) #### (7000004ac000) call TclFinalizeIOSubsystem() #### (7000004ac000) TclFinalizeNotifier tsdPtr 0x7feb09951a90 tsdPtr->initialized 1 #### (7000004ac000) TclFinalizeNotifier firstNotifierPtr 0x7feb09151a90 tsdPtr 0x7feb09951a90 count 4 #### (7000004ac000) TclFinalizeThreadData 0 #### (7000004ac000) TclFinalizeThreadAllocThread 0x7feb085007d0 #### (7000004ac000) TclpFreeAllocCache 0x7feb085007d0 initialized 1 #### (7000004ac000) NsCleanupTls: Tcl_FinalizeThread done #### (7000004ac000) TclpFreeAllocCache 0x7feb085007d0 initialized 1 #### (70000052f000) NsCleanupTls: NS_finalshutdown 1 #### (70000052f000) NsCleanupTls: Tcl_FinalizeThread start #### (70000052f000) FinalizeThread quick 0 #### (70000052f000) TclFinalizeThreadData 0 #### (70000052f000) TclFinalizeThreadAllocThread 0x7feb08735230 #### (70000052f000) TclpFreeAllocCache 0x7feb08735230 initialized 1 #### (70000052f000) NsCleanupTls: Tcl_FinalizeThread done #### (70000052f000) TclpFreeAllocCache 0x7feb08735230 initialized 1 A #### (7000003a6000) NsCleanupTls: NS_finalshutdown 1 A #### (7000003a6000) ==================== DeleteInterps A #### (7000003a6000) ==================== DeleteInterp 0x7feb0a1c3c10 A #### RunTraces(itPtr, NS_TCL_TRACE_DELETE); ============== A #### RunTraces(0x7feb0c814810, 2); ============== A #### (7000003a6000) RunTrace(0x7feb0c814810, 2) interp 0x7feb0a1c3c10 ============== make: *** [test] Segmentation fault: 11 (core dumped) Process: nsd [84637] Path: /usr/local/src/naviserver/nsd/nsd Identifier: nsd Version: 0 Code Type: X86-64 (Native) Parent Process: make [84565] Responsible: Terminal [302] User ID: 501 Date/Time: 2016-09-26 14:19:42.979 +0200 OS Version: Mac OS X 10.11.6 (15G1004) Report Version: 11 Anonymous UUID: 131B4905-9EE2-71A1-2888-2AA905279DF3 Sleep/Wake UUID: 1B26B782-4E7D-4366-9B96-D49E5AF9FF8C Time Awake Since Boot: 21000 seconds Time Since Wake: 8700 seconds System Integrity Protection: enabled Crashed Thread: 6 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000020 VM Regions Near 0x20: --> __TEXT 000000010818f000-0000000108192000 [ 12K] r-x/rwx SM=COW /usr/local/src/naviserver/nsd/nsd Thread 0:: Dispatch queue: com.apple.main-thread 0 libsystem_kernel.dylib 0x00007fff892d9de6 __psynch_mutexwait + 10 1 libsystem_pthread.dylib 0x00007fff8b716e4a _pthread_mutex_lock_wait + 89 2 libnsthread.dylib 0x00000001082c1708 NsLockSet + 88 (pthread.c:253) 3 libnsthread.dylib 0x00000001082beb71 Ns_MutexLock + 193 (mutex.c:259) 4 libnsd.dylib 0x00000001081e1003 NsWaitServer + 179 (queue.c:924) 5 libnsd.dylib 0x00000001081eb0cc NsStopServers + 220 (server.c:187) 6 libnsd.dylib 0x00000001081d90d7 Ns_Main + 3287 (nsmain.c:719) 7 nsd 0x0000000108191f79 main + 41 (main.c:62) 8 libdyld.dylib 0x00007fff8a1c65ad start + 1 Thread 1: 0 libsystem_kernel.dylib 0x00007fff892d3f72 mach_msg_trap + 10 1 libsystem_kernel.dylib 0x00007fff892d33b3 mach_msg + 55 2 com.apple.CoreFoundation 0x00007fff9099e1c4 __CFRunLoopServiceMachPort + 212 3 com.apple.CoreFoundation 0x00007fff9099d68c __CFRunLoopRun + 1356 4 com.apple.CoreFoundation 0x00007fff9099ced8 CFRunLoopRunSpecific + 296 5 libtcl8.6.dylib 0x00000001084b44a7 Tcl_WaitForEvent + 407 (tclMacOSXNotify.c:1267) 6 libtcl8.6.dylib 0x00000001084346dd Tcl_DoOneEvent + 413 (tclNotify.c:946) 7 libtcl8.6.dylib 0x00000001083cc3fb Tcl_VwaitObjCmd + 219 (tclEvent.c:1413) 8 libtcl8.6.dylib 0x00000001082f1dee Dispatch + 126 (tclBasic.c:4357) 9 libtcl8.6.dylib 0x00000001082edd66 TclNRRunCallbacks + 166 (tclBasic.c:4390) 10 libtcl8.6.dylib 0x00000001082eda94 Tcl_EvalObjv + 84 (tclBasic.c:4120) 11 libtcl8.6.dylib 0x00000001082ef428 TclEvalEx + 3128 (tclBasic.c:5259) 12 libtcl8.6.dylib 0x000000010841ff3d Tcl_FSEvalFileEx + 1037 (tclIOUtil.c:1826) 13 libtcl8.6.dylib 0x000000010842b188 Tcl_MainEx + 1160 (tclMain.c:420) 14 libnsd.dylib 0x00000001081d94cc CmdThread + 108 (nsmain.c:1137) 15 libnsthread.dylib 0x00000001082c0517 NsThreadMain + 151 (thread.c:227) 16 libnsthread.dylib 0x00000001082c1ab5 ThreadMain + 21 (pthread.c:810) 17 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 18 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 19 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 2:: Dispatch queue: com.apple.libdispatch-manager 0 libsystem_kernel.dylib 0x00007fff892daefa kevent_qos + 10 1 libdispatch.dylib 0x00007fff94f51165 _dispatch_mgr_invoke + 216 2 libdispatch.dylib 0x00007fff94f50dcd _dispatch_mgr_thread + 52 Thread 3: 0 libsystem_kernel.dylib 0x00007fff892da5e2 __workq_kernreturn + 10 1 libsystem_pthread.dylib 0x00007fff8b716578 _pthread_wqthread + 1283 2 libsystem_pthread.dylib 0x00007fff8b714341 start_wqthread + 13 Thread 4: 0 libsystem_kernel.dylib 0x00007fff892da5e2 __workq_kernreturn + 10 1 libsystem_pthread.dylib 0x00007fff8b716578 _pthread_wqthread + 1283 2 libsystem_pthread.dylib 0x00007fff8b714341 start_wqthread + 13 Thread 5: 0 libsystem_kernel.dylib 0x00007fff892d9db6 __psynch_cvwait + 10 1 libsystem_pthread.dylib 0x00007fff8b717728 _pthread_cond_wait + 767 2 libnsthread.dylib 0x00000001082c20b0 Ns_CondTimedWait + 256 (pthread.c:746) 3 libnsd.dylib 0x00000001081eab77 SchedThread + 839 (sched.c:873) 4 libnsthread.dylib 0x00000001082c0517 NsThreadMain + 151 (thread.c:227) 5 libnsthread.dylib 0x00000001082c1ab5 ThreadMain + 21 (pthread.c:810) 6 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 7 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 8 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 6 Crashed: 0 libtcl8.6.dylib 0x00000001082edb33 TclNREvalObjv + 147 (tclBasic.c:4150) 1 libtcl8.6.dylib 0x00000001082eda81 Tcl_EvalObjv + 65 (tclBasic.c:4119) 2 libtcl8.6.dylib 0x00000001082ef428 TclEvalEx + 3128 (tclBasic.c:5259) 3 libtcl8.6.dylib 0x00000001082ee7dc Tcl_EvalEx + 60 (tclBasic.c:4924) 4 libnsd.dylib 0x00000001081f7092 Ns_TclEvalCallback + 978 (tclcallbacks.c:176) 5 libnsd.dylib 0x0000000108203c9e NsTclTraceProc + 46 (tclinit.c:1769) 6 libnsd.dylib 0x000000010820216f RunTraces + 335 (tclinit.c:2175) 7 libnsd.dylib 0x00000001082023dc Ns_TclDestroyInterp + 220 (tclinit.c:604) 8 libnsd.dylib 0x000000010820131c DeleteInterps + 140 (tclinit.c:2311) 9 libnsthread.dylib 0x00000001082c0fc3 NsCleanupTls + 211 (tls.c:200) 10 libnsthread.dylib 0x00000001082c1521 CleanupTls + 129 (pthread.c:848) 11 libsystem_pthread.dylib 0x00007fff8b718387 _pthread_tsd_cleanup + 470 12 libsystem_pthread.dylib 0x00007fff8b717f63 _pthread_exit + 117 13 libsystem_pthread.dylib 0x00007fff8b718c0e pthread_exit + 30 14 libnsthread.dylib 0x00000001082c1ada Ns_ThreadExit + 26 15 libnsd.dylib 0x00000001081e23e9 NsConnThread + 3737 (queue.c:1395) 16 libnsthread.dylib 0x00000001082c0517 NsThreadMain + 151 (thread.c:227) 17 libnsthread.dylib 0x00000001082c1ab5 ThreadMain + 21 (pthread.c:810) 18 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 19 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 20 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 7: 0 libsystem_kernel.dylib 0x00007fff892d9de6 __psynch_mutexwait + 10 1 libsystem_pthread.dylib 0x00007fff8b716e4a _pthread_mutex_lock_wait + 89 2 libnsthread.dylib 0x00000001082c1708 NsLockSet + 88 (pthread.c:253) 3 libnsthread.dylib 0x00000001082beb71 Ns_MutexLock + 193 (mutex.c:259) 4 libnsd.dylib 0x00000001081e2356 NsConnThread + 3590 (queue.c:1378) 5 libnsthread.dylib 0x00000001082c0517 NsThreadMain + 151 (thread.c:227) 6 libnsthread.dylib 0x00000001082c1ab5 ThreadMain + 21 (pthread.c:810) 7 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 8 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 9 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 8: 0 libsystem_kernel.dylib 0x00007fff892da10a __semwait_signal + 10 1 libsystem_pthread.dylib 0x00007fff8b718787 pthread_join + 444 2 libnsthread.dylib 0x00000001082c1b48 Ns_ThreadJoin + 104 (pthread.c:457) 3 libnsd.dylib 0x00000001081e1199 JoinConnThread + 89 (queue.c:1747) 4 libnsd.dylib 0x00000001081e2393 NsConnThread + 3651 (queue.c:1386) 5 libnsthread.dylib 0x00000001082c0517 NsThreadMain + 151 (thread.c:227) 6 libnsthread.dylib 0x00000001082c1ab5 ThreadMain + 21 (pthread.c:810) 7 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 8 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 9 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 9: 0 libtcl8.6.dylib 0x000000010846466b GetBlocks + 523 (tclThreadAlloc.c:1007) 1 libtcl8.6.dylib 0x000000010846417f TclpAlloc + 223 (tclThreadAlloc.c:358) 2 libtcl8.6.dylib 0x00000001082fc733 Tcl_Alloc + 19 (tclCkalloc.c:1059) 3 libtcl8.6.dylib 0x0000000108456d1f Tcl_NewStringObj + 159 (tclStringObj.c:287) 4 libtcl8.6.dylib 0x000000010843dfd4 TclSubstTokens + 1524 (tclParse.c:2367) 5 libtcl8.6.dylib 0x00000001082eee53 TclEvalEx + 1635 (tclBasic.c:5146) 6 libtcl8.6.dylib 0x00000001082ee7dc Tcl_EvalEx + 60 (tclBasic.c:4924) 7 libnsd.dylib 0x00000001081f7092 Ns_TclEvalCallback + 978 (tclcallbacks.c:176) 8 libnsd.dylib 0x0000000108203c9e NsTclTraceProc + 46 (tclinit.c:1769) 9 libnsd.dylib 0x000000010820216f RunTraces + 335 (tclinit.c:2175) 10 libnsd.dylib 0x00000001082023dc Ns_TclDestroyInterp + 220 (tclinit.c:604) 11 libnsd.dylib 0x000000010820131c DeleteInterps + 140 (tclinit.c:2311) 12 libnsthread.dylib 0x00000001082c0fc3 NsCleanupTls + 211 (tls.c:200) 13 libnsthread.dylib 0x00000001082c1521 CleanupTls + 129 (pthread.c:848) 14 libsystem_pthread.dylib 0x00007fff8b718387 _pthread_tsd_cleanup + 470 15 libsystem_pthread.dylib 0x00007fff8b717f63 _pthread_exit + 117 16 libsystem_pthread.dylib 0x00007fff8b718c0e pthread_exit + 30 17 libnsthread.dylib 0x00000001082c1ada Ns_ThreadExit + 26 18 libnsd.dylib 0x00000001081e23e9 NsConnThread + 3737 (queue.c:1395) 19 libnsthread.dylib 0x00000001082c0517 NsThreadMain + 151 (thread.c:227) 20 libnsthread.dylib 0x00000001082c1ab5 ThreadMain + 21 (pthread.c:810) 21 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 22 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 23 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 10: 0 libsystem_kernel.dylib 0x00007fff892d9de6 __psynch_mutexwait + 10 1 libsystem_pthread.dylib 0x00007fff8b716e4a _pthread_mutex_lock_wait + 89 2 libtcl8.6.dylib 0x0000000108496adc Tcl_MutexLock + 140 (tclUnixThrd.c:439) 3 libtcl8.6.dylib 0x000000010846540a LockBucket + 42 (tclThreadAlloc.c:878) 4 libtcl8.6.dylib 0x00000001084644ad GetBlocks + 77 (tclThreadAlloc.c:984) 5 libtcl8.6.dylib 0x000000010846417f TclpAlloc + 223 (tclThreadAlloc.c:358) 6 libtcl8.6.dylib 0x00000001082fc733 Tcl_Alloc + 19 (tclCkalloc.c:1059) 7 libtcl8.6.dylib 0x0000000108456d1f Tcl_NewStringObj + 159 (tclStringObj.c:287) 8 libtcl8.6.dylib 0x000000010843dfd4 TclSubstTokens + 1524 (tclParse.c:2367) 9 libtcl8.6.dylib 0x00000001082eee53 TclEvalEx + 1635 (tclBasic.c:5146) 10 libtcl8.6.dylib 0x00000001082ee7dc Tcl_EvalEx + 60 (tclBasic.c:4924) 11 libnsd.dylib 0x00000001081f7092 Ns_TclEvalCallback + 978 (tclcallbacks.c:176) 12 libnsd.dylib 0x0000000108203c9e NsTclTraceProc + 46 (tclinit.c:1769) 13 libnsd.dylib 0x000000010820216f RunTraces + 335 (tclinit.c:2175) 14 libnsd.dylib 0x00000001082023dc Ns_TclDestroyInterp + 220 (tclinit.c:604) 15 libnsd.dylib 0x000000010820131c DeleteInterps + 140 (tclinit.c:2311) 16 libnsthread.dylib 0x00000001082c0fc3 NsCleanupTls + 211 (tls.c:200) 17 libnsthread.dylib 0x00000001082c1521 CleanupTls + 129 (pthread.c:848) 18 libsystem_pthread.dylib 0x00007fff8b718387 _pthread_tsd_cleanup + 470 19 libsystem_pthread.dylib 0x00007fff8b717f63 _pthread_exit + 117 20 libsystem_pthread.dylib 0x00007fff8b718c0e pthread_exit + 30 21 libnsthread.dylib 0x00000001082c1ada Ns_ThreadExit + 26 22 libnsd.dylib 0x00000001081e23e9 NsConnThread + 3737 (queue.c:1395) 23 libnsthread.dylib 0x00000001082c0517 NsThreadMain + 151 (thread.c:227) 24 libnsthread.dylib 0x00000001082c1ab5 ThreadMain + 21 (pthread.c:810) 25 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 26 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 27 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 11: 0 libsystem_kernel.dylib 0x00007fff892db2a2 poll + 10 1 libnsd.dylib 0x0000000108235001 ns_poll + 97 (unix.c:963) 2 libnsd.dylib 0x00000001081c2fca PollWait + 106 (driver.c:1726) 3 libnsd.dylib 0x00000001081c2035 SpoolerThread + 293 (driver.c:3382) 4 libnsthread.dylib 0x00000001082c0517 NsThreadMain + 151 (thread.c:227) 5 libnsthread.dylib 0x00000001082c1ab5 ThreadMain + 21 (pthread.c:810) 6 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 7 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 8 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 12: 0 libsystem_kernel.dylib 0x00007fff892db2a2 poll + 10 1 libnsd.dylib 0x0000000108235001 ns_poll + 97 (unix.c:963) 2 libnsd.dylib 0x00000001081c2fca PollWait + 106 (driver.c:1726) 3 libnsd.dylib 0x00000001081c2035 SpoolerThread + 293 (driver.c:3382) 4 libnsthread.dylib 0x00000001082c0517 NsThreadMain + 151 (thread.c:227) 5 libnsthread.dylib 0x00000001082c1ab5 ThreadMain + 21 (pthread.c:810) 6 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 7 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 8 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 13: 0 libsystem_kernel.dylib 0x00007fff892db2a2 poll + 10 1 libnsd.dylib 0x0000000108235001 ns_poll + 97 (unix.c:963) 2 libnsd.dylib 0x00000001081c2fca PollWait + 106 (driver.c:1726) 3 libnsd.dylib 0x00000001081c2035 SpoolerThread + 293 (driver.c:3382) 4 libnsthread.dylib 0x00000001082c0517 NsThreadMain + 151 (thread.c:227) 5 libnsthread.dylib 0x00000001082c1ab5 ThreadMain + 21 (pthread.c:810) 6 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 7 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 8 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 14: 0 libsystem_kernel.dylib 0x00007fff892db2a2 poll + 10 1 libnsd.dylib 0x0000000108235001 ns_poll + 97 (unix.c:963) 2 libnsd.dylib 0x00000001081c2fca PollWait + 106 (driver.c:1726) 3 libnsd.dylib 0x00000001081c26b7 WriterThread + 407 (driver.c:4087) 4 libnsthread.dylib 0x00000001082c0517 NsThreadMain + 151 (thread.c:227) 5 libnsthread.dylib 0x00000001082c1ab5 ThreadMain + 21 (pthread.c:810) 6 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 7 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 8 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 15: 0 libsystem_kernel.dylib 0x00007fff892db2a2 poll + 10 1 libnsd.dylib 0x0000000108235001 ns_poll + 97 (unix.c:963) 2 libnsd.dylib 0x00000001081c2fca PollWait + 106 (driver.c:1726) 3 libnsd.dylib 0x00000001081c26b7 WriterThread + 407 (driver.c:4087) 4 libnsthread.dylib 0x00000001082c0517 NsThreadMain + 151 (thread.c:227) 5 libnsthread.dylib 0x00000001082c1ab5 ThreadMain + 21 (pthread.c:810) 6 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 7 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 8 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 16: 0 libsystem_kernel.dylib 0x00007fff892db2a2 poll + 10 1 libnsd.dylib 0x0000000108235001 ns_poll + 97 (unix.c:963) 2 libnsd.dylib 0x00000001081c2fca PollWait + 106 (driver.c:1726) 3 libnsd.dylib 0x00000001081c26b7 WriterThread + 407 (driver.c:4087) 4 libnsthread.dylib 0x00000001082c0517 NsThreadMain + 151 (thread.c:227) 5 libnsthread.dylib 0x00000001082c1ab5 ThreadMain + 21 (pthread.c:810) 6 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 7 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 8 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 17: 0 libsystem_kernel.dylib 0x00007fff892da07a __select + 10 1 libtcl8.6.dylib 0x00000001084b4f24 NotifierThreadProc + 884 (tclMacOSXNotify.c:1816) 2 libsystem_pthread.dylib 0x00007fff8b71699d _pthread_body + 131 3 libsystem_pthread.dylib 0x00007fff8b71691a _pthread_start + 168 4 libsystem_pthread.dylib 0x00007fff8b714351 thread_start + 13 Thread 6 crashed with X86 Thread State (64-bit): rax: 0x0000000000000000 rbx: 0x0000000000000102 rcx: 0x0000000000200010 rdx: 0x00007fd2a081d010 rdi: 0x00007fd2a081d010 rsi: 0x0000000000000003 rbp: 0x000070000029f370 rsp: 0x000070000029f310 r8: 0x0000000000000000 r9: 0x0000000000000000 r10: 0x000070000029f7e0 r11: 0x00000fd2a360b964 r12: 0x00007000002a0000 r13: 0x00007000002a0000 r14: 0x0000000000000000 r15: 0x00007fff72165900 rip: 0x00000001082edb33 rfl: 0x0000000000010202 cr2: 0x0000000000000020 Logical CPU: 3 Error Code: 0x00000004 Trap Number: 14 Binary Images: 0x10818f000 - 0x108191ff7 +nsd (0) <2855EBB8-4F15-38B8-A0C9-DEBA95D94F26> /usr/local/src/naviserver/nsd/nsd 0x108197000 - 0x10824fff7 +libnsd.dylib (0) <8830CB07-0C0A-3C93-B370-2CDBF716CABD> /usr/local/src/naviserver/nsd/libnsd.dylib 0x1082a1000 - 0x1082b1fff +libz.1.dylib (0) <5FCFF38B-5983-3590-B5E9-074CF0950676> /opt/local/lib/libz.1.dylib 0x1082bc000 - 0x1082c2ff7 +libnsthread.dylib (0) <AE7BD076-96B3-3804-894E-326C4D803964> /usr/local/src/naviserver/nsthread/libnsthread.dylib 0x1082cc000 - 0x1084ecff3 +libtcl8.6.dylib (8.6.6 - 8.6.6) <49EFA938-8CDF-3DF6-B8B2-988E5CD03F91> /usr/local/ns/lib/libtcl8.6.dylib 0x10856b000 - 0x1085affff +libssl.1.0.0.dylib (0) <EC36C961-CD70-3A2B-8859-C82F2F99CC39> /opt/local/lib/libssl.1.0.0.dylib 0x1085cd000 - 0x1087517ef +libcrypto.1.0.0.dylib (0) <510C2E29-B2CE-36F7-ABED-2CCD0521E40A> /opt/local/lib/libcrypto.1.0.0.dylib 0x1089f5000 - 0x1089f9ff7 +nslog.so (0) <0C5DDBF1-3A5F-371E-96E9-34AF4D5A56EF> /usr/local/src/naviserver/nslog/nslog.so 0x109a00000 - 0x109a7fffb +libnsf2.1.0.dylib (0) <F30012CB-D00D-39A2-B11E-38A782428A48> /usr/local/ns/lib/nsf2.1.0/libnsf2.1.0.dylib 0x109bea000 - 0x109becffb +nsdb.so (0) <56AAC66C-B377-3027-B705-6FA6A024B42D> /usr/local/src/naviserver/nsdb/nsdb.so 0x109bef000 - 0x109bfaff7 +libnsdb.dylib (0) <DA2BC00B-3FCC-3784-9E1B-B35B0413A225> /usr/local/src/naviserver/nsdb/libnsdb.dylib 0x109c00000 - 0x109c02ff7 +nsdbtest.so (0) <012C3E18-5142-3967-BADC-1C24CE1C8B77> /usr/local/src/naviserver/nsdbtest/nsdbtest.so 0x109c05000 - 0x109c07fff +nsproxy.so (0) <1F0A30CB-26B3-3953-9E1F-356E790E54F7> /usr/local/src/naviserver/nsproxy/nsproxy.so 0x109c0a000 - 0x109c13ff3 +libnsproxy.dylib (0) <1B9F47C7-68DF-3150-8366-D6CF636C0D50> /usr/local/src/naviserver/nsproxy/libnsproxy.dylib 0x109c81000 - 0x109c83ff3 +nssock.so (0) <C4A12D2D-9CDB-31A7-B71E-C402DDAAF766> /usr/local/src/naviserver/nssock/nssock.so 0x7fff677e4000 - 0x7fff6781ba47 dyld (360.22) <DC81CC9D-651A-3A45-8809-928282052BD3> /usr/lib/dyld 0x7fff82a86000 - 0x7fff82aa2ff7 libsystem_malloc.dylib (67.40.1) <5748E8B2-F81C-34C6-8B13-456213127678> /usr/lib/system/libsystem_malloc.dylib 0x7fff82ec4000 - 0x7fff82eccffb libsystem_dnssd.dylib (625.60.4) <80189998-32B0-316C-B5C5-53857486713D> /usr/lib/system/libsystem_dnssd.dylib 0x7fff851b3000 - 0x7fff85219ff7 libsystem_network.dylib (583.50.1) <B52DAB73-92DC-3DA7-B9F4-B899D66445C1> /usr/lib/system/libsystem_network.dylib 0x7fff85869000 - 0x7fff8587aff7 libz.1.dylib (61.20.1) <B3EBB42F-48E3-3287-9F0D-308E04D407AC> /usr/lib/libz.1.dylib 0x7fff86d2a000 - 0x7fff86d2bfff libDiagnosticMessagesClient.dylib (100) <4243B6B4-21E9-355B-9C5A-95A216233B96> /usr/lib/libDiagnosticMessagesClient.dylib 0x7fff86d2c000 - 0x7fff86d2efff libsystem_coreservices.dylib (19.2) <1B3F5AFC-FFCD-3ECB-8B9A-5538366FB20D> /usr/lib/system/libsystem_coreservices.dylib 0x7fff86d2f000 - 0x7fff86d30ffb libSystem.B.dylib (1226.10.1) <012548CD-614D-3AF0-B3B1-676F427D2CD6> /usr/lib/libSystem.B.dylib 0x7fff86dd1000 - 0x7fff86de2ff7 libsystem_trace.dylib (201.10.3) <E9311C03-9E61-3B13-AF3F-A64956FFF269> /usr/lib/system/libsystem_trace.dylib 0x7fff86fa9000 - 0x7fff86fadfff libcache.dylib (75) <9548AAE9-2AB7-3525-9ECE-A2A7C4688447> /usr/lib/system/libcache.dylib 0x7fff86fe5000 - 0x7fff86ffcff7 libsystem_coretls.dylib (83.40.5) <C90DAE38-4082-381C-A185-2A6A8B677628> /usr/lib/system/libsystem_coretls.dylib 0x7fff88784000 - 0x7fff88785ffb libremovefile.dylib (41) <552EF39E-14D7-363E-9059-4565AC2F894E> /usr/lib/system/libremovefile.dylib 0x7fff88d2e000 - 0x7fff88d33ff3 libunwind.dylib (35.3) <F6EB48E5-4D12-359A-AB54-C937FBBE9043> /usr/lib/system/libunwind.dylib 0x7fff88fbb000 - 0x7fff88fbbff7 libunc.dylib (29) <DDB1E947-C775-33B8-B461-63E5EB698F0E> /usr/lib/system/libunc.dylib 0x7fff89012000 - 0x7fff89017ff7 libmacho.dylib (875.1) <318264FA-58F1-39D8-8285-1F6254EE410E> /usr/lib/system/libmacho.dylib 0x7fff89031000 - 0x7fff89032fff libsystem_secinit.dylib (20) <32B1A8C6-DC84-3F4F-B8CE-9A52B47C3E6B> /usr/lib/system/libsystem_secinit.dylib 0x7fff892c3000 - 0x7fff892e1ff7 libsystem_kernel.dylib (3248.60.11) <A3F069EA-6A41-35CA-BDF8-187E0209B3E2> /usr/lib/system/libsystem_kernel.dylib 0x7fff89d45000 - 0x7fff89d6eff7 libxpc.dylib (765.50.8) <54D1328E-054E-3DAA-89E2-375722F9D18F> /usr/lib/system/libxpc.dylib 0x7fff89d8d000 - 0x7fff89db6fff libsystem_info.dylib (477.50.4) <FAA9226D-64DE-3769-A6D8-6CABA4B7FF4D> /usr/lib/system/libsystem_info.dylib 0x7fff89db7000 - 0x7fff89dceff7 libsystem_asl.dylib (323.50.1) <41F8E11F-1BD0-3F1D-BA3A-AA1577ED98A9> /usr/lib/system/libsystem_asl.dylib 0x7fff8a1c3000 - 0x7fff8a1c6ffb libdyld.dylib (360.22) <25D28225-99AE-3A04-B98C-ACFF47D6D9B0> /usr/lib/system/libdyld.dylib 0x7fff8a23f000 - 0x7fff8a2ccfef libsystem_c.dylib (1082.60.1) <28733D22-553E-3CBC-8D2C-EDCEB46E46AF> /usr/lib/system/libsystem_c.dylib 0x7fff8b2ed000 - 0x7fff8b340ff7 libc++.1.dylib (120.1) <8FC3D139-8055-3498-9AC5-6467CB7F4D14> /usr/lib/libc++.1.dylib 0x7fff8b341000 - 0x7fff8b344fff libsystem_sandbox.dylib (460.60.2) <2A68B39C-B786-3A05-87A2-56E688469FB8> /usr/lib/system/libsystem_sandbox.dylib 0x7fff8b713000 - 0x7fff8b71cff7 libsystem_pthread.dylib (138.10.4) <3DD1EF4C-1D1B-3ABF-8CC6-B3B1CEEE9559> /usr/lib/system/libsystem_pthread.dylib 0x7fff8c002000 - 0x7fff8c079feb libcorecrypto.dylib (335.50.1) <B5C05FD7-A540-345A-87BF-8E41848A3C17> /usr/lib/system/libcorecrypto.dylib 0x7fff8d89b000 - 0x7fff8d89dff7 libquarantine.dylib (80) <0F4169F0-0C84-3A25-B3AE-E47B3586D908> /usr/lib/system/libquarantine.dylib 0x7fff8de44000 - 0x7fff8de8aff7 libauto.dylib (186) <999E610F-41FC-32A3-ADCA-5EC049B65DFB> /usr/lib/libauto.dylib 0x7fff8e656000 - 0x7fff8e9b8f3f libobjc.A.dylib (680) <7489D2D6-1EFD-3414-B18D-2AECCCC90286> /usr/lib/libobjc.A.dylib 0x7fff8ef69000 - 0x7fff8ef70ff7 libcompiler_rt.dylib (62) <A13ECF69-F59F-38AE-8609-7B731450FBCD> /usr/lib/system/libcompiler_rt.dylib 0x7fff90914000 - 0x7fff90d8afff com.apple.CoreFoundation (6.9 - 1258.1) <943A1383-DA6A-3DC0-ABCD-D9AEB3D0D34D> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 0x7fff91227000 - 0x7fff9122ffff libsystem_networkextension.dylib (385.40.36) <66095DC7-6539-38F2-95EE-458F15F6D014> /usr/lib/system/libsystem_networkextension.dylib 0x7fff91231000 - 0x7fff91231ff7 liblaunch.dylib (765.50.8) <834ED605-5114-3641-AA4D-ECF31B801C50> /usr/lib/system/liblaunch.dylib 0x7fff91a89000 - 0x7fff91ab3ff7 libc++abi.dylib (307.2) <922EFB36-0E9E-315B-8270-E81AC43472C0> /usr/lib/libc++abi.dylib 0x7fff92e4f000 - 0x7fff92e57fef libsystem_platform.dylib (74.40.2) <29A905EF-6777-3C33-82B0-6C3A88C4BA15> /usr/lib/system/libsystem_platform.dylib 0x7fff931bd000 - 0x7fff931c5fff libcopyfile.dylib (127) <A48637BC-F3F2-34F2-BB68-4C65FD012832> /usr/lib/system/libcopyfile.dylib 0x7fff932dd000 - 0x7fff932defff libsystem_blocks.dylib (65) <1244D9D5-F6AA-35BB-B307-86851C24B8E5> /usr/lib/system/libsystem_blocks.dylib 0x7fff932e7000 - 0x7fff932e7ff7 libkeymgr.dylib (28) <8371CE54-5FDD-3CE9-B3DF-E98C761B6FE0> /usr/lib/system/libkeymgr.dylib 0x7fff93672000 - 0x7fff9387ffff libicucore.A.dylib (551.51.4) <3899B146-3840-3D4A-8C4A-FE391D5D25C7> /usr/lib/libicucore.A.dylib 0x7fff938a5000 - 0x7fff938a7ff7 libsystem_configuration.dylib (802.40.13) <3DEB7DF9-6804-37E1-BC83-0166882FF0FF> /usr/lib/system/libsystem_configuration.dylib 0x7fff93935000 - 0x7fff93940ff7 libcommonCrypto.dylib (60075.50.1) <93732261-34B4-3914-B7A2-90A81A182DBA> /usr/lib/system/libcommonCrypto.dylib 0x7fff94e51000 - 0x7fff94e5aff3 libsystem_notify.dylib (150.40.1) <D48BDE34-0F7E-34CA-A0FF-C578E39987CC> /usr/lib/system/libsystem_notify.dylib 0x7fff94f49000 - 0x7fff94f76fff libdispatch.dylib (501.40.12) <C7499857-61A5-3D7D-A5EA-65DCC8C3DF92> /usr/lib/system/libdispatch.dylib 0x7fff957a1000 - 0x7fff957d0ffb libsystem_m.dylib (3105) <08E1A4B2-6448-3DFE-A58C-ACC7335BE7E4> /usr/lib/system/libsystem_m.dylib External Modification Summary: Calls made by other processes targeting this process: task_for_pid: 0 thread_create: 0 thread_set_state: 0 Calls made by this process: task_for_pid: 0 thread_create: 0 thread_set_state: 0 Calls made by all processes on this machine: task_for_pid: 1567811 thread_create: 0 thread_set_state: 0 VM Region Summary: ReadOnly portion of Libraries: Total=112.1M resident=0K(0%) swapped_out_or_unallocated=112.1M(100%) Writable regions: Total=163.8M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=163.8M(100%) VIRTUAL REGION REGION TYPE SIZE COUNT (non-coalesced) =========== ======= ======= Activity Tracing 2048K 2 Dispatch continuations 16.0M 2 Kernel Alloc Once 4K 2 MALLOC 73.8M 13 MALLOC guard page 16K 4 STACK GUARD 72K 19 Stack 71.8M 20 VM_ALLOCATE 20K 3 __DATA 3360K 63 __LINKEDIT 92.6M 18 __TEXT 19.5M 60 __UNICODE 552K 2 shared memory 28K 5 =========== ======= ======= TOTAL 279.5M 200 Model: MacBookPro11,5, BootROM MBP114.0172.B09, 4 processors, Intel Core i7, 2,8 GHz, 16 GB, SMC 2.30f2 Graphics: AMD Radeon R9 M370X, AMD Radeon R9 M370X, PCIe, 2048 MB Graphics: Intel Iris Pro, Intel Iris Pro, Built-In Memory Module: BANK 0/DIMM0, 8 GB, DDR3, 1600 MHz, 0x802C, 0x31364B544631473634485A2D314736453120 Memory Module: BANK 1/DIMM0, 8 GB, DDR3, 1600 MHz, 0x802C, 0x31364B544631473634485A2D314736453120 AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x152), Broadcom BCM43xx 1.0 (7.21.95.175.1a6) Bluetooth: Version 4.4.6f1 17910, 3 services, 27 devices, 1 incoming serial ports Network Service: Wi-Fi, AirPort, en0 Serial ATA Device: APPLE SSD SM1024G, 1 TB USB Device: USB 3.0 Bus USB Device: Apple Internal Keyboard / Trackpad USB Device: Bluetooth USB Host Controller Thunderbolt Bus: MacBook Pro, Apple Inc., 27.1 | |||
User Comments: |
jan.nijtmans added on 2016-10-11 21:55:25:
Fix committed to core-8-5-branch, core-8-6-branch and trunk. Thanks, Gustaf! gustafn2 added on 2016-10-07 13:14:55: found a second documentation flaw related to the allocator cache, and added an additional patch file. gustafn2 added on 2016-09-26 18:24:48: here is the patch... jan.nijtmans added on 2016-09-26 14:47:48: > Note, that the source code documentation was not correctly describing > the current behavior either. The attached patch suggests some > improvements. Where can I find this documentation patch? Indeed, I think the best thing to do is rely on the TclpFreeAllocCache() call in Tcl_FinalizeThread(). So I agree with your patch, and welcome your suggestions for documentation improvement. |