Component does not have requested interface, when using artifact build

RESOLVED INVALID

Status

RESOLVED INVALID
3 years ago
8 months ago

People

(Reporter: ato, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

3 years ago
When running `./mach run` from an artifact build on Linux, I get an exception but the build starts fine and is usable:

% ./mach run
 0:00.12 /home/ato/1/gecko/build/artifact-desktop-release/dist/bin/firefox -no-remote -profile /home/ato/1/gecko/build/artifact-desktop-release/tmp/scratch_user
console.error: 
  [CustomizableUI]
  [Exception... "Component does not have requested interface"  nsresult: "0x80004002 (NS_NOINTERFACE)"  location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm -> file:///home/ato/1/gecko/build/artifact-desktop-release/dist/bin/browser/features/firefox@getpocket.com/bootstrap.js :: PocketOverlay.addStyles :: line 501"  data: no] -- undefined:501

If you try to run, say, a Marionette test, the client is able to connect but the exception is thrown when a new session is started, and hangs:

% xvfb-run ./mach marionette-test -vv --gecko-log -
 0:00.00 LOG: MainThread INFO Using workspace for temporary data: "/home/ato/1/gecko/src"
 0:00.00 LOG: MainThread INFO Profile destination is TMP
1453380497550	Marionette	DEBUG	Marionette enabled via build flag and pref
1453380497667	Marionette	INFO	Listening on port 2828
1453380497867	Marionette	DEBUG	Marionette enabled via command-line flag
1453380497890	Marionette	DEBUG	Accepted connection conn0 from 127.0.0.1:47088
1453380497917	Marionette	DEBUG	Closed connection conn0
1453380497918	Marionette	DEBUG	Accepted connection conn1 from 127.0.0.1:47089
1453380497925	Marionette	DEBUG	Accepted connection conn2 from 127.0.0.1:47090
1453380497930	Marionette	DEBUG	Closed connection conn2
1453380497931	Marionette	TRACE	conn1 -> [0,1,"newSession",{"sessionId":null,"capabilities":null}]
1453380497932	Marionette	CONFIG	Changing capabilities: {"browserName":"Firefox","browserVersion":"46.0a1","platformName":"Linux","platformVersion":"3.16.0-4-amd64","specificationLevel":"1","raisesAccessibilityExceptions":false,"rotatable":false,"acceptSslCerts":false,"takesElementScreenshot":true,"takesScreenshot":true,"proxy":{},"platform":"LINUX","XULappId":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","appBuildId":"20160118110931","device":"desktop","version":"46.0a1"}
console.error:
  [CustomizableUI]
  [Exception... "Component does not have requested interface"  nsresult: "0x80004002 (NS_NOINTERFACE)"  location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm -> file:///home/ato/1/gecko/build/artifact-desktop-release/dist/bin/browser/features/firefox@getpocket.com/bootstrap.js :: PocketOverlay.addStyles :: line 501"  data: no] -- undefined:501

Is this a limitation of artifact builds, or an actual bug?
I just pulled fx-team (on Windows) and can run marionette tests ok. I've seen NS_NOINTERFACE when updating to a revision without updating artifacts.

ato, if this is reliably reproducible, can you provide the full output of mach build when this occurs? It should log the revision it's looking for and the revision for the artifacts it finds at the beginning.
(Reporter)

Comment 2

3 years ago
(In reply to Chris Manchester [:chmanchester] from comment #1)
> I just pulled fx-team (on Windows) and can run marionette tests ok. I've
> seen NS_NOINTERFACE when updating to a revision without updating artifacts.

That would make sense.  How do I force an update of the artifacts in this case?
(In reply to Andreas Tolfsen (:ato) from comment #2)
> (In reply to Chris Manchester [:chmanchester] from comment #1)
> > I just pulled fx-team (on Windows) and can run marionette tests ok. I've
> > seen NS_NOINTERFACE when updating to a revision without updating artifacts.
> 
> That would make sense.  How do I force an update of the artifacts in this
> case?

In my case I had updated to central without realizing it, so just updating to fx-team and re-building was enough. But this may be a case of what Nick explains in https://bugzilla.mozilla.org/show_bug.cgi?id=1222636#c2 -- updating to a revision with JS changes requiring corresponding C++ changes that don't yet have binaries available. In this case, updating the local tree back to the last revision with binaries available would fix things as a workaround.
(Reporter)

Comment 4

3 years ago
Created attachment 8711644 [details]
artifact.log

Attaching build log.
(Reporter)

Comment 5

3 years ago
(In reply to Chris Manchester [:chmanchester] from comment #3)
> In my case I had updated to central without realizing it, so just updating
> to fx-team and re-building was enough. But this may be a case of what Nick
> explains in https://bugzilla.mozilla.org/show_bug.cgi?id=1222636#c2 --
> updating to a revision with JS changes requiring corresponding C++ changes
> that don't yet have binaries available. In this case, updating the local
> tree back to the last revision with binaries available would fix things as a
> workaround.

I’m not sure if this is the case.  How can I tell if revision I’m on (tip) is one which doesn’t have binaries available?

I did some further digging and doing `./mach run` on an artifact build off tip starts the chrome of the browser, but it’s impossible to navigate anywhere.  I’m suspecting the browsers don’t actually start up.
(In reply to Andreas Tolfsen (:ato) from comment #5)
> (In reply to Chris Manchester [:chmanchester] from comment #3)
> > In my case I had updated to central without realizing it, so just updating
> > to fx-team and re-building was enough. But this may be a case of what Nick
> > explains in https://bugzilla.mozilla.org/show_bug.cgi?id=1222636#c2 --
> > updating to a revision with JS changes requiring corresponding C++ changes
> > that don't yet have binaries available. In this case, updating the local
> > tree back to the last revision with binaries available would fix things as a
> > workaround.
> 
> I’m not sure if this is the case.  How can I tell if revision I’m on (tip)
> is one which doesn’t have binaries available?
> 
> I did some further digging and doing `./mach run` on an artifact build off
> tip starts the chrome of the browser, but it’s impossible to navigate
> anywhere.  I’m suspecting the browsers don’t actually start up.

The line starting with:

"Installing from remote pushhead ..."

will tell you the revision it found. Updating to this revision ought to help. Bug 1240667 should help significantly if you don't usually work on fx-team.
(Reporter)

Comment 7

3 years ago
(In reply to Chris Manchester [:chmanchester] from comment #6)
> (In reply to Andreas Tolfsen (:ato) from comment #5)
> > (In reply to Chris Manchester [:chmanchester] from comment #3)
> > I’m not sure if this is the case.  How can I tell if revision I’m on (tip)
> > is one which doesn’t have binaries available?
> > 
> > I did some further digging and doing `./mach run` on an artifact build off
> > tip starts the chrome of the browser, but it’s impossible to navigate
> > anywhere.  I’m suspecting the browsers don’t actually start up.
> 
> The line starting with:
> 
> "Installing from remote pushhead ..."
> 
> will tell you the revision it found. Updating to this revision ought to
> help. Bug 1240667 should help significantly if you don't usually work on
> fx-team.

Oh I see.  It’s a shame it doesn’t work with central.  I will resolve this.
Status: NEW → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → INVALID

Updated

8 months ago
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.