Intermittent test-verify toolkit/components/normandy/test/browser/browser_actions_AddonStudyAction.js | Uncaught exception - ConstraintError: A mutation operation in the transaction failed because a constraint was not satisfied.
Categories
(Firefox :: Normandy Client, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr60 | --- | unaffected |
firefox62 | --- | unaffected |
firefox63 | --- | wontfix |
firefox64 | --- | wontfix |
firefox65 | --- | wontfix |
firefox66 | --- | wontfix |
firefox67 | --- | fixed |
People
(Reporter: intermittent-bug-filer, Assigned: rehandalal+mozilla)
References
Details
(Keywords: intermittent-failure, Whiteboard: [stockwell needswork:owner])
Attachments
(1 obsolete file)
Updated•6 years ago
|
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 3•6 years ago
|
||
Comment 4•6 years ago
|
||
Comment 5•6 years ago
|
||
Updated•6 years ago
|
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 8•6 years ago
|
||
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 11•6 years ago
|
||
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 15•6 years ago
|
||
Recent occurrences started appeared when Bug 1443560 landed, Ethan can you take a look?
Comment hidden (Intermittent Failures Robot) |
Comment 17•6 years ago
|
||
I spent some time looking at this today. I'll admit mostly ignorance. It seems like this is completely unrelated to the change I made in the linked bug. Here's what I've learned:
- The
successfulEnroll
test is failing. It seems to be failing on the second time through when testing with --verify. - The failure remains even when you comment out every other test in the file.
- It isn't the test itself that's failing but rather the restoration part of the
AddonStudies.withStudies()
decorator. - It seems that after the first time through the test, although
AddonStudies.withStudies()
callsAddonStudies.clear()
, the addon study remains visible when you callAddonStudies.getAll()
. I'm not certain that this is related to the failure but it seems like more than coincidence. - Although we have an
ensureAddonCleanup
decorator, it only ensures that the addons that are installed are removed, not that the addon studies cleared from the AddonStudies manager. - I thought maybe
AddonStudies.clear()
was returning before the clear actually happened. I tried looping for a while to wait untilAddonStudies.getAll()
returns an empty list, and even though entire seconds go by, it never does. - I think what's happening is that the line in the
successfulEnroll
test that doesawait addon.uninstall()
is calling theonUninstalled
callback asynchronously. This callback updates the state of the addon study byput()
ing a record in the database, and I think this is happening after theclear()
inAddonStudies.withStudies()
. - Indeed I don't see any asynchrony being respected in either https://searchfox.org/mozilla-central/source/toolkit/mozapps/extensions/AddonManager.jsm#1469-1487 or https://searchfox.org/mozilla-central/source/toolkit/mozapps/extensions/AddonManager.jsm#2863-2865, which is I think what is actually being called.
I'm not really sure what the way forward here is. I think this is the only test that calls this uninstall method -- maybe we could set up some kind of promise that gets resolved when the onUninstalled
gets called? Maybe :mythmon has some idea?
Comment 18•6 years ago
|
||
Previously, the AddonStudies.onUninstalled would update its internal
information about the addon by doing an IndexedDB.put(). However, in
the meantime, we would have already cleared that IndexedDB, and doing
the put() would save data that we would then carry around from test to
test, and if this test re-ran it would fail.
Comment 19•6 years ago
|
||
Assignee | ||
Comment 20•6 years ago
|
||
Taking this from Ethan since it will be fixed by my patch in bug 1474413
Comment 21•6 years ago
|
||
Clearing my needinfo, since I think Ethan and Rehan have this covered.
Comment 22•6 years ago
|
||
This should have been fixed in bug 1474413.
Updated•6 years ago
|
Updated•6 years ago
|
Description
•