Closed Bug 1019209 Opened 6 years ago Closed 5 years ago

Crash during xpcshell toolkit/components/telemetry/tests/unit/test_TelemetryLog.js on Android 4.0 Debug

Categories

(Firefox for Android :: General, defect)

x86
Android
defect
Not set

Tracking

()

RESOLVED FIXED
Firefox 39
Tracking Status
firefox39 --- fixed

People

(Reporter: gbrown, Assigned: milan)

References

Details

Attachments

(1 file, 2 obsolete files)

Android 4.0 *Debug* tests currently only run on the Cedar tree. We are trying to get these tests to pass so that they can be run on trunk trees.

On Cedar, on Android 4.0 Debug, toolkit/components/telemetry/tests/unit/test_TelemetryLog.js, test_TelemetryPing.js and test_TelemetryPingBuildId.js consistently crash:

https://tbpl.mozilla.org/php/getParsedLog.php?id=40874160&tree=Cedar&full=1

08:53:46     INFO -  TEST-INFO | /builds/panda-0861/test/build/tests/xpcshell/tests/toolkit/components/telemetry/tests/unit/test_TelemetryLog.js | running test ...
08:53:48  WARNING -  TEST-UNEXPECTED-FAIL | /builds/panda-0861/test/build/tests/xpcshell/tests/toolkit/components/telemetry/tests/unit/test_TelemetryLog.js | test failed (with xpcshell return code: 139), see following log:
08:53:48     INFO -  >>>>>>>
08:53:48     INFO -  xpcw: cd /mnt/sdcard/tests/xpcshell/toolkit/components/telemetry/tests/unit
08:53:48     INFO -  xpcw: xpcshell -r /mnt/sdcard/tests/xpcshell/c/httpd.manifest --greomni /data/local/xpcb/fennec-32.0a1.en-US.android-arm.apk -m -s -e const _HTTPD_JS_PATH = "/mnt/sdcard/tests/xpcshell/c/httpd.js"; -e const _HEAD_JS_PATH = "/mnt/sdcard/tests/xpcshell/head.js"; -e const _TESTING_MODULES_DIR = "/mnt/sdcard/tests/xpcshell/m"; -f /mnt/sdcard/tests/xpcshell/head.js -e const _SERVER_ADDR = "localhost" -e const _HEAD_FILES = ["/mnt/sdcard/tests/xpcshell/toolkit/components/telemetry/tests/unit/head.js"]; -e const _TAIL_FILES = []; -e const _TEST_FILE = ["test_TelemetryLog.js"]; -e _execute_test(); quit(0);
08:53:48     INFO -  [10627] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /builds/slave/ced-and-d-00000000000000000000/build/xpcom/base/nsTraceRefcnt.cpp, line 144
08:53:48     INFO -  [10627] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file /builds/slave/ced-and-d-00000000000000000000/build/toolkit/crashreporter/nsExceptionHandler.cpp, line 2158
08:53:48     INFO -  TEST-INFO | (xpcshell/head.js) | test MAIN run_test pending (1)
08:53:48     INFO -  Segmentation fault
08:53:48     INFO -  \x00
08:53:48     INFO -  <<<<<<<
08:53:48     INFO -  mozcrash INFO | Downloading symbols from: https://ftp-ssl.mozilla.org/pub/mozilla.org/mobile/tinderbox-builds/cedar-android-debug/1401692349/fennec-32.0a1.en-US.android-arm.crashreporter-symbols.zip
08:53:50  WARNING -  PROCESS-CRASH | /builds/panda-0861/test/build/tests/xpcshell/tests/toolkit/components/telemetry/tests/unit/test_TelemetryLog.js | application crashed [@ 0x40b1e16e]
08:53:50     INFO -  Crash dump filename: /tmp/tmp_lrbjG/6a7b7b81-590e-8d0a-5bf5355a-4236bc9c.dmp
08:53:50     INFO -  Operating system: Android
08:53:50     INFO -                    0.0.0 Linux 3.2.0+ #2 SMP PREEMPT Thu Nov 29 08:06:57 EST 2012 armv7l pandaboard/pandaboard/pandaboard:4.0.4/IMM76I/5:eng/test-keys
08:53:50     INFO -  CPU: arm
08:53:50     INFO -       2 CPUs
08:53:50     INFO -  Crash reason:  SIGSEGV
08:53:50     INFO -  Crash address: 0x0
08:53:50     INFO -  Thread 0 (crashed)
08:53:50     INFO -   0  0x40b1e16e
08:53:50     INFO -       r4 = 0x427f7758    r5 = 0x00000000    r6 = 0xbeffc64c    r7 = 0xbeffc654
08:53:50     INFO -       r8 = 0x00000001    r9 = 0x00000007   r10 = 0x00000000    fp = 0xbeffce70
08:53:50     INFO -       sp = 0xbeffc248    lr = 0x40b1946f    pc = 0x40b1e16e
08:53:50     INFO -      Found by: given as instruction pointer in context
08:53:50     INFO -   1  libmozglue.so!arena_avail_tree_remove [jemalloc.c:9e296a045ca1 : 3101 + 0x7]
08:53:50     INFO -       sp = 0xbeffc2b8    pc = 0x400b5d3b
08:53:50     INFO -      Found by: stack scanning
08:53:50     INFO -   2  libmozglue.so!arena_run_split [jemalloc.c:9e296a045ca1 : 3285 + 0x11]
08:53:50     INFO -       r4 = 0x47400000    r5 = 0x4740043c    r6 = 0x4010f040    r7 = 0x00000059
08:53:50     INFO -       r8 = 0x00000001    r9 = 0x0000000c    sp = 0xbeffc328    pc = 0x400b6f0f
08:53:50     INFO -      Found by: call frame info
08:53:50     INFO -   3  libmozglue.so!arena_run_alloc [jemalloc.c:9e296a045ca1 : 3537 + 0xf]
08:53:50     INFO -       r4 = 0x47459000    r5 = 0x4010f040    r6 = 0x47400000    r7 = 0x00001000
08:53:50     INFO -       r8 = 0x00000000    r9 = 0x00000000   r10 = 0x4010f0c0    fp = 0x4010f0c4
08:53:50     INFO -       sp = 0xbeffc3b8    pc = 0x400ba975
08:53:50     INFO -      Found by: call frame info
08:53:50     INFO -   4  libmozglue.so!arena_malloc [jemalloc.c:9e296a045ca1 : 4128 + 0x7]
08:53:50     INFO -       r4 = 0x4010f240    r5 = 0x000094ae    r6 = 0x00000000    r7 = 0x47459080
08:53:50     INFO -       r8 = 0x000094ae    r9 = 0x00000000   r10 = 0x47459080    fp = 0x00000000
08:53:50     INFO -       sp = 0xbeffc430    pc = 0x400bad31
08:53:50     INFO -      Found by: call frame info
08:53:50     INFO -   5  libmozglue.so!imalloc [jemalloc.c:9e296a045ca1 : 4157 + 0xb]
08:53:50     INFO -       r4 = 0x00000036    r5 = 0x4287c40c    r6 = 0x00000036    r7 = 0xbeffc608
08:53:50     INFO -       r8 = 0xbeffc608    r9 = 0x00000001   r10 = 0x44c161a0    fp = 0x44d60800
08:53:50     INFO -       sp = 0xbeffc4a0    pc = 0x400bae5b
08:53:50     INFO -      Found by: call frame info
08:53:50     INFO -   6  0x41c3a819
08:53:50     INFO -       r4 = 0x4750ddf0    r5 = 0x00000010    r6 = 0x00000036    r7 = 0xbeffc608
08:53:50     INFO -       r8 = 0xbeffc608    r9 = 0x00000001   r10 = 0x44c161a0    fp = 0x44d60800
08:53:50     INFO -       sp = 0xbeffc4f8    pc = 0x41c3a81b
08:53:50     INFO -      Found by: call frame info

Logcat has additional info:

http://mozilla-releng-blobs.s3.amazonaws.com/blobs/cedar/sha512/75e757eff695cc43729983af15c6f7783de1d8af2691be06a7d645a167cef2ab8f399adc7e14731369611f23091d7851367b613efc1d6702b345781219419928

06-02 08:53:45.554 I/SUTAgentAndroid( 1902): 10.12.136.23 : exec /data/local/xpcb/xpcw /mnt/sdcard/tests/xpcshell/toolkit/components/telemetry/tests/unit -r /mnt/sdcard/tests/xpcshell/c/httpd.manifest --greomni /data/local/xpcb/fennec-32.0a1.en-US.android-arm.apk -m -s -e 'const _HTTPD_JS_PATH = "/mnt/sdcard/tests/xpcshell/c/httpd.js";' -e 'const _HEAD_JS_PATH = "/mnt/sdcard/tests/xpcshell/head.js";' -e 'const _TESTING_MODULES_DIR = "/mnt/sdcard/tests/xpcshell/m";' -f /mnt/sdcard/tests/xpcshell/head.js -e 'const _SERVER_ADDR = "localhost"' -e 'const _HEAD_FILES = ["/mnt/sdcard/tests/xpcshell/toolkit/components/telemetry/tests/unit/head.js"];' -e 'const _TAIL_FILES = [];' -e 'const _TEST_FILE = ["test_TelemetryLog.js"];' -e '_execute_test(); quit(0);'
06-02 08:53:45.617 I/Gecko   (10627): [10627] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /builds/slave/ced-and-d-00000000000000000000/build/xpcom/base/nsTraceRefcnt.cpp, line 144
06-02 08:53:45.648 I/Gecko:DumpUtils(10627): Fifo watcher disabled via pref.
06-02 08:53:45.890 E/GeckoConsole(10627): [JavaScript Warning: "Could not map contract ID '@mozilla.org/browser/browser-clh;1' to CID {be623d20-d305-11de-8a39-0800200c9a66} because no implementation of the CID is registered." {file: "jar:jar:file:///data/local/xpcb/fennec-32.0a1.en-US.android-arm.apk!/assets/omni.ja!/components/components.manifest" line: 245}]
06-02 08:53:45.890 E/GeckoConsole(10627): Could not read chrome manifest 'file:///data/data/org.mozilla.fennec/chrome.manifest'.
06-02 08:53:46.031 I/Gecko   (10627): [10627] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file /builds/slave/ced-and-d-00000000000000000000/build/toolkit/crashreporter/nsExceptionHandler.cpp, line 2158
06-02 08:53:46.257 I/Gecko   (10627): 
06-02 08:53:46.257 I/Gecko   (10627): {"_message":"TEST-INFO | (xpcshell/head.js) | test MAIN run_test pending (1)\n","action":"test_pending","_time":1401699226261}
06-02 08:53:46.523 F/MOZ_Assert(10627): Assertion failure: SingletonExists(), at ../../dist/include/gfxPrefs.h:142
06-02 08:53:46.757 F/libc    (10627): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)

See https://tbpl.mozilla.org/?tree=Cedar&showall=1&jobname=android.*debug for more logs.
Bug 985773 dealt with the same assertion for a different test.
06-02 08:53:46.523 F/MOZ_Assert(10627): Assertion failure: SingletonExists(), at ../../dist/include/gfxPrefs.h:142

is

141 #if defined(ANDROID)
142   DECL_GFX_PREF(Once, "gfx.apitrace.enabled",                  UseApitrace, bool, false);
143 #endif
It is easy to reproduce this locally with a debug build, and get a more sensible stack.

gbrown@mozpad:~/src$ ./mach xpcshell-test toolkit/components/telemetry/tests/unit/test_TelemetryLog.js
From _tests: Kept 12308 existing; Added/updated 0; Removed 0 files and 0 directories.
using APK: /home/gbrown/objdirs/droid-debug/dist/fennec-32.0a1.en-US.android-arm.apk
Pushing xpcshell..
...
pushing /home/gbrown/objdirs/droid-debug/_tests/xpcshell
 3:39.60 INFO | Running tests sequentially.
 3:39.86 TEST-INFO | profile dir is /sdcard/tests/xpcshell/p
 3:39.93 TEST-INFO | /home/gbrown/objdirs/droid-debug/_tests/xpcshell/toolkit/components/telemetry/tests/unit/test_TelemetryLog.js | full command: ['/data/local/xpcb/xpcw', '-r', '/sdcard/tests/xpcshell/c/httpd.manifest', '--greomni', u'/data/local/xpcb/fennec-32.0a1.en-US.android-arm.apk', '-m', '-s', '-e', 'const _HTTPD_JS_PATH = "/sdcard/tests/xpcshell/c/httpd.js";', '-e', 'const _HEAD_JS_PATH = "/sdcard/tests/xpcshell/head.js";', '-e', 'const _TESTING_MODULES_DIR = "/sdcard/tests/xpcshell/m";', '-f', '/sdcard/tests/xpcshell/head.js', '-e', 'const _SERVER_ADDR = "localhost"', '-e', u'const _HEAD_FILES = ["/sdcard/tests/xpcshell/toolkit/components/telemetry/tests/unit/head.js"];', '-e', 'const _TAIL_FILES = [];', '-e', u'const _TEST_FILE = ["test_TelemetryLog.js"];', '-e', '_execute_test(); quit(0);']
 3:39.93 TEST-INFO | /home/gbrown/objdirs/droid-debug/_tests/xpcshell/toolkit/components/telemetry/tests/unit/test_TelemetryLog.js | current directory: u'/sdcard/tests/xpcshell/toolkit/components/telemetry/tests/unit'
 3:39.93 TEST-INFO | /home/gbrown/objdirs/droid-debug/_tests/xpcshell/toolkit/components/telemetry/tests/unit/test_TelemetryLog.js | environment: {'MOZ_CRASHREPORTER': '1', 'XPCSHELL_TEST_TEMP_DIR': '/sdcard/tests/xpcshell/tmp', 'XPCOM_DEBUG_BREAK': 'stack-and-abort', 'XPCSHELL_MINIDUMP_DIR': '/sdcard/tests/xpcshell/minidumps', 'GRE_HOME': '/data/data/org.mozilla.fennec_gbrown', 'XPCSHELL_TEST_PROFILE_DIR': '/sdcard/tests/xpcshell/p', 'MOZ_CRASHREPORTER_NO_REPORT': '1', 'HOME': '/sdcard/tests/xpcshell/p', 'MOZ_LINKER_CACHE': '/data/local/xpcb', 'LD_LIBRARY_PATH': '/data/local/xpcb', 'TMPDIR': '/sdcard/tests/xpcshell/tmp', 'NS_TRACE_MALLOC_DISABLE_STACKS': '1'}
 3:43.60 TEST-UNEXPECTED-FAIL | /home/gbrown/objdirs/droid-debug/_tests/xpcshell/toolkit/components/telemetry/tests/unit/test_TelemetryLog.js | test failed (with xpcshell return code: 139), see following log:
 3:43.60 >>>>>>>
 3:43.60 xpcw: cd /sdcard/tests/xpcshell/toolkit/components/telemetry/tests/unit
 3:43.60 xpcw: xpcshell -r /sdcard/tests/xpcshell/c/httpd.manifest --greomni /data/local/xpcb/fennec-32.0a1.en-US.android-arm.apk -m -s -e const _HTTPD_JS_PATH = "/sdcard/tests/xpcshell/c/httpd.js"; -e const _HEAD_JS_PATH = "/sdcard/tests/xpcshell/head.js"; -e const _TESTING_MODULES_DIR = "/sdcard/tests/xpcshell/m"; -f /sdcard/tests/xpcshell/head.js -e const _SERVER_ADDR = "localhost" -e const _HEAD_FILES = ["/sdcard/tests/xpcshell/toolkit/components/telemetry/tests/unit/head.js"]; -e const _TAIL_FILES = []; -e const _TEST_FILE = ["test_TelemetryLog.js"]; -e _execute_test(); quit(0);
 3:43.60 [3462] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /home/gbrown/src/xpcom/base/nsTraceRefcnt.cpp, line 144
 3:43.60 [3462] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file /home/gbrown/src/toolkit/crashreporter/nsExceptionHandler.cpp, line 2158
 3:43.60 TEST-INFO | (xpcshell/head.js) | test MAIN run_test pending (1)
 3:43.61 [1]   Segmentation fault      /data/local/xpcb...
 3:43.61 <<<<<<<
PROCESS-CRASH | /home/gbrown/objdirs/droid-debug/_tests/xpcshell/toolkit/components/telemetry/tests/unit/test_TelemetryLog.js | application crashed [@ mozilla::gl::GLLibraryEGL::EnsureInitialized()]
Crash dump filename: /tmp/tmpl_VG50/7960ce84-6355-b745-6cc53279-02c35ccf.dmp
Operating system: Android
                  0.0.0 Linux 2.6.29-ge3d684d #1 Mon Dec 16 22:26:51 UTC 2013 armv7l generic/sdk/generic:2.3.7/GINGERBREAD/eng.ubuntu.20140123.014351:eng/test-keys
CPU: arm
     0 CPUs

Crash reason:  SIGSEGV
Crash address: 0x0

Thread 0 (crashed)
 0  libxul.so!mozilla::gl::GLLibraryEGL::EnsureInitialized() [gfxPrefs.h : 142 + 0x1c]
     r4 = 0x867830c8    r5 = 0x00000000    r6 = 0xbeff06cc    r7 = 0xbeff06d4
     r8 = 0x00000001    r9 = 0x00000007   r10 = 0x00000000    fp = 0xbeff0ee8
     sp = 0xbeff02c8    lr = 0x8482980f    pc = 0x8482d030
    Found by: given as instruction pointer in context
 1  libxul.so!mozilla::gl::GLContextProviderEGL::CreateOffscreen(nsIntSize const&, mozilla::gfx::SurfaceCaps const&) [GLContextProviderEGL.cpp:b10d687f2735 : 879 + 0x7]
     r4 = 0xbeff06c8    r5 = 0x44fc8800    r6 = 0xbeff06cc    r7 = 0xbeff06d4
     r8 = 0x00000001    r9 = 0x00000007   r10 = 0x00000000    fp = 0xbeff0ee8
     sp = 0xbeff0690    pc = 0x84835437
    Found by: call frame info
 2  libxul.so!mozilla::widget::GfxInfo::GLStrings::EnsureInitialized() [GfxInfo.cpp:b10d687f2735 : 76 + 0x3]
     r4 = 0x44f6c490    r5 = 0x44fc8800    r6 = 0x00000001    r7 = 0x00000000
     r8 = 0x00000001    r9 = 0x00000007   r10 = 0x00000000    fp = 0xbeff0ee8
     sp = 0xbeff06c0    pc = 0x84bf4347
    Found by: call frame info
 3  libxul.so!mozilla::widget::GfxInfo::EnsureInitialized() [GfxInfo.cpp:b10d687f2735 : 152 + 0x7]
     r4 = 0x44fc8800    r5 = 0x44fc8800    r6 = 0x44fc8800    r7 = 0xbeff0870
     r8 = 0x00000001    r9 = 0x00000007   r10 = 0x00000000    fp = 0xbeff0ee8
     sp = 0xbeff06f8    pc = 0x84bf350d
    Found by: call frame info
 4  libxul.so!mozilla::widget::GfxInfo::GetAdapterDescription(nsAString_internal&) [GfxInfo.cpp:b10d687f2735 : 208 + 0x3]
     r4 = 0x40255de0    r5 = 0x44fc8800    r6 = 0x44fc8800    r7 = 0xbeff0870
     r8 = 0x00000001    r9 = 0x00000007   r10 = 0x00000000    fp = 0xbeff0ee8
     sp = 0xbeff07b0    pc = 0x84bf39e9
    Found by: call frame info
 5  libxul.so!NS_InvokeByIndex [xptcinvoke_arm.cpp:b10d687f2735 : 164 + 0x13]
     r4 = 0xbeff0868    r5 = 0x84bf39dd    r6 = 0x44fc8800    r7 = 0xbeff0870
     r8 = 0x00000001    r9 = 0x00000007   r10 = 0x00000000    fp = 0xbeff0ee8
     sp = 0xbeff0858    pc = 0x8436d849
    Found by: call frame info
 6  libxul.so!CallMethodHelper::Call() [XPCWrappedNative.cpp:b10d687f2735 : 2389 + 0xb]
     r4 = 0xbeff08c0    r5 = 0x00000001    r6 = 0x00000000    r7 = 0x00000001
     r8 = 0x00000002    r9 = 0x866e8d84   r10 = 0x00000000    fp = 0xbeff0ee8
     sp = 0xbeff0890    pc = 0x84c7fdbb
    Found by: call frame info
 7  libxul.so!XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) [XPCWrappedNative.cpp:b10d687f2735 : 1697 + 0x5]
     r4 = 0xbeff09e0    r5 = 0x00000000    r6 = 0x00000001    r7 = 0x00000001
     r8 = 0x00000002    r9 = 0x866e8d84   r10 = 0x00000000    fp = 0xbeff0ee8
     sp = 0xbeff08c0    pc = 0x84c7ac6f
    Found by: call frame info
 8  libxul.so!XPC_WN_GetterSetter(JSContext*, unsigned int, JS::Value*) [xpcprivate.h:b10d687f2735 : 2070 + 0x7]
     r4 = 0x42616420    r5 = 0x00000000    r6 = 0x00000001    r7 = 0x00000001
     r8 = 0x00000002    r9 = 0x866e8d84   r10 = 0x00000000    fp = 0xbeff0ee8
     sp = 0xbeff0990    pc = 0x84c7af5b
    Found by: call frame info
 9  libxul.so!js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [jscntxtinlines.h:b10d687f2735 : 239 + 0x9]
     r4 = 0x42616420    r5 = 0x84c7ae09    r6 = 0xbeff0a9c    r7 = 0x00000000
     r8 = 0x00000000    r9 = 0x00000002   r10 = 0x00000000    fp = 0xbeff0ee8
     sp = 0xbeff0a68    pc = 0x85bc64f7
    Found by: call frame info
10  libxul.so!js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) [Interpreter.cpp:b10d687f2735 : 455 + 0x9]
     r4 = 0xbeff0a9c    r5 = 0xbeff0e60    r6 = 0x42616420    r7 = 0xbeff0e70
     r8 = 0x00000000    r9 = 0x00000002   r10 = 0x00000000    fp = 0xbeff0ee8
     sp = 0xbeff0a90    pc = 0x85bb5aa3
    Found by: call frame info
11  libxul.so!js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) [Interpreter.cpp:b10d687f2735 : 511 + 0xd]
     r4 = 0x00000000    r5 = 0xffffff87    r6 = 0x42616420    r7 = 0xbeff0e38
     r8 = 0xbeff0e48    r9 = 0xbeff0ed8   r10 = 0xbeff1080    fp = 0xbeff0ee8
     sp = 0xbeff0e00    pc = 0x85bbf18b
    Found by: call frame info
12  libxul.so!js::InvokeGetterOrSetter(JSContext*, JSObject*, JS::Value, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) [Interpreter.cpp:b10d687f2735 : 583 + 0x7]
     r4 = 0xffffff87    r5 = 0x45046740    r6 = 0xbeff0ee4    r7 = 0xbeff1080
     r8 = 0x42616420    r9 = 0xbeff1080   r10 = 0xbeff1080    fp = 0xbeff11d8
     sp = 0xbeff0ed0    pc = 0x85bbf2db
    Found by: call frame info
13  libxul.so!js::Shape::get(JSContext*, JS::Handle<JSObject*>, JSObject*, JSObject*, JS::MutableHandle<JS::Value>) [Shape-inl.h:b10d687f2735 : 46 + 0xb]
     r4 = 0x00000000    r5 = 0x42616420    r6 = 0x00000010    r7 = 0xbeff1080
     r8 = 0x42616420    r9 = 0xbeff1080   r10 = 0xbeff1080    fp = 0xbeff11d8
     sp = 0xbeff0f00    pc = 0x85b31c5d
    Found by: call frame info
