Closed Bug 774951 Opened 9 years ago Closed 9 years ago

Error loading: chrome://marionette/content/marionette-actors.js: Error opening input stream (invalid filename?) on otoro

Categories

(Testing :: Mochitest, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
mozilla17

People

(Reporter: jgriffin, Assigned: jgriffin)

References

Details

Attachments

(1 file)

When running mochitests on B2G, we install a test profile on the device, then restart B2G in order to pick up the profile.  We then use Marionette to bootstrap the test and navigate to the test url.

On the emulator this works OK.  On the otoro device, after restarting B2G to pick up the test profile, we see this error:

I/Gecko   (  106): Error loading: chrome://marionette/content/marionette-actors.js: Error opening input stream (invalid filename?) - undefined

Marionette loads successfully *before* the B2G restart, but shows this error afterwards.  Marionette is not part of the test profile, it's part of the B2G build, so I don't know why or how it would go missing.

To reproduce, connect your device to your machine and make sure they are on the same network, go to $B2G_HOME/objdir-gecko/_tests/testing/mochitest, and run this command:

python runtestsb2g.py --marionette localhost:2828 --xre-path /path/to/directory/containing/desktop/version/of/xpcshell

After you see the message that your device has been rebooted, you can use 'adb logcat' to find the error shown above.
Faramarz, this is the primary bug blocking mochitest on devices atm.  It's a device-only bug; it doesn't happen on the emulator.  We probably need an engineer to help figure out what's going on.
Thanks mwu for figuring out that the error message was a lie, and the real problem was a conflict between mochitest's specialpowers and marionette's.
Attached patch patch v0.1Splinter Review
This patch allows someone (including runtestsb2g.py) to exclude named extensions from being installed in the mochitest profile.  This is needed when running mochitest and marionette together, as they both use specialpowers, and if the mochitest specialpowers extension is loaded, marionette cannot find specialpowers and thus fails to load.  However, mochitest can make use of marionette's copy of specialpowers, since it is built-in, and runs fine with this patch.
Attachment #643696 - Flags: review?(jmaher)
Comment on attachment 643696 [details] [diff] [review]
patch v0.1

Review of attachment 643696 [details] [diff] [review]:
-----------------------------------------------------------------

good way to solve that problem.  My version was to hack the makefiles, but I think this is cleaner.

::: testing/mochitest/runtests.py
@@ +895,5 @@
> +          if dirEntry not in options.extensionsToExclude:
> +            print 'installing'
> +            path = os.path.join(extensionDir, dirEntry)
> +            if os.path.isdir(path) or (os.path.isfile(path) and path.endswith(".xpi")):
> +              self.installExtensionFromPath(options, path)

this is a bit too verbose with the two print statements.
Attachment #643696 - Flags: review?(jmaher) → review+
(In reply to Joel Maher (:jmaher) from comment #4)

> ::: testing/mochitest/runtests.py
> @@ +895,5 @@
> > +          if dirEntry not in options.extensionsToExclude:
> > +            print 'installing'
> > +            path = os.path.join(extensionDir, dirEntry)
> > +            if os.path.isdir(path) or (os.path.isfile(path) and path.endswith(".xpi")):
> > +              self.installExtensionFromPath(options, path)
> 
> this is a bit too verbose with the two print statements.

Oops, left that in by mistake!
Assignee: nobody → jgriffin
Component: General → Mochitest
Product: Boot2Gecko → Testing
Target Milestone: --- → mozilla17
https://hg.mozilla.org/mozilla-central/rev/72b28584ecbf
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.