Skip to content

macOS: crash on Touch Bar Macs (_NSTouchBarFinderObservation KVO removal, SIGILL) in 0.10.1 #65

Description

@piaoboo

Summary

disktree 0.10.1 aborted with an uncaught Objective-C exception raised inside AppKit's Touch Bar bookkeeping. No disktree frames are involved in the throw; it happens during a display-cycle flush on the main thread.

This matches a known GPUI macOS backend issue on Macs with a Touch Bar:

Environment

  • disktree 0.10.1 (disktree-0.10.1-x86_64-macos.zip)
  • macOS 26.7 (25G229), Intel x86_64
  • MacBookPro16,1 (has a Touch Bar), plus one external display
  • The app had been running for ~30 minutes; crash was not deterministic

Crash

Exception Type:    EXC_BAD_INSTRUCTION (SIGILL)
Termination Reason:  Namespace SIGNAL, Code 4, Illegal instruction: 4
Triggered by Thread: 0  main, Dispatch Queue: com.apple.main-thread

Application Specific Backtrace:

0   CoreFoundation   __exceptionPreprocess
1   libobjc.A.dylib  objc_exception_throw
2   Foundation       -[NSObject(NSKeyValueObserverRegistration) _removeObserver:forProperty:]
3   Foundation       -[NSObject(NSKeyValueObserverRegistration) removeObserver:forKeyPath:]
4   Foundation       -[NSObject(NSKeyValueObserverRegistration) removeObserver:forKeyPath:context:]
5   AppKit           -[_NSTouchBarFinderObservation invalidate]
6   AppKit           ___NSTouchBarFinderSetNeedsUpdateOnMain_block_invoke_2
7   AppKit           NSDisplayCycleObserverInvoke
8   AppKit           NSDisplayCycleFlush
9   QuartzCore       CA::Transaction::run_commit_handlers(CATransactionPhase)
10  QuartzCore       CA::Transaction::commit()
11  AppKit           __62+[CATransaction(NSCATransaction) NS_setFlushesWithDisplayLink]_block_invoke
...
23  AppKit           -[NSApplication run]
24  disktree         gpui_macos::platform::MacPlatform as gpui::platform::Platform>::run
...
29  disktree         main

Per zed#64819, the exception reason for this signature is:

NSRangeException: Cannot remove an observer <_NSTouchBarFinderObservation 0x…> for the key path "nextResponder" from <NSView 0x…> because it is not registered as an observer.

Notes

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions