sublimehq / sublime_merge

Issue tracker for Sublime Merge
https://www.sublimemerge.com
272 stars 14 forks source link

Crashes on macOS on UI actions #1888

Closed yaroslavyaroslav closed 2 months ago

yaroslavyaroslav commented 3 months ago

Version info

Description

On a large repo on a stage/unstage or a commit actions SM crashes sliently. Commit appears to be succeeded before the crash.

git gc mitigated this issue, but did not fix it.

Steps to reproduce

I'm getting this on a single project, so here's the setup

Steps to reproduce the behaviour:

  1. Open a largerepo, in my case it's iOS project with ~500mb .git folder.
  2. Add 3 files as untracked.
  3. Modify around 8 files within the codebase.
  4. Hit shortcut to stage file (super+enter) (right on that it crashes).

Expected behavior

To stash, commit changes

Debug Information The Sublime Merge debug information can be used to narrow down the cause of an issue. It can be collected with the following steps:

  1. Open Sublime Merge
  2. Open the repository where the bug occurs
  3. Navigate to Help > Debug Information via the application menu
  4. Before sharing, please redact any information that's sensitive such as file paths, git user information, remote URLs etc.

This section may be omitted/removed.

yaroslavyaroslav commented 2 months ago
=== App Version Information ===
Build: 2091

=== Git Version Information ===
Using Git: git (system)
git version 2.44.0
PATH: /Users/user/.mint/bin:/Applications/Sublime Merge.app/Contents/SharedSupport/bin:/Applications/Sublime Text.app/Contents/SharedSupport/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/Applications/Little Snitch.app/Contents/Components:/Users/user/.cargo/bin:/opt/homebrew/opt/openjdk@17/bin (from shell)
environment variables loaded using: /bin/zsh -l

=== Browse Page Information ===
HEAD: 789c59f05e3bada0ee926e957c60474cc28b0cd6
Is in merge: 0
Is in cherry_pick: 0
Is in rebase: 0
Is in revert: 0

=== Git Status Information ===
 M Podfile
 M Podfile.lock
 M Shared/Services/Router/Router+RouterPresentable.swift
?? .gitattributes
?? .swift-version
?? .swiftformat
?? .swiftlint.yml

=== Our Status Information ===
 M Podfile
 M Podfile.lock
 M Shared/Services/Router/Router+RouterPresentable.swift
?? .gitattributes
?? .swift-version
?? .swiftformat
?? .swiftlint.yml

