The process for investigating a generic course of dangle when you don’t have any different hints is to gather a symbolicated spindump of the system. What this does is take a bunch of freeze-frames of all consumer and system processes (together with the kernel) for 10 seconds and reveals you the way a lot of that point is being spent in any given operate name stack. By discovering the stacks the place loads of time is being spent, you may normally get a good suggestion of the place the slowness is perhaps coming from after which focus your investigation on that. We gather a system-wide spindump quite than simply the dump for a single course of as a result of it’s common for system calls and/or interprocess communication to be concerned in these kinds of hangs.
Listed here are the steps:
- Run the next Terminal command to allow kernel symbolication:
sudo nvram boot-args="keepsyms=1"
. Make sure that to copy-paste this so that you simply’re getting into straight quotes (""
) quite than curly/“good” quotes (“”
) – it is a very refined distinction. (Vital: Should you get a permission error when doing this, you’ll first have to disable System Integrity Safety. You possibly can re-enable it after you are finished with this investigation.) - Reboot your machine and don’t open any apps aside from Terminal.
- In Terminal, enter the next command, press Return, kind in your password, however don’t press Return once more but:
sudo spindump -reveal -noProcessingWhileSampling
- Open Excel and begin your regular workflow. Proceed till you begin experiencing the beachball.
- As quickly as you get the ball, go to the Terminal window the place you entered your password and press Return in order that the command begins to execute. Don’t do the rest on the pc whereas it is operating, in any other case you’ll distort the information assortment.
- After ready for >10 seconds to gather a pattern and one other minute or two to symbolicate and format, you’ll get a file in
/tmp/spindump.txt
that accommodates a stackshot of each course of. - Add the file to PasteBin or some equal place and add the hyperlink to it to your unique query.
UPDATE:
Out of your spindump
seize, it strongly seems to be an issue with Excel itself: It appears to be dealing with the paste by going into a number of inside loops (that are opaque to us as a result of we do not have debugging symbols for any Microsoft merchandise), and whereas the principle UI thread is burning cycles on these, the opposite employee threads are blocked till its completion. The beachball happens as a result of former.
Related excerpt from the spindump
:
Course of: Microsoft Excel [691]
CPU Time: 9.999s (40.6G cycles, 124.0G directions, 0.33c/i)
Thread 0x1fd5 DispatchQueue "com.apple.main-thread"(1) 1000 samples (1-1000) precedence 46 (base 46) cpu time 9.988s (40.6G cycles, 124.0G directions, 0.33c/i)
1000 begin + 1 (libdyld.dylib + 109769) [0x7fff69c33cc9]
1000 NSApplicationMain + 777 (AppKit + 14966) [0x7fff2cd5fa76]
1000 -[NSApplication run] + 707 (AppKit + 203967) [0x7fff2cd8dcbf]
1000 ??? (Microsoft Excel + 2353506) [0x107ada962]
1000 ??? (mbukernel + 105487) [0x10db24c0f]
1000 -[NSApplication(NSEvent) sendEvent:] + 2759 (AppKit + 1987803) [0x7fff2cf414db]
1000 ??? (Microsoft Excel + 2947327) [0x107b6b8ff]
1000 ??? (CocoaUI + 37299) [0x10bb691b3]
1000 -[NSWindow(NSEventRouting) sendEvent:] + 349 (AppKit + 1992681) [0x7fff2cf427e9]
1000 -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 6512 (AppKit + 1999741) [0x7fff2cf4437d]
1000 -[NSView rightMouseDown:] + 156 (AppKit + 4715878) [0x7fff2d1db566]
1000 forwardMethod + 204 (AppKit + 2581241) [0x7fff2cfd22f9]
1000 -[NSView rightMouseDown:] + 156 (AppKit + 4715878) [0x7fff2d1db566]
1000 forwardMethod + 204 (AppKit + 2581241) [0x7fff2cfd22f9]
1000 -[NSView rightMouseDown:] + 156 (AppKit + 4715878) [0x7fff2d1db566]
1000 forwardMethod + 204 (AppKit + 2581241) [0x7fff2cfd22f9]
1000 -[NSView rightMouseDown:] + 156 (AppKit + 4715878) [0x7fff2d1db566]
1000 forwardMethod + 204 (AppKit + 2581241) [0x7fff2cfd22f9]
1000 -[NSView rightMouseDown:] + 156 (AppKit + 4715878) [0x7fff2d1db566]
1000 forwardMethod + 204 (AppKit + 2581241) [0x7fff2cfd22f9]
1000 -[NSView rightMouseDown:] + 156 (AppKit + 4715878) [0x7fff2d1db566]
1000 forwardMethod + 204 (AppKit + 2581241) [0x7fff2cfd22f9]
1000 -[NSView rightMouseDown:] + 156 (AppKit + 4715878) [0x7fff2d1db566]
1000 forwardMethod + 204 (AppKit + 2581241) [0x7fff2cfd22f9]
1000 -[NSView rightMouseDown:] + 156 (AppKit + 4715878) [0x7fff2d1db566]
1000 forwardMethod + 204 (AppKit + 2581241) [0x7fff2cfd22f9]
1000 ??? (Microsoft Excel + 22001429) [0x108d97715]
1000 ??? (Microsoft Excel + 22010463) [0x108d99a5f]
1000 ??? (Microsoft Excel + 32464327) [0x109791dc7]
1000 ??? (Microsoft Excel + 32475228) [0x10979485c]
1000 ??? (Microsoft Excel + 22957212) [0x108e80c9c]
1000 ??? (Microsoft Excel + 38434807) [0x109d437f7]
1000 ??? (mso99 + 19508610) [0x110eced82]
1000 ??? (mso99 + 19509057) [0x110ecef41]
1000 ??? (mso99 + 17242835) [0x110ca5ad3]
1000 OfficeSpace::FSControl::SetValue(void*, int, FlexUI::FlexValue*) + 1168 (mso99 + 1617714) [0x10fdbef32]
1000 OfficeSpace::BaseControl::SetValue(void*, int, FlexUI::FlexValue*) + 209 (mso99 + 1618335) [0x10fdbf19f]
1000 OfficeSpace::DataSource::SetValue(void*, int, FlexUI::FlexValue*) + 219 (mso99 + 1618825) [0x10fdbf389]
1000 ??? (mso99 + 2049406) [0x10fe2857e]
1000 TBCB::FExecute() + 207 (mso99 + 19078803) [0x110e65e93]
1000 ??? (Microsoft Excel + 22696804) [0x108e41364]
1000 ??? (Microsoft Excel + 784201) [0x10795b749]
1000 ??? (Microsoft Excel + 830344) [0x107966b88]
1000 ??? (Microsoft Excel + 28151338) [0x109374e2a]
1000 ??? (Microsoft Excel + 17515306) [0x10895032a]
1000 ??? (Microsoft Excel + 8664869) [0x1080df725]
1000 ??? (Microsoft Excel + 17318843) [0x1089203bb]
1000 ??? (Microsoft Excel + 17320609) [0x108920aa1]
1000 ??? (Microsoft Excel + 17123887) [0x1088f0a2f]
1000 ??? (Microsoft Excel + 17680883) [0x1089789f3]
978 ??? (Microsoft Excel + 18542604) [0x108a4b00c]
748 ??? (Microsoft Excel + 17687172) [0x10897a284]
183 ??? (Microsoft Excel + 28078607) [0x10936320f]
65 ??? (Microsoft Excel + 28078081) [0x109363001]
28 ??? (Microsoft Excel + 29894536) [0x10951e788]
11 ??? (Microsoft Excel + 401109) [0x1078fded5] (operating)
[..SNIP..]
Thread 0x2061,0x2066,0x2092,0x2095 DispatchQueue "com.apple.root.default-qos"(10) 4000 samples (1-1000) precedence 4-37 (base 4-37)
4000 start_wqthread + 15 (libsystem_pthread.dylib + 7031) [0x7fff69e33b77]
4000 _pthread_wqthread + 220 (libsystem_pthread.dylib + 10743) [0x7fff69e349f7]
4000 _dispatch_worker_thread2 + 92 (libdispatch.dylib + 69783) [0x7fff69be9097]
4000 _dispatch_root_queue_drain + 326 (libdispatch.dylib + 67927) [0x7fff69be8957]
4000 _dispatch_queue_override_invoke + 763 (libdispatch.dylib + 17584) [0x7fff69bdc4b0]
4000 _dispatch_client_callout + 8 (libdispatch.dylib + 9816) [0x7fff69bda658]
4000 _dispatch_call_block_and_release + 12 (libdispatch.dylib + 5828) [0x7fff69bd96c4]
4000 ??? (WLMKernel + 20262) [0x115009f26]
4000 ??? (mso20 + 12090) [0x10dd89f3a]
4000 Mso::Async::InvokeInCallbackContext(Mso::Functor<void ()>&&, Mso::Async::IDispatchQueue*, Mso::Async::Particulars::IIdleDispatchQueue*, bool) + 151 (mso20 + 12306) [0x10dd8a012]
2000 ??? (mso20 + 262665) [0x10ddc7209]
2000 ??? (mso30 + 206542) [0x10e48d6ce]
2000 ??? (mso30 + 206654) [0x10e48d73e]
2000 ??? (mso30 + 207281) [0x10e48d9b1]
1000 ??? (MicrosoftCSI + 151495) [0x10bee6fc7]
1000 Mso::Synchronization::MsoWaitForMultipleObjects(unsigned int, void* const*, bool, MsoTimeoutInterval const&, bool, bool) + 359 (mso20 + 339202) [0x10ddd9d02]
1000 ??? (mso20 + 363129) [0x10dddfa79]
1000 ??? (WLMKernel + 41663) [0x11500f2bf]
1000 ??? (WLMKernel + 41855) [0x11500f37f]
1000 ??? (WLMKernel + 42825) [0x11500f749]
1000 ??? (WLMKernel + 57450) [0x11501306a]
1000 MBUSignaledCondition::WaitForDuration(unsigned int) + 58 (mbukernel + 59154) [0x10db19712]
1000 MBUCondition::WaitForDuration(unsigned int) + 25 (mbukernel + 59229) [0x10db1975d]
1000 __psynch_cvwait + 10 (libsystem_kernel.dylib + 14466) [0x7fff69d77882]
*1000 psynch_cvcontinue + 0 (pthread + 18722) [0xffffff7f82b41922]
1000 ??? (MicrosoftCSI + 33030) [0x10beca106]
1000 Mso::Synchronization::MsoWaitForMultipleObjects(unsigned int, void* const*, bool, MsoTimeoutInterval const&, bool, bool) + 241 (mso20 + 339084) [0x10ddd9c8c]
1000 ??? (mso20 + 363129) [0x10dddfa79]
1000 ??? (WLMKernel + 41663) [0x11500f2bf]
1000 ??? (WLMKernel + 41855) [0x11500f37f]
1000 ??? (WLMKernel + 42825) [0x11500f749]
1000 ??? (WLMKernel + 57450) [0x11501306a]
1000 MBUSignaledCondition::WaitForDuration(unsigned int) + 58 (mbukernel + 59154) [0x10db19712]
1000 MBUCondition::WaitForDuration(unsigned int) + 25 (mbukernel + 59229) [0x10db1975d]
1000 __psynch_cvwait + 10 (libsystem_kernel.dylib + 14466) [0x7fff69d77882]
*1000 psynch_cvcontinue + 0 (pthread + 18722) [0xffffff7f82b41922]
2000 ??? (mso20 + 229524) [0x10ddbf094]
2000 WaitForSingleObject + 35 (WLMKernel + 69672) [0x115016028]
2000 ??? (WLMKernel + 41663) [0x11500f2bf]
2000 ??? (WLMKernel + 41855) [0x11500f37f]
2000 ??? (WLMKernel + 42825) [0x11500f749]
2000 ??? (WLMKernel + 57450) [0x11501306a]
2000 MBUSignaledCondition::WaitForDuration(unsigned int) + 58 (mbukernel + 59154) [0x10db19712]
2000 MBUCondition::WaitForDuration(unsigned int) + 25 (mbukernel + 59229) [0x10db1975d]
2000 __psynch_cvwait + 10 (libsystem_kernel.dylib + 14466) [0x7fff69d77882]
*2000 psynch_cvcontinue + 0 (pthread + 18722) [0xffffff7f82b41922]
The answer to it will possible contain fixing one thing on Microsoft’s finish. If that is nonetheless occurring with the newest model of Excel and related software program, you must file a bug report.