Closed Bug 876874 Opened 9 years ago Closed 8 years ago

Intermittent testDistribution | GeckoEventExpecter - blockForEvent timeout: Preferences:Data

Categories

(Firefox for Android Graveyard :: General, defect)

ARM
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 896199

People

(Reporter: RyanVM, Assigned: gbrown)

References

Details

(Keywords: intermittent-failure)

https://tbpl.mozilla.org/php/getParsedLog.php?id=23496320&tree=Mozilla-Inbound

Android Armv6 Tegra 250 mozilla-inbound opt test robocop-2 on 2013-05-28 12:17:56 PDT for push f6d827971b26
slave: tegra-170

0 INFO SimpleTest START
1 INFO TEST-START | testDistribution
Dumping ALL the threads!
Thread[JDWP,5,system]
dalvik.system.NativeStart.run(Native Method)

Thread[HeapWorker,5,system]
dalvik.system.NativeStart.run(Native Method)

Thread[Gecko,5,main]
org.mozilla.gecko.mozglue.GeckoLoader.nativeRun(Native Method)
org.mozilla.gecko.GeckoAppShell.runGecko(GeckoAppShell.java:319)
org.mozilla.gecko.GeckoThread.run(GeckoThread.java:113)

Thread[Instr: org.mozilla.fennec.FennecInstrumentationTestRunner,5,main]
dalvik.system.VMStack.getThreadStackTrace(Native Method)
java.lang.Thread.getStackTrace(Thread.java:788)
java.lang.Thread.getAllStackTraces(Thread.java:669)
org.mozilla.fennec.FennecNativeDriver.logAllStackTraces(FennecNativeDriver.java:411)
org.mozilla.fennec.FennecNativeActions$GeckoEventExpecter.blockForEvent(FennecNativeActions.java:147)
org.mozilla.fennec.FennecNativeActions$GeckoEventExpecter.blockForEvent(FennecNativeActions.java:128)
org.mozilla.fennec.FennecNativeActions$GeckoEventExpecter.blockForEventData(FennecNativeActions.java:207)
org.mozilla.fennec.tests.testDistribution.setTestLocale(testDistribution.java:190)
org.mozilla.fennec.tests.testDistribution.testDistribution(testDistribution.java:48)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:521)
android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204)
android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194)
android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:186)
org.mozilla.fennec.tests.BaseTest.runTest(BaseTest.java:129)
junit.framework.TestCase.runBare(TestCase.java:127)
junit.framework.TestResult$1.protect(TestResult.java:106)
junit.framework.TestResult.runProtected(TestResult.java:124)
junit.framework.TestResult.run(TestResult.java:109)
junit.framework.TestCase.run(TestCase.java:118)
android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520)
android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)

Thread[pool-1-thread-1,5,main]
java.lang.Object.wait(Native Method)
java.lang.Thread.parkFor(Thread.java:1535)
java.lang.LangAccessImpl.parkFor(LangAccessImpl.java:48)
sun.misc.Unsafe.park(Unsafe.java:317)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:131)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1996)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1001)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
java.lang.Thread.run(Thread.java:1096)

Thread[Binder Thread #1,5,main]
dalvik.system.NativeStart.run(Native Method)

Thread[Binder Thread #2,5,main]
dalvik.system.NativeStart.run(Native Method)

Thread[Timer-0,5,main]
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:326)
java.util.Timer$TimerImpl.run(Timer.java:243)

Thread[Compiler,5,system]
dalvik.system.NativeStart.run(Native Method)

Thread[GeckoBackgroundThread,5,main]
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:288)
android.os.MessageQueue.next(MessageQueue.java:146)
android.os.Looper.loop(Looper.java:110)
org.mozilla.gecko.util.GeckoBackgroundThread.run(GeckoBackgroundThread.java:32)

Thread[Thread-18,5,main]
dalvik.system.NativeStart.run(Native Method)

Thread[GeckoANRReporter,5,main]
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:288)
android.os.MessageQueue.next(MessageQueue.java:146)
android.os.Looper.loop(Looper.java:110)
org.mozilla.gecko.ANRReporter$1.run(ANRReporter.java:102)
java.lang.Thread.run(Thread.java:1096)

Thread[RefQueueWorker@org.apache.http.impl.conn.tsccm.ConnPoolByRoute@484ca810,5,main]
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:326)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:107)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:80)
org.apache.http.impl.conn.tsccm.RefQueueWorker.run(RefQueueWorker.java:102)
java.lang.Thread.run(Thread.java:1096)

Thread[Signal Catcher,5,system]
dalvik.system.NativeStart.run(Native Method)

Thread[main,5,main]
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:288)
android.os.MessageQueue.next(MessageQueue.java:146)
android.os.Looper.loop(Looper.java:110)
android.app.ActivityThread.main(ActivityThread.java:4627)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:521)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
dalvik.system.NativeStart.main(Native Method)


2 INFO TEST-UNEXPECTED-FAIL | testDistribution | GeckoEventExpecter - blockForEvent timeout: Preferences:Data
Exception caught during test!
junit.framework.AssertionFailedError: 2 INFO TEST-UNEXPECTED-FAIL | testDistribution | GeckoEventExpecter - blockForEvent timeout: Preferences:Data
	at junit.framework.Assert.fail(Assert.java:47)
	at org.mozilla.fennec.FennecMochitestAssert._logMochitestResult(FennecMochitestAssert.java:107)
	at org.mozilla.fennec.FennecMochitestAssert.ok(FennecMochitestAssert.java:136)
	at org.mozilla.fennec.FennecNativeActions$GeckoEventExpecter.blockForEvent(FennecNativeActions.java:148)
	at org.mozilla.fennec.FennecNativeActions$GeckoEventExpecter.blockForEvent(FennecNativeActions.java:128)
	at org.mozilla.fennec.FennecNativeActions$GeckoEventExpecter.blockForEventData(FennecNativeActions.java:207)
	at org.mozilla.fennec.tests.testDistribution.setTestLocale(testDistribution.java:190)
	at org.mozilla.fennec.tests.testDistribution.testDistribution(testDistribution.java:48)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:521)
	at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204)
	at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194)
	at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:186)
	at org.mozilla.fennec.tests.BaseTest.runTest(BaseTest.java:129)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
	at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
	at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520)
	at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
3 INFO TEST-UNEXPECTED-FAIL | testDistribution | Exception caught - junit.framework.AssertionFailedError: 2 INFO TEST-UNEXPECTED-FAIL | testDistribution | GeckoEventExpecter - blockForEvent timeout: Preferences:Data
4 INFO TEST-PASS | testDistribution | clean up mock package - deleted /data/data/org.mozilla.fennec/mock-package.zip
5 INFO TEST-UNEXPECTED-FAIL | testDistribution | clean up distribution files - deleted /data/data/org.mozilla.fennec/distribution
INFO | automation.py | Application ran for: 0:01:59.817078
INFO | zombiecheck | Reading PID log: /tmp/tmpp4wFybpidlog
/data/anr/traces.txt not found
WARNING | leakcheck | refcount logging is off, so leaks can't be detected!

INFO | runtests.py | Running tests: end.
Summary: Intermittent testDistribution | GeckoEventExpecter - blockForEvent timeout: Distribution:Set:OK → Intermittent testDistribution | GeckoEventExpecter - blockForEvent timeout: Preferences:Data
This seems to be very low frequency -- difficult to reproduce and debug.

I see no sign of deadlock in these traces. 

The failure happens in setTestLocale(), which sends Preferences:Set on general.useragent.locale, then waits for Preferences:Data and sends Preferences:Get. Several Preferences:Data's are received, but apparently not the expected one. The test code looks fine. This is happening during startup (no wait for Gecko:Ready in this test) -- I wonder if that is a factor.
Try run here with additional logging: https://tbpl.mozilla.org/?tree=Try&rev=24c76ce519b0.