14  libxul.so!NativeGetInline<(js::AllowGC)1u> [jsobj.cpp:b10d687f2735 : 4423 + 0x7]
     r4 = 0xbeff12d8    r5 = 0x45046740    r6 = 0xbeff0fd0    r7 = 0xbeff0fc0
     r8 = 0x42616420    r9 = 0xbeff1080   r10 = 0xbeff1080    fp = 0xbeff11d8
     sp = 0xbeff0f48    pc = 0x85b08327
    Found by: call frame info
15  libxul.so!GetPropertyHelperInline<(js::AllowGC)1u> [jsobj.cpp:b10d687f2735 : 4618 + 0x13]
     r4 = 0x42616420    r5 = 0xbeff0fb8    r6 = 0xbeff12d8    r7 = 0x45053ec8
     r8 = 0xbeff0fc8    r9 = 0xbeff1080   r10 = 0xbeff1080    fp = 0xbeff11d8
     sp = 0xbeff0f80    pc = 0x85b12db9
    Found by: call frame info
16  libxul.so!JSObject::getProperty(JSContext*, JS::Handle<JSObject*>, JS::Handle<JSObject*>, js::PropertyName*, JS::MutableHandle<JS::Value>) [jsobj.h:b10d687f2735 : 984 + 0xf]
     r4 = 0xbeff1030    r5 = 0x42616420    r6 = 0xbeff1080    r7 = 0x00000000
     r8 = 0xbeff1080    r9 = 0x00000000   r10 = 0x42971200    fp = 0xbeff11d8
     sp = 0xbeff1028    pc = 0x85871c0b
    Found by: call frame info
17  libxul.so!js::GetObjectElementOperation [Interpreter-inl.h:b10d687f2735 : 380 + 0x13]
     r4 = 0x42616420    r5 = 0x00000037    r6 = 0x42971200    r7 = 0xbeff12d8
     r8 = 0xbeff1300    r9 = 0x00000001   r10 = 0x42971200    fp = 0xbeff11d8
     sp = 0xbeff1060    pc = 0x859a80cd
    Found by: call frame info
18  libxul.so!js::jit::DoGetElemFallback [Interpreter-inl.h:b10d687f2735 : 447 + 0x11]
     r4 = 0xbeff1144    r5 = 0x42616420    r6 = 0xbeff1378    r7 = 0x00000037
     r8 = 0xbeff1130    r9 = 0x000003be   r10 = 0xbeff12f8    fp = 0xbeff11d8
     sp = 0xbeff10a8    pc = 0x859c766d
    Found by: call frame info
19  0x4019554e
     r4 = 0xbeff12d8    r5 = 0xbeff12f0    r6 = 0x866e2b6c    r7 = 0xffffff85
     r8 = 0x00000203    r9 = 0x44fc79b8   r10 = 0x00000001    fp = 0xbeff13a4
     sp = 0xbeff12c8    pc = 0x40195550
    Found by: call frame info

Thread 1
 0  libc.so + 0xc51c
     r4 = 0x40267180    r5 = 0x40204550    r6 = 0x00000000    r7 = 0x000000fc
     r8 = 0xffffffff    r9 = 0x40204550   r10 = 0x00100000    fp = 0x00000001
     sp = 0x100ffcd0    lr = 0x845132a5    pc = 0xafd0c51c
    Found by: given as instruction pointer in context
 1  libxul.so!event_base_loop [event.c:b10d687f2735 : 1607 + 0x5]
     sp = 0x100ffd00    pc = 0x84508e6b
    Found by: stack scanning
 2  libxul.so!base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) [message_pump_libevent.cc:b10d687f2735 : 340 + 0x7]
     r4 = 0x00000000    r5 = 0x100ffdf8    r6 = 0x402018e0    r7 = 0x100ffdf8
     r8 = 0x00000000    r9 = 0x4023d200   r10 = 0x00100000    fp = 0x00000001
     sp = 0x100ffd78    pc = 0x8451472f
    Found by: call frame info
 3  libxul.so!MessageLoop::RunInternal() [message_loop.cc:b10d687f2735 : 229 + 0x7]
     r4 = 0x100ffdf8    r5 = 0x100ffdf8    r6 = 0x4023d214    r7 = 0x00000078
     r8 = 0x84515065    r9 = 0x4023d200   r10 = 0x00100000    fp = 0x00000001
     sp = 0x100ffdb0    pc = 0x8451e1fb
    Found by: call frame info
 4  libxul.so!MessageLoop::Run() [message_loop.cc:b10d687f2735 : 222 + 0x5]
     r4 = 0x100ffdf8    r5 = 0x100ffdf8    r6 = 0x4023d214    r7 = 0x00000078
     r8 = 0x84515065    r9 = 0x4023d200   r10 = 0x00100000    fp = 0x00000001
     sp = 0x100ffdc8    pc = 0x8451e239
    Found by: call frame info
 5  libxul.so!base::Thread::ThreadMain() [thread.cc:b10d687f2735 : 168 + 0x5]
     r4 = 0x4023d200    r5 = 0x100ffdf8    r6 = 0x4023d214    r7 = 0x00000078
     r8 = 0x84515065    r9 = 0x4023d200   r10 = 0x00100000    fp = 0x00000001
     sp = 0x100ffde0    pc = 0x84528005
    Found by: call frame info
 6  libxul.so!ThreadFunc [platform_thread_posix.cc:b10d687f2735 : 39 + 0x5]
     r4 = 0x100fff00    r5 = 0x84515065    r6 = 0x4023d200    r7 = 0x00000078
     r8 = 0x84515065    r9 = 0x4023d200   r10 = 0x00100000    fp = 0x00000001
     sp = 0x100ffee8    pc = 0x8451506d
    Found by: call frame info
 7  libc.so + 0x11b0e
     r4 = 0x100fff00    r5 = 0x84515065    r6 = 0x4023d200    r7 = 0x00000078
     r8 = 0x84515065    r9 = 0x4023d200   r10 = 0x00100000    fp = 0x00000001
     sp = 0x100ffef0    pc = 0xafd11b10
    Found by: call frame info
 8  libc.so + 0x116d2
     sp = 0x100fff00    pc = 0xafd116d4
    Found by: stack scanning

Thread 2
 0  libc.so + 0xc59c
     r4 = 0xffffffff    r5 = 0xffffffff    r6 = 0x00000001    r7 = 0x000000a8
     r8 = 0x42571b28    r9 = 0x402b0020   r10 = 0x00000001    fp = 0x00000001
     sp = 0x42571ae8    lr = 0x80516bdf    pc = 0xafd0c59c
    Found by: given as instruction pointer in context

Thread 3
 0  libc.so + 0xc738
     r4 = 0x402043f4    r5 = 0x402376f0    r6 = 0x00000000    r7 = 0x000000f0
     r8 = 0x8686a988    r9 = 0x8686a988   r10 = 0x8686a988    fp = 0x00000000
     sp = 0x4018be40    lr = 0xafd11374    pc = 0xafd0c738
    Found by: given as instruction pointer in context
 1  libc.so + 0x11446
     sp = 0x4018be60    pc = 0xafd11448
    Found by: stack scanning
 2  libnss3.so!PR_WaitCondVar [ptsynch.c:b10d687f2735 : 385 + 0x5]
     sp = 0x4018be80    pc = 0x8051a215
    Found by: stack scanning
 3  libxul.so!js::HelperThread::threadLoop() [HelperThreads.cpp:b10d687f2735 : 513 + 0x3]
     r4 = 0x8686a988    r5 = 0x8686a988    r6 = 0x40267480    r7 = 0x8686a988
     sp = 0x4018be98    pc = 0x85bc0bbf
    Found by: call frame info
 4  libnss3.so!_pt_root [ptthread.c:b10d687f2735 : 212 + 0x5]
     r4 = 0x426fed80    r5 = 0x806104ac    r6 = 0x00000000    r7 = 0x00000000
     r8 = 0x0000b228    r9 = 0x00000000   r10 = 0x00080000    fp = 0x00000001
     sp = 0x4018bed0    pc = 0x8051b225
    Found by: call frame info
 5  libc.so + 0x11b0e
     r4 = 0x4018bf00    r5 = 0x8051b17d    r6 = 0x426fed80    r7 = 0x00000078
     r8 = 0x8051b17d    r9 = 0x426fed80   r10 = 0x00080000    fp = 0x00000001
     sp = 0x4018bef0    pc = 0xafd11b10
    Found by: call frame info
 6  libc.so + 0x116d2
     sp = 0x4018bf00    pc = 0xafd116d4
    Found by: stack scanning

Thread 4
 0  libc.so + 0xc738
     r4 = 0x402043f4    r5 = 0x402376f0    r6 = 0x00000000    r7 = 0x000000f0
     r8 = 0x8686a988    r9 = 0x8686a988   r10 = 0x8686a988    fp = 0x00000000
     sp = 0x425f1e40    lr = 0xafd11374    pc = 0xafd0c738
    Found by: given as instruction pointer in context
 1  libc.so + 0x11446
     sp = 0x425f1e60    pc = 0xafd11448
    Found by: stack scanning
 2  libnss3.so!PR_WaitCondVar [ptsynch.c:b10d687f2735 : 385 + 0x5]
     sp = 0x425f1e80    pc = 0x8051a215
    Found by: stack scanning
 3  libxul.so!js::HelperThread::threadLoop() [HelperThreads.cpp:b10d687f2735 : 513 + 0x3]
     r4 = 0x8686a988    r5 = 0x8686a988    r6 = 0x40267540    r7 = 0x8686a988
     sp = 0x425f1e98    pc = 0x85bc0bbf
    Found by: call frame info
 4  libnss3.so!_pt_root [ptthread.c:b10d687f2735 : 212 + 0x5]
     r4 = 0x426fee00    r5 = 0x806104ac    r6 = 0x00000000    r7 = 0x00000000
     r8 = 0x0000b268    r9 = 0x00000000   r10 = 0x00080000    fp = 0x00000001
     sp = 0x425f1ed0    pc = 0x8051b225
    Found by: call frame info
 5  libc.so + 0x11b0e
     r4 = 0x425f1f00    r5 = 0x8051b17d    r6 = 0x426fee00    r7 = 0x00000078
     r8 = 0x8051b17d    r9 = 0x426fee00   r10 = 0x00080000    fp = 0x00000001
     sp = 0x425f1ef0    pc = 0xafd11b10
    Found by: call frame info
 6  libc.so + 0x116d2
     sp = 0x425f1f00    pc = 0xafd116d4
    Found by: stack scanning

Thread 5
 0  libc.so + 0xc738
     r4 = 0x402b7cb4    r5 = 0x402fbe70    r6 = 0x00000000    r7 = 0x000000f0
     r8 = 0x402fbe70    r9 = 0x402b7cb4   r10 = 0x00000000    fp = 0x00000001
     sp = 0x428ffe08    lr = 0xafd11374    pc = 0xafd0c738
    Found by: given as instruction pointer in context
 1  libc.so + 0x11446
     sp = 0x428ffe28    pc = 0xafd11448
    Found by: stack scanning
 2  libnss3.so!pt_TimedWait [ptsynch.c:b10d687f2735 : 264 + 0x3]
     sp = 0x428ffe48    pc = 0x80519a4f
    Found by: stack scanning
 3  libnss3.so!PR_WaitCondVar [ptsynch.c:b10d687f2735 : 387 + 0x7]
     r4 = 0x402b7cb0    r5 = 0x426fef80    r6 = 0x000003e8    r7 = 0x0000b2a8
     r8 = 0x85e3fe01    r9 = 0x86177c04    sp = 0x428ffe78    pc = 0x8051a177
    Found by: call frame info
 4  libxul.so!Watchdog::Sleep(unsigned int) [XPCJSRuntime.cpp:b10d687f2735 : 1123 + 0x7]
     r4 = 0x00000000    r5 = 0x402f4a20    r6 = 0x000003e8    r7 = 0x42602500
     r8 = 0x85e3fe01    r9 = 0x86177c04    sp = 0x428ffe90    pc = 0x84c64c1f
    Found by: call frame info
 5  libxul.so!WatchdogMain [XPCJSRuntime.cpp:b10d687f2735 : 1302 + 0xb]
     r4 = 0x428ffeac    r5 = 0x0004faf7    r6 = 0x402f4a20    r7 = 0x42602500
     r8 = 0x85e3fe01    r9 = 0x86177c04    sp = 0x428ffea0    pc = 0x84c5cc79
    Found by: call frame info
 6  libnss3.so!_pt_root [ptthread.c:b10d687f2735 : 212 + 0x5]
     r4 = 0x426fef80    r5 = 0x806104ac    r6 = 0x00000001    r7 = 0x00000000
     r8 = 0x0000b2a8    r9 = 0x00000000   r10 = 0x00100000    sp = 0x428ffed0
     pc = 0x8051b225
    Found by: call frame info
 7  libc.so + 0x11b0e
     r4 = 0x428fff00    r5 = 0x8051b17d    r6 = 0x426fef80    r7 = 0x00000078
     r8 = 0x8051b17d    r9 = 0x426fef80   r10 = 0x00100000    sp = 0x428ffef0
     pc = 0xafd11b10
    Found by: call frame info
 8  libc.so + 0x116d2
     sp = 0x428fff00    pc = 0xafd116d4
    Found by: stack scanning

Thread 6
 0  libc.so + 0xc738
     r4 = 0x427671b4    r5 = 0x42762b00    r6 = 0x00000000    r7 = 0x000000f0
     r8 = 0x00000000    r9 = 0x8675f7c8   r10 = 0x8675f7c8    fp = 0x00000001
     sp = 0x44e71e38    lr = 0xafd11374    pc = 0xafd0c738
    Found by: given as instruction pointer in context
 1  libc.so + 0x11446
     sp = 0x44e71e58    pc = 0xafd11448
    Found by: stack scanning
 2  libnss3.so!PR_SetThreadPrivate [prtpd.c:b10d687f2735 : 157 + 0xd]
     sp = 0x44e71e60    pc = 0x805147b1
    Found by: stack scanning
 3  libnss3.so!PR_WaitCondVar [ptsynch.c:b10d687f2735 : 385 + 0x5]
     r4 = 0x4260db80    r5 = 0x427671b0    r6 = 0x4273d500    r7 = 0xffffffff
     r8 = 0x0000b2e8    sp = 0x44e71e78    pc = 0x8051a215
    Found by: call frame info
 4  libxul.so!mozilla::CondVar::Wait(unsigned int) [BlockingResourceBase.cpp:b10d687f2735 : 350 + 0x5]
     r4 = 0x4260db8c    r5 = 0x00000000    r6 = 0x00000000    r7 = 0xffffffff
     r8 = 0x0000b2e8    sp = 0x44e71e90    pc = 0x8431464f
    Found by: call frame info
 5  libxul.so!mozilla::HangMonitor::ThreadMain(void*) [Monitor.h : 102 + 0x5]
     r4 = 0x00000000    r5 = 0x00000000    r6 = 0x00000000    r7 = 0x8675f7c8
     r8 = 0x0000b2e8    sp = 0x44e71ea8    pc = 0x84362947
    Found by: call frame info
 6  libnss3.so!_pt_root [ptthread.c:b10d687f2735 : 212 + 0x5]
     r4 = 0x4273d500    r5 = 0x806104ac    r6 = 0x00000000    r7 = 0x00000000
     r8 = 0x0000b2e8    r9 = 0x00000000   r10 = 0x00100000    sp = 0x44e71ed0
     pc = 0x8051b225
    Found by: call frame info
 7  libc.so + 0x11b0e
     r4 = 0x44e71f00    r5 = 0x8051b17d    r6 = 0x4273d500    r7 = 0x00000078
     r8 = 0x8051b17d    r9 = 0x4273d500   r10 = 0x00100000    sp = 0x44e71ef0
     pc = 0xafd11b10
    Found by: call frame info
 8  libc.so + 0x116d2
     sp = 0x44e71f00    pc = 0xafd116d4
    Found by: stack scanning

Loaded modules:
0x00008000 - 0x00009fff  xpcshell  ???  (main)
0x40000000 - 0x40007fff  __properties__ (deleted)  ???
0x40300000 - 0x42471fff  fennec-32.0a1.en-US.android-arm.apk  ???
0x42c00000 - 0x44d71fff  fennec-32.0a1.en-US.android-arm.apk  ???
0x80000000 - 0x80060fff  libmozglue.so  ???
0x80100000 - 0x80104fff  libmozalloc.so  ???
0x80400000 - 0x805fffff  libnss3.so  ???
0x84000000 - 0x864e0fff  libxul.so  ???
0xa8100000 - 0xa8127fff  libutils.so  ???
0xabe00000 - 0xabe08fff  libEGL.so  ???
0xac100000 - 0xac104fff  libGLESv2.so  ???
0xaf700000 - 0xaf714fff  libz.so  ???
0xaf900000 - 0xaf90efff  libcutils.so  ???
0xafa00000 - 0xafa03fff  liblog.so  ???
0xafb00000 - 0xafb16fff  libm.so  ???
0xafc00000 - 0xafc01fff  libstdc++.so  ???
0xafd00000 - 0xafd42fff  libc.so  ???

 3:46.92 INFO | Result summary:
 3:46.92 INFO | Passed: 0
 3:46.92 INFO | Failed: 1
 3:46.92 INFO | Todo: 0
 3:46.92 INFO | Retried: 0
I tried calling gfxPlatform::GetPlatform() from GLLibraryEGL::EnsureInitialized() and that successfully avoids the UseApitrace assertion. But then we hit:

F/MOZ_Assert( 3768): Assertion failure: mozilla::AndroidBridge::Bridge(), at /home/gbrown/src/widget/android/GfxInfo.cpp:154

PROCESS-CRASH | /home/gbrown/objdirs/droid-debug/_tests/xpcshell/toolkit/components/telemetry/tests/unit/test_TelemetryLog.js | application crashed [@ mozilla::widget::GfxInfo::EnsureInitialized()]
Crash dump filename: /tmp/tmp5gw1_I/421bf05f-1c5d-22e3-42086bf6-2bceb1d1.dmp
Operating system: Android
                  0.0.0 Linux 2.6.29-ge3d684d #1 Mon Dec 16 22:26:51 UTC 2013 armv7l generic/sdk/generic:2.3.7/GINGERBREAD/eng.ubuntu.20140123.014351:eng/test-keys
CPU: arm
     0 CPUs

Crash reason:  SIGSEGV
Crash address: 0x0

Thread 0 (crashed)
 0  libxul.so!mozilla::widget::GfxInfo::EnsureInitialized() [GfxInfo.cpp:b10d687f2735 : 154 + 0x12]
     r4 = 0x44fc8800    r5 = 0x00000000    r6 = 0x44fc8800    r7 = 0xbed3a870
     r8 = 0x00000001    r9 = 0x00000007   r10 = 0x00000000    fp = 0xbed3aee8
     sp = 0xbed3a6f8    lr = 0x84bf332b    pc = 0x84bf353c
    Found by: given as instruction pointer in context
 1  libxul.so!mozilla::widget::GfxInfo::GetAdapterDescription(nsAString_internal&) [GfxInfo.cpp:b10d687f2735 : 208 + 0x3]
     r4 = 0x40255de0    r5 = 0x44fc8800    r6 = 0x44fc8800    r7 = 0xbed3a870
     r8 = 0x00000001    r9 = 0x00000007   r10 = 0x00000000    fp = 0xbed3aee8
     sp = 0xbed3a7b0    pc = 0x84bf3a01
    Found by: call frame info
 2  libxul.so!NS_InvokeByIndex [xptcinvoke_arm.cpp:b10d687f2735 : 164 + 0x13]
     r4 = 0xbed3a868    r5 = 0x84bf39f5    r6 = 0x44fc8800    r7 = 0xbed3a870
     r8 = 0x00000001    r9 = 0x00000007   r10 = 0x00000000    fp = 0xbed3aee8
     sp = 0xbed3a858    pc = 0x8436d849
    Found by: call frame info
 3  libxul.so!CallMethodHelper::Call() [XPCWrappedNative.cpp:b10d687f2735 : 2389 + 0xb]
     r4 = 0xbed3a8c0    r5 = 0x00000001    r6 = 0x00000000    r7 = 0x00000001
     r8 = 0x00000002    r9 = 0x866e8d84   r10 = 0x00000000    fp = 0xbed3aee8
     sp = 0xbed3a890    pc = 0x84c7fdd3
    Found by: call frame info
 4  libxul.so!XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) [XPCWrappedNative.cpp:b10d687f2735 : 1697 + 0x5]
     r4 = 0xbed3a9e0    r5 = 0x00000000    r6 = 0x00000001    r7 = 0x00000001
     r8 = 0x00000002    r9 = 0x866e8d84   r10 = 0x00000000    fp = 0xbed3aee8
     sp = 0xbed3a8c0    pc = 0x84c7ac87
    Found by: call frame info
 5  libxul.so!XPC_WN_GetterSetter(JSContext*, unsigned int, JS::Value*) [xpcprivate.h:b10d687f2735 : 2070 + 0x7]
     r4 = 0x42616420    r5 = 0x00000000    r6 = 0x00000001    r7 = 0x00000001
     r8 = 0x00000002    r9 = 0x866e8d84   r10 = 0x00000000    fp = 0xbed3aee8
     sp = 0xbed3a990    pc = 0x84c7af73
    Found by: call frame info
 6  libxul.so!js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [jscntxtinlines.h:b10d687f2735 : 239 + 0x9]
     r4 = 0x42616420    r5 = 0x84c7ae21    r6 = 0xbed3aa9c    r7 = 0x00000000
     r8 = 0x00000000    r9 = 0x00000002   r10 = 0x00000000    fp = 0xbed3aee8
     sp = 0xbed3aa68    pc = 0x85bc650f
    Found by: call frame info
 7  libxul.so!js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) [Interpreter.cpp:b10d687f2735 : 455 + 0x9]
     r4 = 0xbed3aa9c    r5 = 0xbed3ae60    r6 = 0x42616420    r7 = 0xbed3ae70
     r8 = 0x00000000    r9 = 0x00000002   r10 = 0x00000000    fp = 0xbed3aee8
     sp = 0xbed3aa90    pc = 0x85bb5abb
    Found by: call frame info
 8  libxul.so!js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) [Interpreter.cpp:b10d687f2735 : 511 + 0xd]
     r4 = 0x00000000    r5 = 0xffffff87    r6 = 0x42616420    r7 = 0xbed3ae38
     r8 = 0xbed3ae48    r9 = 0xbed3aed8   r10 = 0xbed3b080    fp = 0xbed3aee8
     sp = 0xbed3ae00    pc = 0x85bbf1a3
    Found by: call frame info
 9  libxul.so!js::InvokeGetterOrSetter(JSContext*, JSObject*, JS::Value, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) [Interpreter.cpp:b10d687f2735 : 583 + 0x7]
     r4 = 0xffffff87    r5 = 0x45046740    r6 = 0xbed3aee4    r7 = 0xbed3b080
     r8 = 0x42616420    r9 = 0xbed3b080   r10 = 0xbed3b080    fp = 0xbed3b1d8
     sp = 0xbed3aed0    pc = 0x85bbf2f3
    Found by: call frame info
10  libxul.so!js::Shape::get(JSContext*, JS::Handle<JSObject*>, JSObject*, JSObject*, JS::MutableHandle<JS::Value>) [Shape-inl.h:b10d687f2735 : 46 + 0xb]
     r4 = 0x00000000    r5 = 0x42616420    r6 = 0x00000010    r7 = 0xbed3b080
     r8 = 0x42616420    r9 = 0xbed3b080   r10 = 0xbed3b080    fp = 0xbed3b1d8
     sp = 0xbed3af00    pc = 0x85b31c75
    Found by: call frame info
11  libxul.so!NativeGetInline<(js::AllowGC)1u> [jsobj.cpp:b10d687f2735 : 4423 + 0x7]
     r4 = 0xbed3b2d8    r5 = 0x45046740    r6 = 0xbed3afd0    r7 = 0xbed3afc0
     r8 = 0x42616420    r9 = 0xbed3b080   r10 = 0xbed3b080    fp = 0xbed3b1d8
     sp = 0xbed3af48    pc = 0x85b0833f
    Found by: call frame info
12  libxul.so!GetPropertyHelperInline<(js::AllowGC)1u> [jsobj.cpp:b10d687f2735 : 4618 + 0x13]
     r4 = 0x42616420    r5 = 0xbed3afb8    r6 = 0xbed3b2d8    r7 = 0x45053ec8
     r8 = 0xbed3afc8    r9 = 0xbed3b080   r10 = 0xbed3b080    fp = 0xbed3b1d8
     sp = 0xbed3af80    pc = 0x85b12dd1
    Found by: call frame info
13  libxul.so!JSObject::getProperty(JSContext*, JS::Handle<JSObject*>, JS::Handle<JSObject*>, js::PropertyName*, JS::MutableHandle<JS::Value>) [jsobj.h:b10d687f2735 : 984 + 0xf]
     r4 = 0xbed3b030    r5 = 0x42616420    r6 = 0xbed3b080    r7 = 0x00000000
     r8 = 0xbed3b080    r9 = 0x00000000   r10 = 0x42971200    fp = 0xbed3b1d8
     sp = 0xbed3b028    pc = 0x85871c1b
    Found by: call frame info
14  libxul.so!js::GetObjectElementOperation [Interpreter-inl.h:b10d687f2735 : 380 + 0x13]
     r4 = 0x42616420    r5 = 0x00000037    r6 = 0x42971200    r7 = 0xbed3b2d8
     r8 = 0xbed3b300    r9 = 0x00000001   r10 = 0x42971200    fp = 0xbed3b1d8
     sp = 0xbed3b060    pc = 0x859a80dd
    Found by: call frame info
15  libxul.so!js::jit::DoGetElemFallback [Interpreter-inl.h:b10d687f2735 : 447 + 0x11]
     r4 = 0xbed3b144    r5 = 0x42616420    r6 = 0xbed3b378    r7 = 0x00000037
     r8 = 0xbed3b130    r9 = 0x000003be   r10 = 0xbed3b2f8    fp = 0xbed3b1d8
     sp = 0xbed3b0a8    pc = 0x859c767d
    Found by: call frame info
16  0x4019554e
     r4 = 0xbed3b2d8    r5 = 0xbed3b2f0    r6 = 0x866e2b6c    r7 = 0xffffff85
     r8 = 0x00000203    r9 = 0x44fc79b8   r10 = 0x00000001    fp = 0xbed3b3a4
     sp = 0xbed3b2c8    pc = 0x40195550
    Found by: call frame info
Assignee: nobody → gbrown
A few Android xpcshell tests fail in Debug builds when they hit this MOZ_ASSERT in GfxPrefs, as shown in Comment 3. I can avoid the MOZ_ASSERT in other ways (different initialization), but thought I would first challenge the MOZ_ASSERT itself: Since GetSingleton() will create sInstance if needed, why assert here?
Attachment #8439351 - Flags: review?(milan)
Comment on attachment 8439351 [details] [diff] [review]
remove singleton assertion from GfxPrefs

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

Geoff, you're right, it's a bit unfortunate the way it's written. The assertion should really be that the creation happens on the main thread, and after the preference system was initialized. Since only a few places needed initialization, the easiest thing was to hand check them for correctness, then put the assert that none of those initializations can be skipped.