=== Git Config Information ===
branch.XX-2179-update.merge=refs/heads/XX-2179-update
branch.XX-2179-update.remote=origin
branch.XX-3046-payment-view-transactions-fixes.merge=refs/heads/XX-3046-payment-view-transactions-fixes
branch.XX-3046-payment-view-transactions-fixes.remote=origin
branch.XX-3060-pro-detail-location-screen.merge=refs/heads/XX-3060-pro-detail-location-screen
branch.XX-3060-pro-detail-location-screen.remote=origin
branch.XX-3252-privacy-info.merge=refs/heads/XX-3252-privacy-info
branch.XX-3252-privacy-info.remote=origin
branch.bugfix/XX-1703-payments-screen-fixes.merge=refs/heads/bugfix/XX-1703-payments-screen-fixes
branch.bugfix/XX-1703-payments-screen-fixes.remote=origin
branch.bugfix/XX-2559.merge=refs/heads/bugfix/XX-2559
branch.bugfix/XX-2559.remote=origin
branch.bugfix/XX-2577.merge=refs/heads/bugfix/XX-2577
branch.bugfix/XX-2577.remote=origin
branch.bugfix/XX-3060-pro-details.merge=refs/heads/bugfix/XX-3060-pro-details
branch.bugfix/XX-3060-pro-details.remote=origin
branch.bugfix/XX-3061-location-picker-fix.merge=refs/heads/bugfix/XX-3061-location-picker-fix
branch.bugfix/XX-3061-location-picker-fix.remote=origin
branch.bugfix/duplicating-assets-fix.merge=refs/heads/bugfix/duplicating-assets-fix
branch.bugfix/duplicating-assets-fix.remote=origin
branch.design3-dev.merge=refs/heads/design3-dev
branch.design3-dev.remote=origin
branch.dev.merge=refs/heads/dev
branch.dev.remote=origin
branch.feature/XX-1181-release-notes-redesign.merge=refs/heads/feature/XX-1181-release-notes-redesign
branch.feature/XX-1181-release-notes-redesign.remote=origin
branch.feature/XX-1191.merge=refs/heads/feature/XX-1191
branch.feature/XX-1191.remote=origin
branch.feature/XX-1198-revert.merge=refs/heads/feature/XX-1198-revert
branch.feature/XX-1198-revert.remote=origin
branch.feature/XX-2446.merge=refs/heads/feature/XX-2446
branch.feature/XX-2446.remote=origin
branch.feature/XX-2577-revert.merge=refs/heads/feature/XX-2577-revert
branch.feature/XX-2577-revert.remote=origin
branch.feature/XX-2667.merge=refs/heads/feature/XX-2667
branch.feature/XX-2667.remote=origin
branch.feature/XX-3144-add-child-onboarding.merge=refs/heads/feature/XX-3144-add-child-onboarding
branch.feature/XX-3144-add-child-onboarding.remote=origin
branch.feature/XX-3173-transaction-details-screen.merge=refs/heads/feature/XX-3173-transaction-details-screen
branch.feature/XX-3173-transaction-details-screen.remote=origin
branch.feature/XX-3253-reminder-alert.merge=refs/heads/feature/XX-3253-reminder-alert
branch.feature/XX-3253-reminder-alert.remote=origin
branch.feature/XX-895-funding-sources.merge=refs/heads/feature/XX-895-funding-sources
branch.feature/XX-895-funding-sources.remote=origin
branch.redesign4.merge=refs/heads/redesign4
branch.redesign4.remote=origin
core.bare=false
core.editor=subl -n -w
core.excludesfile=~/.gitignore_global
core.filemode=true
core.ignorecase=true
core.logallrefupdates=true
core.precomposeunicode=true
core.repositoryformatversion=0
credential.helper=osxkeychain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.smudge=git-lfs smudge -- %f
hub.protocol=ssh
init.defaultbranch=master
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=git@bitbucket.org:appcls/mobile-ios.git
user.email=useroslav@gmail.com
user.name=useroslav

=== Our Config Information ===
Git Config Path Information
Using config path: /etc/gitconfig
Using config path: /Users/user/.config/git/config
Using config path: /Users/user/.gitconfig
Using config path: /Users/user/Development/Work/Application/mobile-ios/.git/config