setTestLocale normally sees:
{"type":"Preferences:Data","requestId":"1","preferences":[{"type":"string","value":"0","name":"browser.chrome.titlebarMode"}]}
{"type":"Preferences:Data","requestId":"2","preferences":[{"type":"bool","value":false,"name":"browser.chrome.dynamictoolbar"}]}
{"type":"Preferences:Data","requestId":"3","preferences":[{"type":"string","value":"","name":"app.orientation.default"}]}
{"type":"Preferences:Data","requestId":"4","preferences":[{"type":"string","value":"standard","name":"ui.scrolling.axis_lock_mode"}]}
{"type":"Preferences:Data","requestId":"5","preferences":[{"type":"int","value":-1,"name":"ui.scrolling.friction_fast"},{"type":"int","value":-1,"name":"ui.scrolling.friction_slow"},{"type":"int","value":-1,"name":"ui.scrolling.max_event_acceleration"},{"type":"int","value":-1,"name":"ui.scrolling.overscroll_decel_rate"},{"type":"int","value":-1,"name":"ui.scrolling.overscroll_snap_limit"},{"type":"int","value":-1,"name":"ui.scrolling.min_scrollable_distance"}]}
{"type":"Preferences:Data","requestId":"6","preferences":[{"type":"int","value":20,"name":"browser.ui.show-margins-threshold"}]}
{"type":"Preferences:Data","requestId":"7","preferences":[{"type":"bool","value":true,"name":"toolkit.telemetry.enabledPreRelease"},{"type":"bool","value":true,"name":"extensions.blocklist.enabled"}]}
{"type":"Preferences:Data","requestId":"8","preferences":[{"type":"string","value":"wifi","name":"app.update.autodownload"}]}
{"type":"Preferences:Data","requestId":"9","preferences":[{"type":"int","value":0,"name":"app.geo.reportdata"}]}
{"type":"Preferences:Data","requestId":"testDistribution","preferences":[{"type":"string","value":"en-US","name":"general.useragent.locale"}]}

but in the failing case:

{"type":"Preferences:Data","requestId":"1","preferences":[{"type":"string","value":"0","name":"browser.chrome.titlebarMode"}]}
{"type":"Preferences:Data","requestId":"2","preferences":[{"type":"bool","value":false,"name":"browser.chrome.dynamictoolbar"}]}
{"type":"Preferences:Data","requestId":"3","preferences":[{"type":"string","value":"","name":"app.orientation.default"}]}
{"type":"Preferences:Data","requestId":"4","preferences":[{"type":"bool","value":true,"name":"toolkit.telemetry.enabledPreRelease"},{"type":"bool","value":true,"name":"extensions.blocklist.enabled"}]}
{"type":"Preferences:Data","requestId":"6","preferences":[{"type":"int","value":-1,"name":"ui.scrolling.friction_fast"},{"type":"int","value":-1,"name":"ui.scrolling.friction_slow"},{"type":"int","value":-1,"name":"ui.scrolling.max_event_acceleration"},{"type":"int","value":-1,"name":"ui.scrolling.overscroll_decel_rate"},{"type":"int","value":-1,"name":"ui.scrolling.overscroll_snap_limit"},{"type":"int","value":-1,"name":"ui.scrolling.min_scrollable_distance"}]}
{"type":"Preferences:Data","requestId":"7","preferences":[{"type":"int","value":20,"name":"browser.ui.show-margins-threshold"}]}
{"type":"Preferences:Data","requestId":"10","preferences":[{"type":"bool","value":false,"name":"gfx.android.rgb16.force"}]}
{"type":"Preferences:Data","requestId":"11","preferences":[{"type":"int","value":1,"name":"gfx.displayport.strategy"},{"type":"int","value":-1,"name":"gfx.displayport.strategy_fm.multiplier"},{"type":"int","value":-1,"name":"gfx.displayport.strategy_fm.danger_x"},{"type":"int","value":-1,"name":"gfx.displayport.strategy_fm.danger_y"},{"type":"int","value":-1,"name":"gfx.displayport.strategy_vb.multiplier"},{"type":"int","value":-1,"name":"gfx.displayport.strategy_vb.threshold"},{"type":"int","value":-1,"name":"gfx.displayport.strategy_vb.reverse_buffer"},{"type":"int","value":-1,"name":"gfx.displayport.strategy_vb.danger_x_base"},{"type":"int","value":-1,"name":"gfx.displayport.strategy_vb.danger_y_base"},{"type":"int","value":-1,"name":"gfx.displayport.strategy_vb.danger_x_incr"},{"type":"int","value":-1,"name":"gfx.displayport.strategy_vb.danger_y_incr"},{"type":"int","value":-1,"name":"gfx.displayport.strategy_pb.threshold"}]}

:margaret -- Any idea why that might happen?
Flags: needinfo?(margaret.leibovic)
Assignee: nobody → gbrown
Depends on: 896199
Flags: needinfo?(margaret.leibovic)
All of these failures that I investigated were caused by bug 896199.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 896199
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.