Mac OS X spell checking problems
Mac OS X loads services from various locations. Knowing what they are could save you a lot of trouble. I was just about to reinstall again my freshly reinstalled MacBook because I didn’t know those locations.
An obscure OS X feature (or more likely a bug) stroke me a few hours ago. All of a sudden my Safari started throwing Couldn’t connect to Spell Check service alerts after every keystroke in any text field. I Goggled a lot, read tons of articles, deleted some files, repaired permissions with Disk Utility and rebooted several times but with no effect at all.
First I looked for my ~/Library/Services
folder but I didn’t have one.
Then looked in /System/Library/Services
and found the service called AppleSpell.service
.
I checked the permissions of the executable file inside and they were OK.
Running the executable by hand didn’t help – the message still popped up in Safari.
Then I looked at Console’s output just to find the following messages inside:
Aug 3 23:39:04 home com.apple.launchd[102] ([0x0-0x14014].net.leuski.cocoAspell.Service[157]): Exited abnormally: Trace/BPT trap
Aug 3 23:45:49 home [0x0-0x1b01b].net.leuski.cocoAspell.Service[174]: dyld: Library not loaded: /usr/local/lib/libaspell.15.dylib
Aug 3 23:45:49 home [0x0-0x1b01b].net.leuski.cocoAspell.Service[174]: Referenced from: /Volumes/Time Machine/Library/Services/cocoAspell.service/Contents/MacOS/cocoAspell
Aug 3 23:45:49 home [0x0-0x1b01b].net.leuski.cocoAspell.Service[174]: Reason: image not found
Aug 3 23:45:49 home ReportCrash[175]: Formulating crash report for process cocoAspell[174]
It turned out that the sole reason for this misbehaviour was that Mac OS X was loading the cocoAspell.service
from my external backup hard drive where I had put my home directory’s contents some hours ago and it was trying to dynlink to a library file that was wiped out after I reinstalled the OS earlier that day.
Removing the cocaAspell.service
bundle from the Library/Services
folder on my backup drive and logging off and on again solved the problem.
Positional independence of the executable bundles is one of my favourite OS X features, but this time it has gone too far. Isn’t autoloading suspicious services from external devices a little bit counter security?