Our config output is different to the Git config output
branch.XX-2179-update.merge=refs/heads/XX-2179-update
branch.XX-2179-update.remote=origin
branch.XX-3046-payment-view-transactions-fixes.merge=refs/heads/XX-3046-payment-view-transactions-fixes
branch.XX-3046-payment-view-transactions-fixes.remote=origin
branch.XX-3060-pro-detail-location-screen.merge=refs/heads/XX-3060-pro-detail-location-screen
branch.XX-3060-pro-detail-location-screen.remote=origin
branch.XX-3252-privacy-info.merge=refs/heads/XX-3252-privacy-info
branch.XX-3252-privacy-info.remote=origin
branch.bugfix/XX-1703-payments-screen-fixes.merge=refs/heads/bugfix/XX-1703-payments-screen-fixes
branch.bugfix/XX-1703-payments-screen-fixes.remote=origin
branch.bugfix/XX-2559.merge=refs/heads/bugfix/XX-2559
branch.bugfix/XX-2559.remote=origin
branch.bugfix/XX-2577.merge=refs/heads/bugfix/XX-2577
branch.bugfix/XX-2577.remote=origin
branch.bugfix/XX-3060-pro-details.merge=refs/heads/bugfix/XX-3060-pro-details
branch.bugfix/XX-3060-pro-details.remote=origin
branch.bugfix/XX-3061-location-picker-fix.merge=refs/heads/bugfix/XX-3061-location-picker-fix
branch.bugfix/XX-3061-location-picker-fix.remote=origin
branch.bugfix/duplicating-assets-fix.merge=refs/heads/bugfix/duplicating-assets-fix
branch.bugfix/duplicating-assets-fix.remote=origin
branch.design3-dev.merge=refs/heads/design3-dev
branch.design3-dev.remote=origin
branch.dev.merge=refs/heads/dev
branch.dev.remote=origin
branch.feature/XX-1181-release-notes-redesign.merge=refs/heads/feature/XX-1181-release-notes-redesign
branch.feature/XX-1181-release-notes-redesign.remote=origin
branch.feature/XX-1191.merge=refs/heads/feature/XX-1191
branch.feature/XX-1191.remote=origin
branch.feature/XX-1198-revert.merge=refs/heads/feature/XX-1198-revert
branch.feature/XX-1198-revert.remote=origin
branch.feature/XX-2446.merge=refs/heads/feature/XX-2446
branch.feature/XX-2446.remote=origin
branch.feature/XX-2577-revert.merge=refs/heads/feature/XX-2577-revert
branch.feature/XX-2577-revert.remote=origin
branch.feature/XX-2667.merge=refs/heads/feature/XX-2667
branch.feature/XX-2667.remote=origin
branch.feature/XX-3144-add-child-onboarding.merge=refs/heads/feature/XX-3144-add-child-onboarding
branch.feature/XX-3144-add-child-onboarding.remote=origin
branch.feature/XX-3173-transaction-details-screen.merge=refs/heads/feature/XX-3173-transaction-details-screen
branch.feature/XX-3173-transaction-details-screen.remote=origin
branch.feature/XX-3253-reminder-alert.merge=refs/heads/feature/XX-3253-reminder-alert
branch.feature/XX-3253-reminder-alert.remote=origin
branch.feature/XX-895-funding-sources.merge=refs/heads/feature/XX-895-funding-sources
branch.feature/XX-895-funding-sources.remote=origin
branch.redesign4.merge=refs/heads/redesign4
branch.redesign4.remote=origin
core.bare=false
core.editor=subl -n -w
core.excludesfile=~/.gitignore_global
core.filemode=true
core.ignorecase=true
core.logallrefupdates=true
core.precomposeunicode=true
core.repositoryformatversion=0
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.smudge=git-lfs smudge -- %f
hub.protocol=ssh
init.defaultbranch=master
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=git@bitbucket.org:appcls/mobile-ios.git
user.email=email@gmail.com
user.name=Name Mame

=== Git Attributes Information ===
git check_attr --all output
.gitattributes
.swift-version
.swiftformat

=== Our Modified Files Newline Normalisation and EOL Information ===
Podfile: unspecified - native
Podfile.lock: unspecified - native
Shared/Services/Router/Router+RouterPresentable.swift: unspecified - native

=== Our Modified Files Flag Information ===
Ignoring symlinks: 0
Podfile: Working - Normal File : Index - Normal File
Podfile.lock: Working - Normal File : Index - Normal File
Shared/Services/Router/Router+RouterPresentable.swift: Working - Normal File : Index - Normal File
yaroslavyaroslav commented 2 months ago

UPD: I noticed that it crashes on the very last unstaged file tab staging mostly. Means if stage within the middle of a unstaged file tabs row could went well, when it comes to the last one in the row it almost certain would be a crash.

Also not sure about importance of this bit, but all crashes are appears on this syntax https://github.com/Swift-Next/Swift-Next, just mentioned in the beginning of this year some rare crashes ST4 itself on it on a large project on a "go to symbol in project" hit.

yaroslavyaroslav commented 2 months ago

At the first glance issue seems resolved on 2093 build.

lkrms commented 2 months ago

I've been having a similar issue with build 2092. It's infrequent enough that I can't replicate it consistently, but when it happens, Sublime Merge doesn't even respond to Force Quit--ps reports the process state as E for exiting, but it cannot be killed. Tonight, the only fix that seems to work--rebooting--failed initially because macOS thought the process was still running, and recommended I try Force Quit 😬

At the first glance issue seems resolved on 2093 build.

I was excited to read this, but when I went to check for an update, 2092 was the latest. Were you offered 2093 automatically, @yaroslavyaroslav?

yaroslavyaroslav commented 2 months ago

@lkrms yep, but you have to switch to a dev branch upfront. It could be done by downloading dev build from the official site (can't provide a link since I'm from a mobile)

lkrms commented 2 months ago

@lkrms yep, but you have to switch to a dev branch upfront. It could be done by downloading dev build from the official site (can't provide a link since I'm from a mobile)

Thank you! I hadn't noticed there was a dev channel :)

yaroslavyaroslav commented 2 months ago

I believe it could be closed due to new stable release.