If the scenario in this bug is where we don't have a good place to initialize the prefs, I'd like to understand why - if you need it fixed quickly, you can remove the assert, but please open (and assign to me if you don't have time to chase this) to figure out where it should be initialized and put the assert back in to catch the next scenario :)
Attachment #8439351 - Flags: review?(milan) → review+
Sorry, I have not had time to follow-up. Given Comment 6, I'd prefer not to check-in my patch, but rather keep the assert and determine correct initialization. Hope to come back to this one day...
Assignee: gbrown → nobody
Geoff, does this patch help the original problem?
Attachment #8490269 - Flags: feedback?(gbrown)
Comment on attachment 8490269 [details] [diff] [review]
Make sure prefs are initialized in time

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

Sorry for the delay -- was away on PTO.

Here's your patch in action: https://treeherder.mozilla.org/ui/#/jobs?repo=cedar&revision=5100b39bef7a

Unfortunately, test_TelemetryLog.js (and others) still crash on Android 4.0 Debug, though perhaps differently. From logcat http://mozilla-releng-blobs.s3.amazonaws.com/blobs/cedar/sha512/c50c4749f22541a58afabeeee3c087c86f05027f54d1d9a4c23b99f56fdf8c3777bfefb3a28915e7e3c07cd78e9823e5895005189b51aea3e80c9d279c52f838:

10-08 15:16:58.914 I/SUTAgentAndroid( 1904): 10.26.132.21 : exec /data/local/xpcb/xpcw /mnt/sdcard/tests/xpcshell/toolkit/components/telemetry/tests/unit -r /mnt/sdcard/tests/xpcshell/c/httpd.manifest --greomni /data/local/xpcb/fennec-35.0a1.en-US.android-arm.apk -m -s -e 'const _HTTPD_JS_PATH = "/mnt/sdcard/tests/xpcshell/c/httpd.js";' -e 'const _HEAD_JS_PATH = "/mnt/sdcard/tests/xpcshell/head.js";' -e 'const _TESTING_MODULES_DIR = "/mnt/sdcard/tests/xpcshell/m";' -f /mnt/sdcard/tests/xpcshell/head.js -e 'const _SERVER_ADDR = "localhost"' -e 'const _HEAD_FILES = ["/mnt/sdcard/tests/xpcshell/toolkit/components/telemetry/tests/unit/head.js"];' -e 'const _TAIL_FILES = [];' -e 'const _TEST_FILE = ["test_TelemetryLog.js"];' -e '_execute_test(); quit(0);'
10-08 15:16:58.960 I/Gecko   (20094): [20094] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /builds/slave/ced-and-d-00000000000000000000/build/xpcom/base/nsTraceRefcnt.cpp, line 144
10-08 15:16:58.992 I/Gecko:DumpUtils(20094): Fifo watcher disabled via pref.
10-08 15:16:58.992 I/GeckoConsole(20094): Could not read chrome manifest 'file:///data/data/org.mozilla.fennec/chrome.manifest'.
10-08 15:16:59.265 W/GeckoConsole(20094): [JavaScript Warning: "Could not map contract ID '@mozilla.org/browser/browser-clh;1' to CID {be623d20-d305-11de-8a39-0800200c9a66} because no implementation of the CID is registered." {file: "jar:jar:file:///data/local/xpcb/fennec-35.0a1.en-US.android-arm.apk!/assets/omni.ja!/components/components.manifest" line: 249}]
10-08 15:16:59.421 I/Gecko   (20094): [20094] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file /builds/slave/ced-and-d-00000000000000000000/build/toolkit/crashreporter/nsExceptionHandler.cpp, line 2284
10-08 15:16:59.703 I/Gecko   (20094): 
10-08 15:16:59.703 I/Gecko   (20094): {"_message":"TEST-INFO | (xpcshell/head.js) | test MAIN run_test pending (1)\n","action":"test_pending","_time":1412781419704}
10-08 15:17:00.031 D/dalvikvm( 1402): GC_CONCURRENT freed 443K, 30% free 8723K/12295K, paused 0ms+3ms
10-08 15:17:00.093 I/Gecko   (20094): Attempting load of libEGL.so
10-08 15:17:00.093 I/Gecko   (20094): Can't find symbol '_Z35eglQueryStringImplementationANDROIDPvi'.
10-08 15:17:00.101 D/libEGL  (20094): loaded /system/lib/egl/libGLES_android.so
10-08 15:17:00.101 D/libEGL  (20094): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
10-08 15:17:00.101 D/libEGL  (20094): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
10-08 15:17:00.101 D/libEGL  (20094): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
10-08 15:17:00.140 I/Gecko   (20094): Initializing context 0x18478 surface 0x124d0 on display 0x1
10-08 15:17:00.140 I/Gecko   (20094): OpenGL version detected: 200
10-08 15:17:00.148 I/Gecko   (20094): OpenGL vendor: Imagination Technologies
10-08 15:17:00.148 I/Gecko   (20094): OpenGL renderer: PowerVR SGX 540
10-08 15:17:00.164 I/Gecko   (20094): Destroying context 0x18478 surface 0x124d0 on display 0x1
10-08 15:17:00.179 F/MOZ_Assert(20094): Assertion failure: mozilla::AndroidBridge::Bridge(), at /builds/slave/ced-and-d-00000000000000000000/build/widget/android/GfxInfo.cpp:158

Also, many mochitests and reftests now fail:

https://treeherder.mozilla.org/ui/#/jobs?repo=cedar&revision=5100b39bef7a&searchQuery=Android%204.0%20Panda%20cedar%20debug%20test%20mochitest-1

PROCESS-CRASH | remoteautomation.py | application crashed [@ mozilla::gl::GLLibraryEGL::EnsureInitialized()]
10-08 14:27:49.398 F/MOZ_Assert( 2249): Assertion failure: NS_IsMainThread(), at /builds/slave/ced-and-d-00000000000000000000/build/gfx/gl/GLLibraryEGL.cpp:165
Return code: 1
10-08 14:27:49.398 F/MOZ_Assert( 2249): Assertion failure: NS_IsMainThread(), at /builds/slave/ced-and-d-00000000000000000000/build/gfx/gl/GLLibraryEGL.cpp:165
Attachment #8490269 - Flags: feedback?(gbrown) → feedback-
Just recording that with this last assert, looks like GfxInfo::GetAdapterDescription() is getting called before AndroidBridge::ConstructBridge()?
I don't know if there is a "bug fix" solution here; it seems that we're just trying to spoof the vendor ID too early, and things are just not ready for it.  In the normal execution, this is not an issue.  May need a bit of a rejig or how the things are handled with vendor ID spoofing...
I don't know enough about Android and how we initialize things, but, while a few things can be cleared up, in the end we keep running into the fact that the AndroidBridge hasn't been initialized.  This usually happens inside of GeckoAppShell's runGecko function (https://dxr.mozilla.org/mozilla-central/source/mobile/android/base/GeckoAppShell.java#343) but that is not getting called, or not getting called in time, when running the unit test(s) like test_TelemetryPing.js.
We can make the code run without the initialized bridge (with some information missing), but I don't know if that's the right thing or not.  Is calling runGecko() and involving that level of Java contrary to this being a unit test?
Flags: needinfo?(snorp)
(In reply to Milan Sreckovic [:milan] from comment #12)
I think it's likely these tests are running in a child process, and AndroidBridge() is not available there as we have no JVM.
Flags: needinfo?(snorp)
This should give us a green Cedar try run, a version with some debugging did: https://treeherder.mozilla.org/#/jobs?repo=try&revision=9a4c1f74ffcf
Attachment #8439351 - Attachment is obsolete: true
Attachment #8490269 - Attachment is obsolete: true
Attachment #8566232 - Flags: review?(snorp)
Review ping.
Flags: needinfo?(snorp)
Assignee: nobody → milan
Attachment #8566232 - Flags: review?(snorp) → review+
Note that on my Android emulator i do now get a different segfault with this patch applied (sorry, still don't have properly working symbols for some reason):

I/Gecko   ( 4101): 1424858489114	Toolkit.Telemetry	TRACE	TelemetrySession::getMetadata - Reason gather-payload
I/Gecko   ( 4101): Attempting load of libEGL.so
D/libEGL  ( 4101): Emulator without GPU support detected. Fallback to software renderer.
D/libEGL  ( 4101): loaded /system/lib/egl/libGLES_android.so
E/libEGL  ( 4101): dlopen("system/lib/libGLESv1_CM.so") failed: dlopen failed: library "system/lib/libGLESv1_CM.so" not found
F/libEGL  ( 4101): couldn't load system OpenGL ES wrapper libraries
F/libc    ( 4101): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 4101 (xpcshell)
W/NativeCrashListener(  276): Couldn't find ProcessRecord for pid 4101
I/DEBUG   ( 2557): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   ( 2557): Build fingerprint: 'generic/sdk/generic:4.3/JB_MR2/774058:eng/test-keys'
I/DEBUG   ( 2557): Revision: '0'
I/DEBUG   ( 2557): pid: 4101, tid: 4101, name: UNKNOWN  >>> /data/local/xpcb/xpcshell <<<
I/DEBUG   ( 2557): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
I/DEBUG   ( 2557):     r0 00000027  r1 00000000  r2 00000008  r3 deadbaad
I/DEBUG   ( 2557):     r4 00000000  r5 bedaaa3c  r6 00013740  r7 00013720
I/DEBUG   ( 2557):     r8 45cda800  r9 0000000b  sl 00000001  fp bedabf54
I/DEBUG   ( 2557):     ip 00013720  sp bedaaa38  lr 40039fcb  pc 40037524  cpsr 60000030
I/DEBUG   ( 2557):     d0  4018000000000000  d1  7e37e43c8800759c
I/DEBUG   ( 2557):     d2  3e91e9eebc4246d4  d3  00000007bcc0c499
I/DEBUG   ( 2557):     d4  407f800000000000  d5  3ff0000000000000
I/DEBUG   ( 2557):     d6  4039000000000000  d7  437a000000000000
I/DEBUG   ( 2557):     d8  0000000000000000  d9  0000000000000000
I/DEBUG   ( 2557):     d10 0000000000000000  d11 0000000000000000
I/DEBUG   ( 2557):     d12 0000000000000000  d13 0000000000000000
I/DEBUG   ( 2557):     d14 0000000000000000  d15 0000000000000000
I/DEBUG   ( 2557):     scr 60000011
I/DEBUG   ( 2557): 
I/DEBUG   ( 2557): backtrace:
I/DEBUG   ( 2557):     #00  pc 0001e524  /system/lib/libc.so
I/DEBUG   ( 2557):     #01  pc 0001c4e4  /system/lib/libc.so (abort+4)
I/DEBUG   ( 2557):     #02  pc 0000888b  /system/lib/libcutils.so (__android_log_assert+86)
I/DEBUG   ( 2557):     #03  pc 000342f7  /system/lib/libEGL.so
I/DEBUG   ( 2557):     #04  pc 0000dff5  /system/lib/libEGL.so
I/DEBUG   ( 2557):     #05  pc 0000e77d  /system/lib/libEGL.so (eglGetDisplay+24)
I/DEBUG   ( 2557):     #06  pc 010d912d  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #07  pc 010caa67  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #08  pc 010caf51  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #09  pc 010ca41b  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #10  pc 02694695  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #11  pc 026945c3  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #12  pc 0269319f  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #13  pc 0053220f  /data/local/xpcb/libxul.so (NS_InvokeByIndex+66)
I/DEBUG   ( 2557):     #14  pc 00df3cbf  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #15  pc 00df22b1  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #16  pc 00dddc49  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #17  pc 00defc21  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #18  pc 00de480d  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #19  pc 03b04965  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #20  pc 03accac9  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #21  pc 03acce39  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #22  pc 03acd21d  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #23  pc 03ae7df7  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #24  pc 03af9e63  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #25  pc 03afa061  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #26  pc 03ae8413  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #27  pc 039670f3  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #28  pc 0396607f  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #29  pc 03c5b7b5  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #30  pc 03c5be5d  /data/local/xpcb/libxul.so
I/DEBUG   ( 2557):     #31  pc 03c77ef3  /data/local/xpcb/libxul.so

[...]
Flags: needinfo?(snorp)
Comment 16 is from running test_TelemetryPing.js.
Ok, the previous comments are not relevant to this bug:
I get those issues on non-debug builds too, so i guess that is specific to my emulator setup.
https://hg.mozilla.org/mozilla-central/rev/9dceedb3af00
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Whiteboard: [fixed-in-fx-team]
Target Milestone: --- → Firefox 39
You need to log in before you can comment on or make changes to this bug.