How do I fix 'bus error' when trying to do git-commit or git-status
I have a git repository on an OS X server that used to work fine. I was able to add files, commit them, and pull the content to my laptop.
git log does still work properly and gives me the usual output.
I am guessing something is wrong with the repository, because in other repos on the same server both
git commit and
git status do still work.
How do I go about debugging / fixing this?
Update: I re-created the directory I last created before the problem occurred. That allowed me to do
git status again!
git commit -a directly after that, however, gave the following error:
fatal: Unable to create '/path/to/repo/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue.
I then manually deleted the index.lock file, and now the problem is solved..
I have no clue what has gone wrong. Any ideas..?
2 Solutions collect form web for “How do I fix 'bus error' when trying to do git-commit or git-status”
Bus error indicates a memory problem; it could be as simple as a corrupted file on disk, a bug in the
git program, or failing memory, memory controller, etc.
If you can run a memory testing tool on your computer overnight, that would help rule out failing memory and controller. (You might also spot them with odd
SIGSEGV during large compiles, or random crashes of other programs…)
Can you re-create the repository on the server from your laptop’s clone, and see if it functions correctly? My guess is the repository is corrupted, and needs to be replaced with a good clone.
I encountered this issue due to a problem with the underlying filesystem on macOS Sierra (10.12.3). Essentially, for some reason my encrypted .dmg was corrupted – I think due to being extended with hdutils.
DiskUtility diagnosed the problem with the filesystem, but couldn’t repair it.
The only solution I found was to recreate the image and re-clone the repo.