Closed Bug 932385 Opened 11 years ago Closed 11 years ago

Errors in logcat E/GeckoConsole( 5720): [JavaScript Warning: "Empty string passed to getElementById()." {file: "chrome://marionette/content/marionette-elements.js" line: 164}]

Categories

(Remote Protocol :: Marionette, defect)

Other
Gonk (Firefox OS)
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: zcampbell, Unassigned)

References

Details

(Keywords: hang)

Attachments

(3 files)

Attached file crash_hamachi.log
Hundreds of these are causing the device to freeze and test to fail.

Replicated by running:
https://github.com/mozilla-b2g/gaia/blob/master/tests/python/gaia-ui-tests/gaiatest/tests/functional/dialer/test_call_log_all_calls.py

Device Hamachi
Gecko  http://hg.mozilla.org/mozilla-central/rev/518f5bff0ae4
Gaia  92c097fd7ac9886f937d9decb0e03ab673deaa1b
BuildID 20131029040205
Version 28.0a1
Severity: normal → critical
Keywords: hang
This is a weird error.  There are lots of errors in logcat before this occurs, like:

E/GeckoConsole(  772): [JavaScript Error: "Error: Unknown rilSuppSvcNotification: null" {file: "jar:file:///system/b2g/omni.ja!/components/TelephonyProvider.js" line: 273}]
E/GeckoConsole(  772): [JavaScript Error: "NS_ERROR_XPC_JS_THREW_JS_OBJECT: 'Error: Unknown rilSuppSvcNotification: null' when calling method: [nsIGonkTelephonyProvider::notifySupplementaryService]" {file: "jar:file:///system/b2g/omni.ja!/components/RadioInterfaceLayer.js" line: 1020}]

The particular Marionette command that's causing the getElementById errors is:

  execute_script("return window.navigator.mozTelephony.active;")

...which is pretty confusing.  This is very likely a bug in Marionette, but it's secondary to whatever is causing the ril errors.
jgriffin, if it helps at all we also use the mozTelephony.active method in test_dialer.py but that does not cause the hang.
I suspect that the telephony WebAPI is breaking, and the Marionette errors are a side-effect, but I don't have a hamachi, so can't tell for certain.
I do; how can I help debug this further?
Yoshi, are you familiar with the exceptions in the logcat and comment #1 ?
Flags: needinfo?(allstars.chh)
It would help to know what "window.navigator.mozTelephony.active" is in the failing case; you could add the following call preceding the existing one:

execute_script("""
var active = window.navigator.mozTelephony.active;
log('active = ' + active + ', ' + typeof(active));
""")

Then, there should be something interesting showing up in the log which might help us figure out the Marionette side of things.
CC Hsinyi here for she's the expert here.
Flags: needinfo?(allstars.chh)
Hsinyi, I'll re-run with the above debug later today and ni? you.

I'll also compare with Moz RIL and Com RIL. Comment #0 was with Mozilla RIL.
(In reply to Jonathan Griffin (:jgriffin) from comment #1)
> This is a weird error.  There are lots of errors in logcat before this
> occurs, like:
> 
> E/GeckoConsole(  772): [JavaScript Error: "Error: Unknown
> rilSuppSvcNotification: null" {file:
> "jar:file:///system/b2g/omni.ja!/components/TelephonyProvider.js" line: 273}]
> E/GeckoConsole(  772): [JavaScript Error: "NS_ERROR_XPC_JS_THREW_JS_OBJECT:
> 'Error: Unknown rilSuppSvcNotification: null' when calling method:
> [nsIGonkTelephonyProvider::notifySupplementaryService]" {file:
> "jar:file:///system/b2g/omni.ja!/components/RadioInterfaceLayer.js" line:
> 1020}]
> 

I know the messages look scaring, but these are not real errors. These are some types of notification not supported yet. Maybe we should have a softer way to handling this in RIL.

> The particular Marionette command that's causing the getElementById errors
> is:
> 
>   execute_script("return window.navigator.mozTelephony.active;")
> 
> ...which is pretty confusing.  This is very likely a bug in Marionette, but
> it's secondary to whatever is causing the ril errors.

What is the expected value of |mozTelephony.active| here? |mozTelephony.active| could be null, a telephonyCall object, or a telephonyCallGroup object.
> self.wait_for_condition(lambda m: not self.marionette.execute_script('return  window.navigator.mozTelephony.active;'), timeout=30)

is the exact syntax.

I've rewritten the code to skip this part and take a UI cue (wait for call screen co disappear).

However I'm still curious about why this regressed. Prior to this this code has worked fine for months.
Attached file github pr
Bob, this needs Hamachi test. thanks
Attachment #825266 - Flags: review?(bob.silverberg)
Attachment #825266 - Flags: review?(bob.silverberg)
Comment on attachment 826451 [details]
Pointer to Github pull request: https://github.com/mozilla-b2g/gaia/pull/13330

I'm not sure if we want to uplift this to v1.2, but I created a PR and have reopened this bug for investigation. The test seems to pass fine currently on v1.2 without this change, but perhaps it's safest to bring it over anyway?
Attachment #826451 - Flags: review?(zcampbell)
Attachment #826451 - Flags: review?(trifandreialin)
Attachment #826451 - Flags: review?(moz.teodosia)
Attachment #826451 - Flags: review?(florin.strugariu)
Attachment #826451 - Flags: review?(andrei.hutusoru)
Yes let's zap it over to keep the test cases inline.
Attachment #826451 - Flags: review?(andrei.hutusoru) → review+
Attachment #826451 - Flags: review?(zcampbell)
Attachment #826451 - Flags: review?(trifandreialin)
Attachment #826451 - Flags: review?(moz.teodosia)
Attachment #826451 - Flags: review?(florin.strugariu)
Landed in v1.2 as https://github.com/mozilla-b2g/gaia/commit/3735da893b52418bf25fa32a9f961217c0707a85
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: