Closed Bug 453813 Opened 17 years ago Closed 17 years ago

Camino 1.6.3 crashes on launch due to exceptions in NSSpellchecker

Categories

(Camino Graveyard :: General, defect)

PowerPC
macOS
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: mickey1980, Assigned: stuart.morgan+bugzilla)

Details

(Keywords: fixed1.8.1.18, fixed1.9.0.4)

Attachments

(5 files)

User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.0.13) Gecko/20070810 Camino/1.0.6 Build Identifier: http://caminobrowser.org/download/releases/1.6.3/ downloaded Camino 1.6.3 under Mac OSX 10.4.11. the new Camino crashes on launch. Also crashes with Camino 1.5.5 and 1.6.1. I am thereffore still using Camino 1.0.6. I have followed online recommendations and removed the camino plist, cache and Reproducible: Always Steps to Reproduce: 1. download camino 1.6.3 from web site 2. copy executable to Applications 3. double-click Camino icon to launch Actual Results: Camino window opens with the "welcome" URL in the URL field. Program appears to hang for a while, then crashes and the Talkback takes over. I have tried to report this through Talkback, though I wrongly reported my working version to be 1.6.0 (instead of 1.0.6) I have followed the instructions to use Activity Monitor to save the Camino process log when it crashed. The result is pasted below: Analysis of sampling pid 268 every 10.000000 milliseconds Call graph: 286 Thread_0f0f 286 0x0 286 _sigtramp 286 fcStackDumpCollectorCreator(unsigned long, char*, int, char**) 286 FCProcessSignal(int, UNIX_EXCEPTION_CONTEXT*) 286 MemoryCanRead(void*, unsigned long, unsigned char, unsigned char) 286 LSOpenFromRefSpec 286 LSOpenApplication_Common(LSApplicationParametersV1 const*, AEKeyDesc const*, ProcessSerialNumber*, FSRef*) 286 _LSOpenStuff 286 CFDictionaryApplyFunction 286 LSOpenItemsWithHandler_CFDictionaryApplier(void const*, void const*, void*) 286 LSOpenApp(LSOpenState*, FSNode*, unsigned long, ProcessSerialNumber*) 286 LSLaunch(LSContext*, FSNode*, unsigned long, void*, AEDesc const*, __CFDictionary const*, unsigned long, ProcessSerialNumber*) 286 _LSAddRecentNode 286 FSNodeNewAlias 286 _FSNewVersion3Alias 286 AL_fillVersion3Alias 286 AL_fillInternalAliasRecord 286 FSGetCatalogInfo 286 PBGetCatalogInfoSync 286 GetFSRefAttributes(FSMount*, FSRefPrivate const*, unsigned long, FSAttributeInfo*, unsigned long, char*) 286 FSMount::getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*) 286 VolFSMount::_getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*) 286 GetVolFSAttributes(VolumeInfo*, unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned long, FSVolAttributeInfo*, unsigned char*) 286 getattrlist_retry(unsigned, unsigned long, char const*, unsigned long, attrlist*, void*, unsigned long, unsigned long) 286 CreateVolFSPath(unsigned, unsigned long, char const*, unsigned long, char*) 286 sprintf 286 __vfprintf 286 localeconv_l 286 localeconv_l 286 Thread_1003 286 _pthread_body 286 _pt_root 286 nsThread::Main(void*) 286 nsSocketTransportService::Run() 286 nsSocketTransportService::Poll(unsigned*) 286 PR_Poll 286 poll 286 select 286 select 286 Thread_1103 286 _pthread_body 286 _pt_root 286 nsThread::Main(void*) 286 TimerThread::Run() 286 PR_WaitCondVar 286 pt_TimedWait 286 pthread_cond_timedwait 286 semaphore_timedwait_signal_trap 286 semaphore_timedwait_signal_trap 286 Thread_1203 286 _pthread_body 286 __CFSocketManager 286 select 286 select 286 Thread_1303 286 _pthread_body 286 forkThreadForFunction 286 -[NSUIHeartBeat _heartBeatThread:] 286 -[NSConditionLock lockWhenCondition:] 286 pthread_cond_wait 286 semaphore_wait_signal_trap 286 semaphore_wait_signal_trap Total number in stack (recursive counted multiple, when >=5): Sort by top of stack, same collapsed (when >= 5): select 572 localeconv_l 286 semaphore_timedwait_signal_trap 286 semaphore_wait_signal_trap 286 Sample analysis of process 268 written to file /dev/stdout Sampling process 268 each 10 msecs 300 times
The sample is after it's already crashed internally and Talkback is getting crash information, so that unfortunately doesn't tell us anything about what happened. Could you provide the Talkback ID from one of your reports? Also, please download and run: http://escapedthoughts.com/camino/CaminoDiagnostics.zip and attach the file it creates here (using the "Add an attachment" link above)
Actually, since this is 10.4 PPC, I can maybe save you the steps in comment 1 by asking whether you have 1Password installed. If so, this is a known bug in 1Password, and you'll need to remove it in order to run Camino and get in touch with their support to see where they are in terms of fixing it.
I am not using 1Password (I use the Mac keychain, which seems to be OK for me). I downloaded and unzipped Camino Diagnostics the link for which you sent in your email. Camino was still running, but stuck with the "beach ball of death". The Incident ID when Camino crashed under similar circumstances was TB49369053G . I have also got the "Saved Incident" text generated by hitting the "Save" button on Talkback. Let me know if you would like me to send it. Thank you very much for looking at this.
Hm, that array exception in console doesn't look good. Does 1.6.3 crash when run under Troubleshoot Camino? http://pimpmycamino.com/parts/troubleshoot-camino
Downloaded the troubleshoot-camino zip file, expanded and then dragged my Camino 1.6.3 onto the Troubleshoot Camino script. Camino window opened up and then appeared to freeze (cursor visible as an arrow plus rotating circle containing 2 black quadrants attached to the arrow). After 20 mins in this state, I called up "Force Quit". Camino was in the list, looking normal - i.e. black text, no "not responding" message. Does this help?
That cursor is our page loading cursor, rather than the OS hang cursor, which means that at least we seem to have been servicing the runloop. Could you open it that way again, and see if interacting with the UI (things like opening a new window from the menu bar) work? If you open Console (in Application/Utilities) after you launch with Troubleshoot Camino, do you see new "*** -[NSCFArray addObject:]: attempt to insert nil" messages in console.log (where the time of the message lines up with your launching under TC)?
1. Yes, I can interact with the menu bar. New Window and View Source both lead to a new window opening and "Loading..." in the status bar (with moving striped barber's pole), but then nothing else happens. Again had to Force Quit. 2. Copy of Console display attached: "attempt to insert nil" is among the messages. 2008-09-06 10:26:04.555 Camino[302] .scriptSuite warning for attribute 'boundsAsQDRect' of class 'NSWindow' in suite 'NSCoreSuite': 'NSData<QDRect>' is not a valid type name. 2008-09-06 10:26:04.555 Camino[302] .scriptSuite warning for attribute 'document' of class 'NSWindow' in suite 'NSCoreSuite': 'NSDocument' is not a valid type name. 2008-09-06 10:26:04.555 Camino[302] .scriptSuite warning for argument 'SaveOptions' of command 'Close' in suite 'NSCoreSuite': 'NSNumber<SaveOptions>' is not a valid type name. 2008-09-06 10:26:04.555 Camino[302] .scriptSuite warning for argument 'SaveOptions' of command 'Quit' in suite 'NSCoreSuite': 'NSNumber<SaveOptions>' is not a valid type name. 2008-09-06 10:26:04.555 Camino[302] .scriptSuite warning for attribute 'boundsAsQDRect' of class 'NSWindow' in suite 'NSCoreSuite': 'NSData<QDRect>' is not a valid type name. 2008-09-06 10:26:06.196 Camino[302] *** -[NSCFArray addObject:]: attempt to insert nil 2008-09-06 10:27:52.623 Camino[316] .scriptSuite warning for attribute 'boundsAsQDRect' of class 'NSWindow' in suite 'NSCoreSuite': 'NSData<QDRect>' is not a valid type name. 2008-09-06 10:27:52.623 Camino[316] .scriptSuite warning for attribute 'document' of class 'NSWindow' in suite 'NSCoreSuite': 'NSDocument' is not a valid type name. 2008-09-06 10:27:52.623 Camino[316] .scriptSuite warning for argument 'SaveOptions' of command 'Close' in suite 'NSCoreSuite': 'NSNumber<SaveOptions>' is not a valid type name. 2008-09-06 10:27:52.623 Camino[316] .scriptSuite warning for argument 'SaveOptions' of command 'Quit' in suite 'NSCoreSuite': 'NSNumber<SaveOptions>' is not a valid type name. 2008-09-06 10:27:52.624 Camino[316] .scriptSuite warning for attribute 'boundsAsQDRect' of class 'NSWindow' in suite 'NSCoreSuite': 'NSData<QDRect>' is not a valid type name. 2008-09-06 10:27:54.268 Camino[316] *** -[NSCFArray addObject:]: attempt to insert nil
Maybe we can use the trunk exception crashing bug to our advantage here. Try downloading a nightly build from http://caminobrowser.org/download/releases/nightly/ and running that under Troubleshoot Camino (you should *only* run it using TC, or it will modify parts of your profile so that 1.0.6 can't read them). With luck, it will crash (either right away, or after you try opening a new window from the menu bar), and the Console will have a longish comment starting with "Stack trace:" that would point us to where this is happening. Thanks for your patience here :)
Thank you for your guidance - much appreciated. I have now followed your instructions, downloaded the nightly build and dragged it onto TC. As you predicted, it crashed. The Console log is as follows: ===== Saturday, 6 September 2008 16:36:56 Europe/London ===== 2008-09-06 16:37:12.019 Camino[448] CFLog (0): CFMessagePort: bootstrap_register(): failed 1103 (0x44f), port = 0x2b03, name = 'org.mozilla.camino.ServiceProvider' See /usr/include/servers/bootstrap_defs.h for the error codes. 2008-09-06 16:37:12.020 Camino[448] CFLog (99): CFMessagePortCreateLocal(): failed to name Mach port (org.mozilla.camino.ServiceProvider) 2008-09-06 16:37:18.478 Camino[448] Mozilla has caught an Obj-C exception [NSInvalidArgumentException: *** -[NSCFArray addObject:]: attempt to insert nil] Sep 6 16:37:19 michael-chius-power-mac-g5 crashdump[453]: Camino crashed Sep 6 16:37:20 michael-chius-power-mac-g5 crashdump[453]: crash report written to: /Users/michaelchiuold/Library/Logs/CrashReporter/Camino.crash.log 2008-09-06 16:37:22.460 Talkback[457] Could not find image named 'firefox'. 2008-09-06 16:37:22.463 Talkback[457] Could not find image named 'supportsoft'. ----------- No reference to "stack trace", I'm afraid. Not sure why there is a reference to Firefox here - although Firefox *is* installed on my machine.
Attached file Camino crash log
Here is a copy of the crash log - just retrieved it from ~Library/Logs/Crash Reporter/. Because of the size limitation on attaments, I am sending it to you in 3 parts.
Attachment #337209 - Attachment mime type: application/octet-stream → text/plain
Attachment #337208 - Attachment mime type: application/octet-stream → text/plain
Attachment #337207 - Attachment mime type: application/octet-stream → text/plain
Whoops, the stack logging only happens in debug builds, which is why that didn't show up. Luckily this was caught in a much more specific place than I was expecting, so even without the exception stack that was useful. This appears to be dying inside of mozOSXSpell::GetLanguage, which as far as I can tell means that NSSpellChecker itself is the source of the exception. I'll have to make and post a custom logging build to be sure. Do other programs that have spell-checking work (and correctly check spelling) on your machine? Have you installed any third-party spelling plug-ins?
The only spell-checking s/w I am aware of is Microsoft Office 2004. It checks correctly for US English (I've yet to get UK English spell checking to work!). Modules for which spell checking is seen to cut in include Word, Excel and Entourage. I have not deliberately installed any spell-check plug-ins, 3rd party or otherwise.
I think Office uses their own spelling system, not the OS spell check. What about TextEdit?
I was unaware that TextEdit did spelling checks, but now you have drawn my attention to it, I went and looked up the "help" about it. It appears that my copy of TextEdit does not respond to any of the Edit/Spelling sub-commands ('spelling...', 'check spelling', and 'check spelling as you type'). Could this be the cause of the problem?
If TextEdit (or Safari, which also does spell-checking in form fields like this one) isn't able to put the red-dot underline under misspelled words, and it doesn't respond to any of the commands, it's very likely that your OS spelling dictionary or other components of the Mac OS X built-in spell-checker are corrupted.
Yes, that's about what I expected. I'll make a patch that does exception handling for branch that should prevent the crashes, and post a build for you to verify, but the basic problem is that the built-in OS spelling system on your machine is damaged.
Gentlemen, Thank you for getting to the bottom of this. I'll wait for the patch and try it out before attempting to fix the spelling system on my OS. I know it's not really your responsibility, but do you have any hints as to where to start to fix OSX spelling? Appreciate any suggestions, but fully acknowledge you have no obligation to reply.
I've posted a branch build with guards everywhere that seemed likely at http://escapedthoughts.com/camino/Camino-453813.dmg Please let me know if that version runs on your machine. The expected behavior is that everything but spell check will work, and you'll see messages in Console about exceptions. (Theoretically we could try to detect this case at the Camino layer and disable the spelling-related UI, but that's overkill for something that's already a damaged-OS case.) As for fixing your OS, I don't have any suggestions beyond the obvious-but-painful complete re-install. Perhaps someone in Apple's forums at http://discussions.apple.com would have a suggestion (beyond the knee-jerk "repair permissions")
This build runs successfully! I ran it twice, on both occasions by dragging it onto Troubleshoot Camino. First time it started quite slowly (presumably it was initiating stuff for the first time). Second time, it was very quick. I had the console log on for the second run. A copy of the log is below. Thank you very much for you help on this. I'll try to get the OS spelling fixed, although re-install seems a lot of work to restore a feature I don't use. I run "repair permissions" on a regular basis anyway and this did not fix the Camino problem. However, as Camino is by far my preferred browser, I'll try to sort out the spelling - just so that I can be sure that future releases of Camino will cause no problems. Many thanks again. Mike Copy of Console Log ===== Tuesday, 9 September 2008 10:13:42 Europe/London ===== 2008-09-09 10:13:49.193 Camino[341] .scriptSuite warning for attribute 'boundsAsQDRect' of class 'NSWindow' in suite 'NSCoreSuite': 'NSData<QDRect>' is not a valid type name. 2008-09-09 10:13:49.193 Camino[341] .scriptSuite warning for attribute 'document' of class 'NSWindow' in suite 'NSCoreSuite': 'NSDocument' is not a valid type name. 2008-09-09 10:13:49.193 Camino[341] .scriptSuite warning for argument 'SaveOptions' of command 'Close' in suite 'NSCoreSuite': 'NSNumber<SaveOptions>' is not a valid type name. 2008-09-09 10:13:49.193 Camino[341] .scriptSuite warning for argument 'SaveOptions' of command 'Quit' in suite 'NSCoreSuite': 'NSNumber<SaveOptions>' is not a valid type name. 2008-09-09 10:13:49.194 Camino[341] .scriptSuite warning for attribute 'boundsAsQDRect' of class 'NSWindow' in suite 'NSCoreSuite': 'NSData<QDRect>' is not a valid type name. 2008-09-09 10:13:51.552 Camino[341] Unable to get spelling language: *** -[NSCFArray addObject:]: attempt to insert nil 2008-09-09 10:13:51.556 Camino[341] Unable to get spelling language: *** -[NSCFArray addObject:]: attempt to insert nil
FYI. After combing the discussion forums to find references to problems with the OS X spelling check facilities, I came across a suggestion to use the Onyx utility to "Reset: Links between documents and applications". I downloaded the (free) utility from: http://www.titanium.free.fr/pgs/english.html and ran it. This fixed the spelling check problem (tested with TextEdit). Camino version 1.6.3 now works without crashing. The full discussion thread on the spelling problem is at: http://forums.macosxhints.com/archive/index.php/t-55661.html
Assignee: nobody → stuart.morgan+bugzilla
Status: UNCONFIRMED → NEW
Ever confirmed: true
This catches and silently discards exceptions coming from inside the spelling methods, which should only happen if the spelling system is damaged (I don't log because it gets called a *lot*, and the fact that spelling doesn't work anywhere on the OS gives us the same information). Once this has r/sr, I'll ask for 1.8.1 and 1.9.0 approval.
Attachment #338449 - Flags: review?(mikepinkerton)
Josh, once this is good to go you probably want to take it for trunk, in case Firefox ever decides to go back to the OS spelling system.
Summary: [10.4.11] Camino 1.6.3 crashes on launch → Camino 1.6.3 crashes on launch due to exceptions in NSSpellchecker
Attachment #338449 - Flags: review?(mikepinkerton) → review+
Comment on attachment 338449 [details] [diff] [review] make spelling exceptions non-fatal sr=pink
Stuart, are you going to request branch approval, or are you looking for another (super)review, or?
Flags: camino1.6.5?
Comment on attachment 338449 [details] [diff] [review] make spelling exceptions non-fatal I didn't notice that pink thought he was sr'ing. In that case, josh, can you review?
Attachment #338449 - Flags: superreview+
Attachment #338449 - Flags: review?(joshmoz)
Attachment #338449 - Flags: review+
Attachment #338449 - Flags: review?(joshmoz) → review+
Comment on attachment 338449 [details] [diff] [review] make spelling exceptions non-fatal Requesting branch approvals. Camino is the only client of this code.
Attachment #338449 - Flags: approval1.9.0.3?
Attachment #338449 - Flags: approval1.8.1.18?
landed on trunk
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Comment on attachment 338449 [details] [diff] [review] make spelling exceptions non-fatal Approved for 1.8.1.18 and 1.9.0.3, a=dveditz for release-drivers
Attachment #338449 - Flags: approval1.9.0.3?
Attachment #338449 - Flags: approval1.9.0.3+
Attachment #338449 - Flags: approval1.8.1.18?
Attachment #338449 - Flags: approval1.8.1.18+
Checked in on MOZILLA_1_8_BRANCH for 1.8.1.18.
Flags: camino1.6.5? → camino1.6.5+
Keywords: fixed1.8.1.18
Checked in on cvs trunk for 1.9.0.4.
Keywords: fixed1.9.0.4
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: