Open Bug 1151300 Opened 10 years ago Updated 3 years ago

Uncaught exceptions at nightly startup

Categories

(Toolkit :: Async Tooling, defect)

x86
OpenBSD
defect

Tracking

()

Tracking Status
firefox40 --- affected

People

(Reporter: gaston, Unassigned)

Details

Every time i start a nightly build from m-i or m-c on an openbsd box, those two exceptions are spun: ************************* A coding exception was thrown and uncaught in a Task. Full message: TypeError: malformed UTF-8 character sequence at offset 12 Full stack: toString@resource://gre/modules/osfile/osfile_unix_allthreads.jsm:92:12 task_init@resource://gre/components/nsSearchService.js:4862:11 TaskImpl_run@resource://gre/modules/Task.jsm:331:41 Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:870:21 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7 this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37 Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5 this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7 this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:671:7 onError@resource://gre/modules/osfile/osfile_native.jsm:66:7 ************************* ************************* A coding exception was thrown and uncaught in a Task. Full message: TypeError: ex is undefined Full stack: task@resource://gre/components/nsSearchService.js:4129:1 TaskImpl_run@resource://gre/modules/Task.jsm:331:41 Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:870:21 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7 this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37 Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5 this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7 this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:671:7 onError@resource://gre/modules/osfile/osfile_native.jsm:66:7 ************************* Dunno if it's specific to OpenBSD environment (i dont use an UTF8 locale) but would be nice to have hints to debug that.
Apparently, there is an OS-level error, but we fail when attempting to convert the error message to a string. Most likely, the error is thrown from within this call: https://dxr.mozilla.org/mozilla-central/source/toolkit/components/search/nsSearchService.js?from=nsSearchService.js#4894 Could you launch Firefox with option toolkit.osfile.log? This will activate OS.File logging, which might be able to tell us more about the error. My best guess, so far, is that the profile directory is at a path that contains a non-ascii char, on a non-UTF8 locale, which is something we don't know how to handle on Unix.
hm there's nothing special to the paths used when finding the profile: OS Controller Posting message {"fun":"SET_DEBUG","args":[true],"id":1} OS Controller Message posted OS Controller Expecting reply OS Controller Posting message {"fun":"writeAtomic","args":[{"string":"/home/landry/.mozilla/firefox/9i5qnx6q.Nightly/sessio nCheckpoints.json"},{"string":"{\"profile-after-change\":true,\"final-ui-startup\":true}"},{"tmpPath":{"string":"/home/land ry/.mozilla/firefox/9i5qnx6q.Nightly/sessionCheckpoints.json.tmp"}}],"id":2} OS Controller Message posted OS Controller Expecting reply OS Controller Received message from worker {"id":1,"timeStamps":{"entered":1428242512607,"loaded":1428242518775}} OS Controller Received message from worker {"ok":53,"id":2} OS Controller Posting message {"fun":"exists","args":[{"string":"/home/landry/.cache/mozilla/firefox/9i5qnx6q.Nightly/direc toryLinks.json"}],"id":3} OS Controller Message posted OS Controller Expecting reply OS Controller Received message from worker {"ok":true,"id":3} OS Controller Posting message {"fun":"makeDir","args":[{"string":"/home/landry/.mozilla/firefox/9i5qnx6q.Nightly/bookmarkba ckups"},{"ignoreExisting":true}],"id":4} OS Controller Message posted OS Controller Expecting reply OS Controller Received message from worker {"id":4} ************************* A coding exception was thrown and uncaught in a Task. Full message: TypeError: malformed UTF-8 character sequence at offset 12 Full stack: toString@resource://gre/modules/osfile/osfile_unix_allthreads.jsm:92:12 task_init@resource://gre/components/nsSearchService.js:4862:11 The only specific things i have in my env: LC_CTYPE=fr_FR.ISO8859-15 LC_MESSAGES=fr_FR.ISO8859-15
But this is related to the locale since LC_ALL=C doesnt show both errors. I dont even have dirs/files in my homedir/profile with accentued/weird chars.
What happens if you change LC_MESSAGES to C but keep the rest to fr_FR?
The exception is not shown if i only have LC_CTYPE set to fr_FR.ISO8859-15.. but LC_MESSAGES is used to tell the applications i want messages displayed in french :) Oh well, locale handling has always been a nightmare.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.