Bug: Intermittent TV toolkit/components/normandy/test/browser/browser_RecipeRunner.js | run() does not run again from timer - Got 1, expected +0 | Test timed out -
Status: RESOLVED
Priority: P5
Resolution: INCOMPLETE
Created: 2021-03-12 21:14:32+00:00
Resolved: 2021-04-27 17:05:27+00:00

**Filed by:** btara [at] mozilla.com
**Parsed log:** https://treeherder.mozilla.org/logviewer?job_id=333046763&repo=autoland
**Full log:** https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/KJYOPOFZR2S4HWJpjwiZOQ/runs/0/artifacts/public/logs/live_backing.log
**Reftest URL:** https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/KJYOPOFZR2S4HWJpjwiZOQ/runs/0/artifacts/public/logs/live_backing.log&only_show_unexpected=1

---
```
...
[task 2021-03-12T19:04:18.640Z] 19:04:18     INFO - Entering test bound testSyncDelaysTimer
[task 2021-03-12T19:04:18.640Z] 19:04:18     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | run() shouldn't have run yet - 
[task 2021-03-12T19:04:18.640Z] 19:04:18     INFO - Console message: UTM:SVC TimerManager:unregisterTimer - id: recipe-client-addon-run
[task 2021-03-12T19:04:18.641Z] 19:04:18     INFO - Console message: UTM:SVC TimerManager:registerTimer - timerID: recipe-client-addon-run interval: 1 skipFirst: false
[task 2021-03-12T19:04:18.641Z] 19:04:18     INFO - Console message: UTM:SVC TimerManager:notify - notified timerID: recipe-client-addon-run
[task 2021-03-12T19:04:18.641Z] 19:04:18     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | run() should be called from timer - 
[task 2021-03-12T19:04:18.641Z] 19:04:18     INFO - Buffered messages logged at 19:04:15
[task 2021-03-12T19:04:18.641Z] 19:04:18     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | run() should be called from sync - 
[task 2021-03-12T19:04:18.641Z] 19:04:18     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | run() does not run again from timer - 
[task 2021-03-12T19:04:18.642Z] 19:04:18     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | run() does not run again from timer - 
[task 2021-03-12T19:04:18.642Z] 19:04:18     INFO - Console message: UTM:SVC TimerManager:notify - fire timerID: recipe-client-addon-run intended time: 1615575855 (2021-03-12T19:04:15.000Z)
[task 2021-03-12T19:04:18.642Z] 19:04:18     INFO - Console message: UTM:SVC TimerManager:notify - notified timerID: recipe-client-addon-run
[task 2021-03-12T19:04:18.642Z] 19:04:18     INFO - Buffered messages finished
[task 2021-03-12T19:04:18.642Z] 19:04:18     INFO - TEST-UNEXPECTED-FAIL | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | run() does not run again from timer - Got 1, expected +0
[task 2021-03-12T19:04:18.642Z] 19:04:18     INFO - Stack trace:
[task 2021-03-12T19:04:18.642Z] 19:04:18     INFO - chrome://mochikit/content/browser-test.js:test_is:1359
[task 2021-03-12T19:04:18.642Z] 19:04:18     INFO - chrome://mochitests/content/browser/toolkit/components/normandy/test/browser/browser_RecipeRunner.js:testSyncDelaysTimer:772
[task 2021-03-12T19:04:18.643Z] 19:04:18     INFO - GECKO(1461) | *** UTM:SVC TimerManager:unregisterTimer - id: recipe-client-addon-run
[task 2021-03-12T19:04:18.643Z] 19:04:18     INFO - Console message: UTM:SVC TimerManager:unregisterTimer - id: recipe-client-addon-run
[task 2021-03-12T19:04:18.643Z] 19:04:18     INFO - Console message: 1615575858526	app.normandy.recipe-runner	WARN	Disabling Shield because app.normandy.api_url is not an HTTPS url: http://example.com.
[task 2021-03-12T19:04:18.643Z] 19:04:18     INFO - Leaving test bound testSyncDelaysTimer
[task 2021-03-12T19:04:18.643Z] 19:04:18     INFO - Entering test bound testAutomaticCapabilities
[task 2021-03-12T19:04:18.643Z] 19:04:18     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | context variables from Normandy's client context should be included - 
[task 2021-03-12T19:04:18.643Z] 19:04:18     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | context variables from the superclass context should be included - 
[task 2021-03-12T19:04:18.643Z] 19:04:18     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | non-getter functions should not be included - 
[task 2021-03-12T19:04:18.644Z] 19:04:18     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | built-in, non-enumerable properties should not be included - 
[task 2021-03-12T19:04:18.644Z] 19:04:18     INFO - Leaving test bound testAutomaticCapabilities
[task 2021-03-12T19:04:18.644Z] 19:04:18     INFO - Entering test bound testRunEvents
[task 2021-03-12T19:04:18.678Z] 19:04:18     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | RecipeRunner.run shouldn't run if Normandy isn't initialized - 
[task 2021-03-12T19:04:18.743Z] 19:04:18     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | RecipeRunner.run should run after Normandy has initialized - 
[task 2021-03-12T19:04:18.951Z] 19:04:18     INFO - Leaving test bound testRunEvents
[task 2021-03-12T19:04:18.951Z] 19:04:18     INFO - Entering test bound testNoRecipes
[task 2021-03-12T19:04:19.212Z] 19:04:19     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | Action manager should know there were no recipes received - [[{"noRecipes":true}]] deepEqual [[{"noRecipes":true}]] - 
[task 2021-03-12T19:04:19.460Z] 19:04:19     INFO - Leaving test bound testNoRecipes
[task 2021-03-12T19:04:19.460Z] 19:04:19     INFO - Entering test bound testSomeRecipes
[task 2021-03-12T19:04:19.972Z] 19:04:19     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | Action manager should know there were recipes received - [[{"noRecipes":false}]] deepEqual [[{"noRecipes":false}]] - 
[task 2021-03-12T19:04:20.014Z] 19:04:20     INFO - Console message: [JavaScript Warning: "normandy.recipe_freshness - Truncating float/double number."]
[task 2021-03-12T19:04:20.021Z] 19:04:20     INFO - GECKO(1461) | [Child 1466: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 1 (10a221c80) [pid = 1466] [serial = 1] [outer = 0] [url = about:blank]
[task 2021-03-12T19:04:20.022Z] 19:04:20     INFO - Console message: [JavaScript Error: "1615575859938	app.normandy.recipe-runner	ERROR	Could not execute recipe undefined:: Action undefined is either missing or invalid." {file: "resource://gre/modules/Log.jsm" line: 723}]
[task 2021-03-12T19:04:20.022Z] 19:04:20     INFO - append@resource://gre/modules/Log.jsm:723:12
[task 2021-03-12T19:04:20.022Z] 19:04:20     INFO - log@resource://gre/modules/Log.jsm:379:16
[task 2021-03-12T19:04:20.022Z] 19:04:20     INFO - error@resource://gre/modules/Log.jsm:387:10
[task 2021-03-12T19:04:20.022Z] 19:04:20     INFO - processRecipe@resource://normandy/lib/ActionsManager.jsm:82:11
[task 2021-03-12T19:04:20.022Z] 19:04:20     INFO - run@resource://normandy/lib/RecipeRunner.jsm:341:32
[task 2021-03-12T19:04:20.022Z] 19:04:20     INFO - 
[task 2021-03-12T19:04:20.029Z] 19:04:20     INFO - Console message: [JavaScript Warning: "normandy.recipe_freshness - Truncating float/double number."]
[task 2021-03-12T19:04:20.300Z] 19:04:20     INFO - Leaving test bound testSomeRecipes
[task 2021-03-12T19:04:20.402Z] 19:04:20     INFO - Console message: 1615575860349	app.normandy.recipe-runner	WARN	Disabling Shield because app.normandy.api_url is not set.
[task 2021-03-12T19:04:20.402Z] 19:04:20     INFO - GECKO(1461) | MEMORY STAT | vsize 7705MB | residentFast 300MB | heapAllocated 112MB
[task 2021-03-12T19:04:20.402Z] 19:04:20     INFO - TEST-OK | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | took 11977ms
[task 2021-03-12T19:04:20.426Z] 19:04:20     INFO - GECKO(1461) | [Child 1466: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 10e4ecc00 == 1 [pid = 1466] [id = 1]
[task 2021-03-12T19:04:20.426Z] 19:04:20     INFO - GECKO(1461) | [Child 1466: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 2 (10a221c80) [pid = 1466] [serial = 3] [outer = 0]
[task 2021-03-12T19:04:20.426Z] 19:04:20     INFO - GECKO(1461) | [Child 1466: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 3 (10e4ee800) [pid = 1466] [serial = 4] [outer = 10a221c80]
[task 2021-03-12T19:04:20.514Z] 19:04:20     INFO - checking window state
[task 2021-03-12T19:04:20.706Z] 19:04:20     INFO - TEST-START | toolkit/components/normandy/test/browser/browser_RecipeRunner.js
[task 2021-03-12T19:04:24.549Z] 19:04:24     INFO - GECKO(1461) | [Child 1466: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 2 (10e4edc00) [pid = 1466] [serial = 2] [outer = 0] [url = about:blank]
[task 2021-03-12T19:04:28.789Z] 19:04:28     INFO - GECKO(1461) | [Child 1463: Main Thread]: I/DocShellAndDOMWindowLeak --DOCSHELL 108818400 == 0 [pid = 1463] [id = 1] [url = about:blank]
[task 2021-03-12T19:04:33.069Z] 19:04:33     INFO - GECKO(1461) | [Child 1463: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 1 (107f21e40) [pid = 1463] [serial = 5] [outer = 0] [url = about:blank]
[task 2021-03-12T19:04:37.348Z] 19:04:37     INFO - GECKO(1461) | [Child 1463: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 0 (10eee9800) [pid = 1463] [serial = 6] [outer = 0] [url = about:blank]
[task 2021-03-12T19:05:50.962Z] 19:05:50     INFO - Not taking screenshot here: see the one that was previously logged
[task 2021-03-12T19:05:50.962Z] 19:05:50     INFO - Buffered messages logged at 19:04:20
[task 2021-03-12T19:05:50.962Z] 19:05:50     INFO - Entering test bound getFilterContext
[task 2021-03-12T19:05:50.962Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | env.channel is available - 
...
[task 2021-03-12T19:05:50.980Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | userId was cached - 
[task 2021-03-12T19:05:50.980Z] 19:05:50     INFO - Leaving test bound getFilterContext
[task 2021-03-12T19:05:50.980Z] 19:05:50     INFO - Entering test bound wrapper
[task 2021-03-12T19:05:50.980Z] 19:05:50     INFO - Leaving test bound wrapper
[task 2021-03-12T19:05:50.980Z] 19:05:50     INFO - Entering test bound test_getRecipeSuitability_canHandleExceptions
[task 2021-03-12T19:05:50.980Z] 19:05:50     INFO - Buffered messages logged at 19:04:21
[task 2021-03-12T19:05:50.980Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | broken filters are reported - 
[task 2021-03-12T19:05:50.983Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | [[{"id":"1","action":"action","filter_expression":"broken"},"content_error"]] deepEqual [[{"id":"1","action":"action","filter_expression":"broken"},"content_error"]] - 
[task 2021-03-12T19:05:50.983Z] 19:05:50     INFO - Leaving test bound test_getRecipeSuitability_canHandleExceptions
[task 2021-03-12T19:05:50.983Z] 19:05:50     INFO - Entering test bound test_getRecipeSuitability_checksCapabilities
[task 2021-03-12T19:05:50.984Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | Recipes with no capabilities should pass - 
[task 2021-03-12T19:05:50.984Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | Filter should be evaluated - 
[task 2021-03-12T19:05:50.984Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | Recipes with empty capabilities should pass - 
[task 2021-03-12T19:05:50.984Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | Filter should be evaluated - 
[task 2021-03-12T19:05:50.984Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | Recipes with a matching capability should pass - 
[task 2021-03-12T19:05:50.985Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | Filter should be evaluated - 
[task 2021-03-12T19:05:50.985Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | Recipes with non-matching capabilities should not pass - 
[task 2021-03-12T19:05:50.985Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | Filter should not be evaluated - 
[task 2021-03-12T19:05:50.985Z] 19:05:50     INFO - Leaving test bound test_getRecipeSuitability_checksCapabilities
[task 2021-03-12T19:05:50.990Z] 19:05:50     INFO - Entering test bound testClientClassificationCache
[task 2021-03-12T19:05:50.990Z] 19:05:50     INFO - Console message: [JavaScript Error: "1615575860997	app.normandy.recipe-runner	ERROR	Error checking filter for "undefined". Filter: [broken]. Error: "this filter was broken somehow"" {file: "resource://gre/modules/Log.jsm" line: 723}]
[task 2021-03-12T19:05:50.990Z] 19:05:50     INFO - append@resource://gre/modules/Log.jsm:723:12
[task 2021-03-12T19:05:50.990Z] 19:05:50     INFO - log@resource://gre/modules/Log.jsm:379:16
[task 2021-03-12T19:05:50.991Z] 19:05:50     INFO - error@resource://gre/modules/Log.jsm:387:10
[task 2021-03-12T19:05:50.991Z] 19:05:50     INFO - getAllSuitabilities@resource://normandy/lib/RecipeRunner.jsm:558:11
[task 2021-03-12T19:05:50.991Z] 19:05:50     INFO - 
[task 2021-03-12T19:05:50.991Z] 19:05:50     INFO - Console message: [JavaScript Warning: "normandy.recipe_freshness - The key must not be empty."]
[task 2021-03-12T19:05:50.991Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | getClientClassification hasn't been called - 
[task 2021-03-12T19:05:50.991Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | getClientClassification was called eagerly - 
[task 2021-03-12T19:05:50.991Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | getClientClassification hasn't been called - 
[task 2021-03-12T19:05:50.991Z] 19:05:50     INFO - Buffered messages logged at 19:04:22
[task 2021-03-12T19:05:50.992Z] 19:05:50     INFO - TEST-PASS | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | getClientClassification was not called eagerly - 
[task 2021-03-12T19:05:50.992Z] 19:05:50     INFO - Leaving test bound testClientClassificationCache
[task 2021-03-12T19:05:50.992Z] 19:05:50     INFO - Entering test bound testRunEvents
[task 2021-03-12T19:05:50.992Z] 19:05:50     INFO - Console message: [JavaScript Error: "Unknown Collection "main/normandy-recipes-capabilities"" {file: "resource://services-settings/RemoteSettingsClient.jsm" line: 160}]
[task 2021-03-12T19:05:50.992Z] 19:05:50     INFO - UnknownCollectionError@resource://services-settings/RemoteSettingsClient.jsm:160:5
[task 2021-03-12T19:05:50.992Z] 19:05:50     INFO - sync@resource://services-settings/RemoteSettingsClient.jsm:470:13
[task 2021-03-12T19:05:50.992Z] 19:05:50     INFO - 
[task 2021-03-12T19:05:50.992Z] 19:05:50     INFO - Buffered messages finished
[task 2021-03-12T19:05:50.993Z] 19:05:50     INFO - TEST-UNEXPECTED-FAIL | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | Test timed out - 
[task 2021-03-12T19:05:50.993Z] 19:05:50     INFO - Console message: 1615575950895	app.normandy.recipe-runner	WARN	Disabling Shield because app.normandy.api_url is not set.
[task 2021-03-12T19:05:50.993Z] 19:05:50     INFO - GECKO(1461) | MEMORY STAT | vsize 7697MB | residentFast 295MB | heapAllocated 110MB
[task 2021-03-12T19:05:50.993Z] 19:05:50     INFO - TEST-OK | toolkit/components/normandy/test/browser/browser_RecipeRunner.js | took 90231ms
[task 2021-03-12T19:05:50.993Z] 19:05:50     INFO - GECKO(1461) | [Child 1463: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 108818400 == 1 [pid = 1463] [id = 2]
[task 2021-03-12T19:05:50.993Z] 19:05:50     INFO - GECKO(1461) | [Child 1463: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 1 (107f21e40) [pid = 1463] [serial = 7] [outer = 0]
[task 2021-03-12T19:05:50.993Z] 19:05:50     INFO - GECKO(1461) | [Child 1463: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 2 (10eee9800) [pid = 1463] [serial = 8] [outer = 107f21e40]
[task 2021-03-12T19:05:51.025Z] 19:05:51     INFO - checking window state```