Closed
Bug 965426
Opened 10 years ago
Closed 10 years ago
FakeUpdateChecker fails on Tarako devices
Categories
(Firefox OS Graveyard :: General, defect, P1)
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: davehunt, Assigned: rwood)
References
Details
(Keywords: perf, Whiteboard: [c=automation p= s= u=tarako])
Attachments
(2 files)
The FakeUpdateChecker added in bug 879192 is failing on Tarako and preventing us from updating to b2gperf 0.15, which is needed for bug 964835. Traceback (most recent call last): File "/var/jenkins/workspace/b2g.tarako.mozilla-aurora.v1.3.perf/.env/bin/b2gperf", line 9, in <module> load_entry_point('b2gperf==0.15', 'console_scripts', 'b2gperf')() File "/var/jenkins/workspace/b2g.tarako.mozilla-aurora.v1.3.perf/.env/local/lib/python2.7/site-packages/b2gperf/b2gperf.py", line 936, in cli reset=options.reset) File "/var/jenkins/workspace/b2g.tarako.mozilla-aurora.v1.3.perf/.env/local/lib/python2.7/site-packages/b2gperf/b2gperf.py", line 172, in __init__ DatazillaPerfPoster.__init__(self, *args, **kwargs) File "/var/jenkins/workspace/b2g.tarako.mozilla-aurora.v1.3.perf/.env/local/lib/python2.7/site-packages/b2gperf/b2gperf.py", line 87, in __init__ self.device = gaiatest.GaiaDevice(self.marionette) File "/var/jenkins/workspace/b2g.tarako.mozilla-aurora.v1.3.perf/.env/local/lib/python2.7/site-packages/gaiatest/gaia_test.py", line 684, in __init__ self.marionette.execute_script("GaiaUITests_FakeUpdateChecker();") File "/var/jenkins/workspace/b2g.tarako.mozilla-aurora.v1.3.perf/.env/local/lib/python2.7/site-packages/marionette/marionette.py", line 1101, in execute_script filename=os.path.basename(frame[0])) File "/var/jenkins/workspace/b2g.tarako.mozilla-aurora.v1.3.perf/.env/local/lib/python2.7/site-packages/marionette/marionette.py", line 605, in _send_message self._handle_error(response) File "/var/jenkins/workspace/b2g.tarako.mozilla-aurora.v1.3.perf/.env/local/lib/python2.7/site-packages/marionette/marionette.py", line 640, in _handle_error raise JavascriptException(message=message, status=status, stacktrace=stacktrace) marionette.errors.JavascriptException: JavascriptException: [Exception... "Component returned failure code: 0x80040154 (NS_ERROR_FACTORY_NOT_REGISTERED) [nsIComponentManager.getClassObjectByContractID]" nsresult: "0x80040154 (NS_ERROR_FACTORY_NOT_REGISTERED)" location: "JS frame :: dummy file :: replaceClass :: line 110" data: no] stacktrace: execute_script @gaia_test.py, line 684
Comment 1•10 years ago
|
||
Probably that just adding try/catch would be enough
Comment 2•10 years ago
|
||
try { let oldFactory = Cm.getClassObjectByContractID(contract, Ci.nsIFactory); Cm.unregisterFactory(oldCid, oldFactory); Cm.registerFactory(newCid, '', contract, newFactory); } catch (ex) { // If nothing is already registered, it's fine }
Flags: needinfo?(dave.hunt)
Reporter | ||
Comment 3•10 years ago
|
||
Makes sense, could someone please try this? I'm not going to be around for a couple of weeks. If this works, we'll need new gaiatest and b2gperf releases.
Flags: needinfo?(dave.hunt)
Comment 4•10 years ago
|
||
I don't have a Tarako device.
Comment 6•10 years ago
|
||
I don't know that we have the ability to make custom Tarako builds; config.sh doesn't support it, and we normally get our builds from the Tw office. It's possible we'll simply have to land the patch in comment #2 to verify if it solves the problem.
Comment 7•10 years ago
|
||
fwiw, I'd like to understand why we have no update checker component in the first place. That seems very strange.
Comment 8•10 years ago
|
||
Mike, I'm not sure where Tarako perf results are on your list of priorities; this bug prevents us from displaying app startup times in the normal B2G perf dashboard. The results are showing up as the 'unknown' device on https://datazilla.mozilla.org/?start=1390296904&stop=1390901704&product=B2G&repository=v1.3&test=contacts&page=cold_load_time&graph_search=b2413cad2aca4784399f796814740fa8f7b7ae44,unknown,3c5119507a985c59cfc264ed23821679b138486d&tr_id=101390&graph=Firefox%20OS%201.3.0.0-prerelease&project=b2g, but that view is harder to use. Does anyone on your team have a Tarako and could help figure out the answer to Fabrice's question in comment #7?
Flags: needinfo?(mlee)
Comment 9•10 years ago
|
||
(In reply to Alexandre LISSY :gerard-majax from comment #2) > try { > let oldFactory = > Cm.getClassObjectByContractID(contract, Ci.nsIFactory); > Cm.unregisterFactory(oldCid, oldFactory); > Cm.registerFactory(newCid, '', contract, newFactory); > } catch (ex) { > // If nothing is already registered, it's fine > } Rob Wood is going to test this fix on Monday.
Comment 10•10 years ago
|
||
(In reply to Jonathan Griffin (:jgriffin) from comment #8) > Mike, I'm not sure where Tarako perf results are on your list of priorities; > this bug prevents us from displaying app startup times in the normal B2G > perf dashboard. > ... > Does anyone on your team have a Tarako and could help figure out the answer > to Fabrice's question in comment #7? Jonathan, for FxOS Perf tarako is second in priority only to 1.3 blockers. Hub can help with this.
Assignee: nobody → hub
Status: NEW → ASSIGNED
Flags: needinfo?(mlee)
Keywords: perf
Priority: -- → P1
Whiteboard: [c=automation p= s= u=]
Updated•10 years ago
|
Whiteboard: [c=automation p= s= u=] → [c=automation p= s= u=tarako]
Assignee | ||
Comment 11•10 years ago
|
||
:mchen Is it possible to do a custom tarako build yet? I made the config.sh changes locally (according to the PR in bug 961949) but the tarako manifest is still not available (I tried pointing to a local manifest but couldn't get it to work)
Flags: needinfo?(mchen)
Assignee | ||
Comment 12•10 years ago
|
||
:fabrice please see comment 11, as :mchen is out of office, thanks
Flags: needinfo?(mchen) → needinfo?(fabrice)
Comment 13•10 years ago
|
||
rwood, since this is a gaia change, you can probably use the most recent build from the Tarako flash script (https://github.com/Mozilla-TWQA/Tarako-Tool/blob/master/flash_tarako_eng.sh), then make a local gaia-only build and install it on the phone via 'make reset-gaia'.
Comment 14•10 years ago
|
||
(In reply to Robert Wood [:rwood] from comment #12) > :fabrice please see comment 11, as :mchen is out of office, thanks I'm only doing gecko+gaia builds myself, and flash them over a base image that was flashed with the windows tool. I haven't tried flash_tarako_eng.sh yet.
Flags: needinfo?(fabrice)
Assignee | ||
Comment 15•10 years ago
|
||
It's been a nightmare trying to flash tarako and I've gotten nowhere. I keep getting "error: insufficient permissions for device". Can someone please help me?
Comment 16•10 years ago
|
||
Is this running the script from comment 13?
Assignee | ||
Comment 17•10 years ago
|
||
Hey Hubert, yes when I run the script it always fails with "device not found". Adb devices will either show no device listed or "??????? no permissions". The wiki indicated if adb cannot see the device, to ensure it has the latest base image. I am setup to download/flash the base image, however the flashing tool cannot see the device either. I installed the windows 7 usb driver (disabled the driver signature requirement option first) but in control panel it shows exclamation beside the device, so the flashing tool cannot connect. I'm trying to re-install the usb drivers now to see if I can get the base image updated.
Comment 18•10 years ago
|
||
This worked for me combined with a lot of plugging and unplugging my device: https://intranet.mozilla.org/QA/B2G_Tips_and_Tricks#Detecting_Tarako You need an adb_usb.ini file in addition to the udev rule.
Comment 19•10 years ago
|
||
I had to do that too on (Fedora) Linux. The udev rule (expected) and the adb_usb.ini stuff (not common). Don't forget |adb kill-server| Sometime, indeed, I need to plug / unplug the device to be listed. I have no idea about Windows though.
Assignee | ||
Comment 20•10 years ago
|
||
Thanks guys, appreciated - yeah I am using Ubuntu, only using windows for the base image flashing tool. I'll recheck my ubuntu udev rules (and ini) and try the script again...
Comment 21•10 years ago
|
||
Back to the original bug, there is no fake_update-checker.js in the gaia tree for torako as it is 1.3
Comment 22•10 years ago
|
||
(In reply to Hubert Figuiere [:hub] from comment #21) > Back to the original bug, there is no fake_update-checker.js in the gaia > tree for torako as it is 1.3 The way that we use gaiatest in Jenkins ends up packaging the JS atoms, including fake_update-checker.js, so we do end up using this on 1.3, whether or not it's in the Gaia tree. Is the problem that we shouldn't be using this?
Comment 23•10 years ago
|
||
(In reply to Jonathan Griffin (:jgriffin) from comment #22) > Is the problem that we shouldn't be using this? No, no. I was just wondering if that wasn't the source of the problem.
Assignee | ||
Comment 24•10 years ago
|
||
Unfortunately the tarako device I have is bricked. Tried again this morning (with Mdas) but it won't flash. So I am unable to verify the fix (comment 9).
Assignee | ||
Comment 25•10 years ago
|
||
Pull request for proposed fix in comment 2
Attachment #8371658 -
Flags: review?(jgriffin)
Comment 26•10 years ago
|
||
I could check, but is there a blessed way to have b2gperf pick the change up?
Comment 27•10 years ago
|
||
I tested the change and it fixes the issue.
Updated•10 years ago
|
Assignee: hub → rwood
Assignee | ||
Comment 28•10 years ago
|
||
:hub thanks!
Comment 29•10 years ago
|
||
Comment on attachment 8371658 [details] [review] https://github.com/mozilla-b2g/gaia/pull/16054 Thanks Rob.
Attachment #8371658 -
Flags: review?(jgriffin) → review+
Comment 30•10 years ago
|
||
https://github.com/mozilla-b2g/gaia/commit/f91217852634b99b28b89b08210a4156b26a718f
Comment 31•10 years ago
|
||
Rob, can you change the Tarako b2gperf Jenkins jobs to use the latest b2gperf now? They're currently pinned to an older version to work around this problem.
Assignee | ||
Comment 32•10 years ago
|
||
Done, Jenkins b2gperf Tarako build #69 will be the first one with the update.
Comment 33•10 years ago
|
||
(In reply to Robert Wood [:rwood] from comment #32) > Done, Jenkins b2gperf Tarako build #69 will be the first one with the update. Hmm, I realized we'll likely need to release a new version of gaiatest, and b2gperf (and possibly b2gpopulate) to pick this up. I'll file a separate bug.
Updated•10 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Comment 34•10 years ago
|
||
Unfortunately, this doesn't resolve the problem, it only changes it. From the latest Jenkins run: 11:48:34 marionette.errors.JavascriptException: JavascriptException: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIXPCComponents_Utils.import]" nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)" location: "JS frame :: jar:file:///system/b2g/omni.ja!/components/nsUpdateService.js :: <TOP_LEVEL> :: line 10" data: no] 11:48:34 stacktrace: 11:48:34 execute_script @gaia_test.py, line 684
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Comment 35•10 years ago
|
||
I think I'll just add a flag to b2gperf to skip the update check, to get around this problem. :(
Comment 36•10 years ago
|
||
This seems to have resolved itself.
Status: REOPENED → RESOLVED
Closed: 10 years ago → 10 years ago
Resolution: --- → FIXED
(In reply to Jonathan Griffin (:jgriffin) from comment #36) > This seems to have resolved itself. Verified; thanks, all!
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•