macOS periodically freezing with BetterTouchTool running

Describe the bug

  • macOS periodically freezes for 15-30 seconds when BetterTouchTool is running. During this the freeze, the entire GUI is unresponsive, although shell commands (via SSH) work perfectly
  • When BetterTouchTool is restarted, the bug temporarily goes away (usually the system is fine for a few hours after restarting BTT)
  • If I do NOT kill BTT, the 10-15 second freeze will reoccur after any number of commands are run. For example: typing ⌘-space to summon LaunchBar; typing ⌘-O to go to an Open dialog box; Using the mouse, clicking File → Open… to summon an Open dialog box; Using the mouse, clicking the Cancel button in an Open dialog box

…in other words, there are certain "system commands" that seem to trigger another freeze. But simply typing text in a document or moving the mouse (even clicking within a document) don't seem to trigger another freeze. Hope this provides some useful clues?

Note: this issue has similar symptoms to the bug described in the macOS 10.3.4 freezing with BetterTouchTool usage thread, although by all accounts the main bug discussed in that thread has been resolved.

Affected input device (e.g. MacBook Trackpad, Magic Mouse/Trackpad, Touch Bar, etc.):
All input devices and the entire Mac GUI are affected. I usually have a USB mouse and Bluetooth keyboard connected, but not always.

Device information:

  • Type of Mac: MacBook Pro (Retina, 13-inch, Late 2013)
  • macOS version: macOS High Sierra 10.13.6
  • BetterTouchTool version: 2.536

Additional information (e.g. StackTraces, related issues, screenshots, workarounds, etc.):
For now my best workaround is to add alias kbtt='killall BetterTouchTool' to my .zshrc file so I can quickly ssh to my Mac from my iPhone and restart BetterTouchTool.

I've also reported this bug with log files via email, but starting a thread so others can track this.

In case you get to reproduce this, please run that terminal command:

sample BetterTouchTool -file ~/Desktop/BetterTouchToolSample.txt

It will create a file called BetterTouchToolSample.txt on your desktop which will allow me to see if/what BTT is doing. (andreas@folivora.ai)

Thanks Andreas - just mailed you a sample.

Best,
Dan

Hey,

seems like the "Toggle Mouse Speed" action is causing this in your case.
There is not much code in that function, so unfortunately this seems to be an Apple bug. I'll check if there are any alternate ways to toggle the mouse speed.

I am also experiencing this bug. Once it starts happening it happens every time I do some sort of key combination on the keyboard such as (cmd + q). Then it will hang for 15-30 seconds and do it again when I do another multi-key press. Happens until I restart BTT.

Any fix for this? Still happening, pretty frustrating...

it's an Apple bug, I have reported it to them and believe it should be fixed soon.

