git-scm.com: Git Gui crash on Mac OS Sierra

On MacOS Sierra git gui crashes randomlywith this message:

2016-09-22 13:17:36.759 Wish[23615:1501726] *** Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [0 nan]'
*** First throw call stack:
(
        0   CoreFoundation                      0x00007fff7f0407bb __exceptionPreprocess + 171
        1   libobjc.A.dylib                     0x00007fff937ada2a objc_exception_throw + 48
        2   CoreFoundation                      0x00007fff7f0bda65 +[NSException raise:format:] + 197
        3   QuartzCore                          0x00007fff84c09980 _ZN2CA5Layer12set_positionERKNS_4Vec2IdEEb + 152
        4   QuartzCore                          0x00007fff84c09af5 -[CALayer setPosition:] + 44
        5   QuartzCore                          0x00007fff84c0a14b -[CALayer setFrame:] + 644
        6   CoreUI                              0x00007fff8a9b0112 _ZN20CUICoreThemeRenderer26MakeOrUpdateScrollBarLayerEPK13CUIDescriptoraPP7CALayer + 1284
        7   CoreUI                              0x00007fff8a9ac317 _ZN20CUICoreThemeRenderer19CreateOrUpdateLayerEPK13CUIDescriptorPP7CALayer + 1755
        8   CoreUI                              0x00007fff8a92e4d1 _ZN11CUIRenderer19CreateOrUpdateLayerEPK14__CFDictionaryPP7CALayer + 175
        9   CoreUI                              0x00007fff8a931185 CUICreateOrUpdateLayer + 221
        10  AppKit                              0x00007fff7d675623 -[NSCompositeAppearance _callCoreUIWithBlock:options:] + 226
        11  AppKit                              0x00007fff7cd22a9d -[NSAppearance _createOrUpdateLayer:options:] + 76
        12  AppKit                              0x00007fff7cf9b143 -[NSScrollerImp _animateToRolloverState] + 274
        13  AppKit                              0x00007fff7cf5ab79 __49-[NSScrollerImp _installDelayedRolloverAnimation]_block_invoke + 673
        14  AppKit                              0x00007fff7ce21331 -[NSScrollerImp _doWork:] + 15
        15  Foundation                          0x00007fff80a3ec88 __NSFireDelayedPerform + 417
        16  CoreFoundation                      0x00007fff7efc0f44 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
        17  CoreFoundation                      0x00007fff7efc0bd3 __CFRunLoopDoTimer + 1075
        18  CoreFoundation                      0x00007fff7efc072a __CFRunLoopDoTimers + 298
        19  CoreFoundation                      0x00007fff7efb82f1 __CFRunLoopRun + 2081
        20  CoreFoundation                      0x00007fff7efb7874 CFRunLoopRunSpecific + 420
        21  HIToolbox                           0x00007fff7e557f6c RunCurrentEventLoopInMode + 240
        22  HIToolbox                           0x00007fff7e557ca9 ReceiveNextEventCommon + 184
        23  HIToolbox                           0x00007fff7e557bd6 _BlockUntilNextEventMatchingListInModeWithFilter + 71
        24  AppKit                              0x00007fff7cc4e5f5 _DPSNextEvent + 1093
        25  AppKit                              0x00007fff7d35e8eb -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1637
        26  Tk                                  0x00000001047cc285 TkGenerateButtonEvent + 494
        27  Tk                                  0x00000001047cc54d Tk_MacOSXSetupTkNotifier + 395
        28  Tcl                                 0x00000001048be5a8 Tcl_DoOneEvent + 237
        29  Tk                                  0x0000000104726f4f Tk_MainLoop + 33
        30  Tk                                  0x0000000104732a5b Tk_MainEx + 1566
        31  Wish                                0x000000010470d55a Wish + 9562
        32  libdyld.dylib                       0x00007fff94089255 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
error: git-gui died of signal 6

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Reactions: 17
  • Comments: 37 (1 by maintainers)

Most upvoted comments

@bxt I think I fixed it with this:

git config --local --unset gui.geometry

Edit: Nope, never mind

If you have Tk v8.4 lying around, it’s worth trying to replace the Wish executable within Git with an older Wish version (you may or may not want to backup the old version):

cp /System/Library/Frameworks/Tk.framework/Versions/8.4/Resources/Wish.app/Contents/MacOS/Wish /usr/local/Cellar/git/2.10.1/share/git-gui/lib/Git\ Gui.app/Contents/MacOS/

This seems to have worked around the crashes on my end.

gitk seems to use the wish executable defined in $PATH so you might need to bend that to the 8.4 version:

export PATH=/System/Library/Frameworks/Tk.framework/Versions/8.4/Resources/Wish.app/Contents/MacOS:$PATH

As a workaround (until I update git and then have to rerun it) this seems to work for me:

## Install newer Tcl/Tk version
brew install tcl-tk # homebrew/dupes/tcl-tk
brew link tcl-tk --force

## Your mileage may vary
#git_version=$(brew info git --json=v1 | jq -r '.[].linked_keg')
git_version=2.10.1

## Make `git gui` use newer Tcl/Tk version
ln -s --backup=numbered $(which wish) "/usr/local/Cellar/git/$git_version/share/git-gui/lib/Git Gui.app/Contents/MacOS/Wish"

Not a git issue. Try:

open /System/Library/Frameworks/Tk.framework/Versions/8.5/Resources/Wish.app

Then, attempt to resize the console, you’ll see the same error in the Report button in the crash dialog. This is internal to Apple.

Edit: Anyone know where to open this bug against Apple?

Hello everybody, This exception on Mac OSX Sierra … ‘CALayerInvalidGeometry’, reason: ‘CALayer position contains NaN: [nan 0]’ can now be solved by upgrading to the lastest Mac OS version available on Applestore : Mac OS 10.12.2. Best regards Thierry.

@bxt I think I fixed it with this:

git config --local --unset gui.geometry

Edit: Nope, never mind

This works for me

@djui I wasn’t sure if it was related to upgrading an installation that had to be hacked a little to get it working on Sierra. Hopefully these early issues with Sierra will be resolved soon and we can revert to a clean install. Until then we need somewhere to openly share these temporary workarounds.

Thank you! I had to do the following, and now gitk works for me:

brew uninstall --force git
brew install homebrew/dupes/tcl-tk
brew link tcl-tk --force
brew install git

Note, I have never had success with Apple bug reports, maybe someone with more clout can open the ticket?

@garth That the @@HOMEBREW_PREFIX@@ template variable is not replace looks like (i) unrelated to this issue and (ii) like a regression. Wondering what happened? I can’t directly see the issue in the Formular, if it wasn’t in the bottle.

@iDVB

http://stackoverflow.com/questions/39833961/git-gui-crashes-on-mac-os-x-sierra/40974770#40974770

This is what I’m currently doing to remedy this in case of a broken TCL/TK installation.

But as stated, this was already fixed Apple-side.

After updating to git 2.10.2 I had to repeat the above instructions as well as making the following change.

edit /usr/local/Cellar/git/2.10.2/libexec/git-core/git-gui and set the libdir (line 7) to

    libdir="/usr/local/Cellar/git/2.10.2/share/git-gui/lib"

@sieren, did the look of the git gui changed after replacing the Wish executable to 8.4? Mine has, looks really ugly and stretched.