For now, if you are using the function to change the mouse speed (either with a modifier key or using the predefined action "toggle mouse speed", deactivate this in BTT.

If it's something else for you (the Apple bug could influence different things), the only way to tell would be to get a process sample as mentioned above

Thanks Andreas - I've disabled "Toggle mouse speed" and will post back with the results

Ok, thanks. Although, I haven't adjusted anything to affect the mouse speed (modifier keys nor the predefined action "toggle mouse speed". Would "Set Trackpad Speed" under Trackpad settings cause the bug, as well? I have it set to 1, not sure if that is default or not, since I might have changed it ages ago. What is default for that setting? Maybe I will just Reset ALL Settings for now and see if I still experience the freeze...

Nope, the Reset ALL Settings didn't fix it. Just got another freeze....

are you sure it's btt that's causing this in your case? (I haven't had any bug report that wasn't caused by the mouse speed changing action lately)

Yes, I'm sure. I stopped using BTT for 10+ days and didn't get one freeze. Then started getting freezes 24hrs into using it again.

After almost a year of trying to track down the problem, and thinking it was my MacBook Pro dying (was going to take it to an Apple Store to get the video card diagnosed) I determined it was BTT. I just simply don't get freezes when I'm not using it.

Freezes usually last for around 8-10 secs on avg, sometimes up to 30secs. When the 30sec freezes happen, they happen repeatedly, making my Mac totally unresponsive for minutes. I'm lucky to get any input control long enough to kill BTT, then everything is fine. This is incredibly frustrating as it happens at least once a day, usually after a few hours of BTT running.

I was finally able to have the McOS Console app running during a regular freeze (~8 secs) and logged this awhile back:

fault	16:49:33.902047 -0700	kernel	virtual IOReturn IOAccelEventMachine2::waitForStamp(int32_t, stamp_t, stamp_t *): initial wait for 1 second expired. Continue wait for 4 seconds. stamp 502913 (gpu_stamp=502912)
fault	16:49:37.902351 -0700	kernel	virtual IOReturn IOAccelEventMachine2::waitForStamp(int32_t, stamp_t, stamp_t *): timeout waiting for IntelAccelerator stamp 502913 (gpu_stamp=502912)
fault	16:49:37.902365 -0700	kernel	void IOAccelEventMachine2::handleFinishChannelRestart(IOReturn, int32_t, uint32_t) - Setting restart type to 4
fault	16:49:37.902370 -0700	kernel	void IOAccelEventMachine2::handleFinishChannelRestart(IOReturn, int32_t, uint32_t): GPURestartDequeued stampIdx=4 type=4 fromWhere=1 waitingOnIdx=4
default	16:49:37.902373 -0700	kernel	[IGPU] display event timeout on index = 4
fault	16:49:37.902426 -0700	kernel	void IOAccelEventMachine2::restart_channel(): GPURestartSkipped stampIdx=4 type=4
fault	16:49:37.902429 -0700	kernel	void IOAccelEventMachine2::restart_channel(): no channel associated with stamp_idx 4 (type 4)

There are probably other logs I could dig up, but this is definitely happening when the freezes occur.

Is it still useful to run this command you provided even after a freeze? Or is it too late to be useful after the freeze has occurred?
sample BetterTouchTool -file ~/Desktop/BetterTouchToolSample.txt

Thanks.

PS.
And if nothing else, it is a testament to how great BTT is because I just can't give it up, as much as I've tried :wink: I'm so used to my custom gestures, haha! Keep up the good work, and thanks again, Andreas.

unfortunately the sample command is only useful while the freeze is happening ;-(

Your issue however seems to be very different from the others I received, the logs definitely look gpu related - but BTT isn't really doing anything with the gpu :frowning: Not sure what could trigger this, but a sample during the freezes would probably show it

// it would also be interesting whether BTT still reacts to commands during the freezes (maybe try to create a keyboard shortcut and assign the predefined action "restart BetterTouchTool")

Funny you should mention that, I took the advice of a poster in another thread on here and set up a keyboard shortcut to restart BTT. I've used it numerous times when a freeze is occurring, but it always waits for the freeze to complete, then executes the command, restarting BTT afterward.

I can go back to having Console open and check for more log entries and provide them for you, but I'm pretty sure they are usually similar to the one I provided, but it can't hurt to have more.

Thanks again.

Just chiming in to say that I haven't had any freezes after going to

BetterTouchTool → Advanced → Mouse

…and disabling the "Change mouse speed while holding…" modifier keys.

Feeling fairly confident that this was the issue on my system and just purchased another license.

Thanks Andreas!

Could these be related? From Console.app:

boringssl_session_errorlog(224) <private>[0x7fad87c39660] [boringssl_session_read] SSL_ERROR_SSL(1): operation failed within the library
boringssl_session_handshake_error_print(205) <private>[0x7fad87c39660] <private>

Seeing quite a few of these errors in the Console logs...

Still getting freezes (~2-3 / day). Sorry to bring this up again... :frowning:

Hmm....are you on High Sierra? I just updated to HS last week (late, I know!) and have been getting sporadic beachballs which seem to have stopped completely after reading this thread and disabling BTT.

I was on HS, moved to the Mojave beta. Freezing occurs on both, for me.

@oceansurf these logs are not related

Unfortunately the only way to figure out what's going on is to run the sample command while the freezes are happening:

sample BetterTouchTool -file ~/Desktop/BetterTouchToolSample.txt

I currently only know of the Toggle Mouse Speed action that can cause the behavior, the problematic macOS function is not used anywhere else in BTT anymore. Are you sure it is BTT in your case? (because the problem can happen with various other apps too)