Closed
Bug 1415911
Opened 7 years ago
Closed 5 years ago
Intermittent browser/components/migration/tests/unit/test_MigrationUtils_timedRetry.js | testgetRowsFromDBWithoutLocksRetries - [testgetRowsFromDBWithoutLocksRetries : 253] A promise chain failed to handle a rejection: Error(s) encountered during statemen
Categories
(Firefox :: Migration, defect, P5)
Firefox
Migration
Tracking
()
RESOLVED
INCOMPLETE
People
(Reporter: intermittent-bug-filer, Assigned: dthayer)
References
Details
(Keywords: intermittent-failure)
Attachments
(1 file)
Comment 1•7 years ago
|
||
This test got added in bug 1413989. Doug, please investigate the issue. Thank you in advance.
Flags: needinfo?(dothayer)
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (mozreview-request) |
Assignee | ||
Updated•7 years ago
|
Assignee: nobody → dothayer
Status: NEW → ASSIGNED
Flags: needinfo?(dothayer)
Comment 7•7 years ago
|
||
mozreview-review |
Comment on attachment 8934322 [details]
Bug 1415911 - Fix intermittent test_MigrationUtils_timedRetry failure
https://reviewboard.mozilla.org/r/205248/#review211068
I'm pretty confused by this. Because:
https://treeherder.mozilla.org/logviewer.html#?repo=mozilla-beta&job_id=147790347&lineNumber=2625
```
[task 2017-11-27T11:04:16.017Z] 11:04:16 INFO - browser/components/migration/tests/unit/test_MigrationUtils_timedRetry.js | Starting testgetRowsFromDBWithoutLocksRetries
[task 2017-11-27T11:04:16.018Z] 11:04:16 INFO - (xpcshell/head.js) | test testgetRowsFromDBWithoutLocksRetries pending (2)
[task 2017-11-27T11:04:16.018Z] 11:04:16 INFO - (xpcshell/head.js) | test run_next_test 1 finished (2)
[task 2017-11-27T11:04:16.019Z] 11:04:16 INFO - "CONSOLE_MESSAGE: (error) [JavaScript Error: "Error(s) encountered during statement execution: no such table: moz_temp_table" {file: "resource://gre/modules/Sqlite.jsm" line: 810}]
[task 2017-11-27T11:04:16.020Z] 11:04:16 INFO - handleCompletion@resource://gre/modules/Sqlite.jsm:810:25
[task 2017-11-27T11:04:16.021Z] 11:04:16 INFO - _do_main@/builds/worker/workspace/build/tests/xpcshell/head.js:221:3
[task 2017-11-27T11:04:16.021Z] 11:04:16 INFO - _execute_test@/builds/worker/workspace/build/tests/xpcshell/head.js:543:5
[task 2017-11-27T11:04:16.022Z] 11:04:16 INFO - @-e:1:1
[task 2017-11-27T11:04:16.023Z] 11:04:16 INFO - "
[task 2017-11-27T11:04:16.023Z] 11:04:16 INFO - (xpcshell/head.js) | test run_next_test 2 pending (2)
[task 2017-11-27T11:04:16.024Z] 11:04:16 INFO - (xpcshell/head.js) | test testgetRowsFromDBWithoutLocksRetries finished (2)
[task 2017-11-27T11:04:16.025Z] 11:04:16 INFO - PID 9245 | JavaScript error: resource://gre/modules/Sqlite.jsm, line 810: Error: Error(s) encountered during statement execution: disk I/O error
[task 2017-11-27T11:04:16.025Z] 11:04:16 INFO - (xpcshell/head.js) | test run_next_test 2 finished (1)
[task 2017-11-27T11:04:16.026Z] 11:04:16 INFO - exiting test
[task 2017-11-27T11:04:16.027Z] 11:04:16 INFO - "CONSOLE_MESSAGE: (error) [JavaScript Error: "Error: Error(s) encountered during statement execution: disk I/O error" {file: "resource://gre/modules/Sqlite.jsm" line: 810}]"
[task 2017-11-27T11:04:16.028Z] 11:04:16 WARNING - TEST-UNEXPECTED-FAIL | browser/components/migration/tests/unit/test_MigrationUtils_timedRetry.js | testgetRowsFromDBWithoutLocksRetries - [testgetRowsFromDBWithoutLocksRetries : 253] A promise chain failed to handle a rejection: Error(s) encountered during statement execution: disk I/O error - stack: null
[task 2017-11-27T11:04:16.029Z] 11:04:16 INFO - Rejection date: Mon Nov 27 2017 11:04:15 GMT+0000 (UTC) - false == true
[task 2017-11-27T11:04:16.029Z] 11:04:16 INFO - resource://testing-common/PromiseTestUtils.jsm:assertNoUncaughtRejections:253
[task 2017-11-27T11:04:16.030Z] 11:04:16 INFO - /builds/worker/workspace/build/tests/xpcshell/head.js:_execute_test:544
[task 2017-11-27T11:04:16.031Z] 11:04:16 INFO - -e:null:1
[task 2017-11-27T11:04:16.031Z] 11:04:16 INFO - exiting test
[task 2017-11-27T11:04:16.032Z] 11:04:16 INFO - <<<<<<<
```
The stack for both the first and second error is actually from running the test, given that in https://dxr.mozilla.org/mozilla-central/rev/5be384bcf00191f97d32b4ac3ecd1b85ec7b18e1/testing/xpcshell/head.js#534-552 we're running the main tests. The cleanup functions don't get run until later (lines 580-ish and later).
So I'm confused about how this would fix the failure. As in, I understand the hypothesis this patch is built on is that the OS.File.remove() call runs before we stop trying to access/close the db -- but I don't see how that would produce the stacks above. Then again, I don't see much better hypotheses...
::: browser/components/migration/tests/unit/test_MigrationUtils_timedRetry.js:14
(Diff revision 1)
> add_task(async function setup() {
> tmpFile.append("TestDB");
> dbConn = await Sqlite.openConnection({ path: tmpFile.path });
>
> - do_register_cleanup(() => {
> - dbConn.close();
> + do_register_cleanup(async () => {
> + await dbConn.close();
Note that the error complains about a promise rejecting and not being caught, and this `await` statement would make the cleanup function reject if `dbConn.close()` rejected, which presumably would trigger the same issue? If there was an error here that shouldn't cause the test to fail, we'd need to use `.catch()` or a try...catch block to catch it.
::: browser/components/migration/tests/unit/test_MigrationUtils_timedRetry.js:15
(Diff revision 1)
> tmpFile.append("TestDB");
> dbConn = await Sqlite.openConnection({ path: tmpFile.path });
>
> - do_register_cleanup(() => {
> - dbConn.close();
> + do_register_cleanup(async () => {
> + await dbConn.close();
> OS.File.remove(tmpFile.path);
Should we await the File.remove() as well?
Attachment #8934322 -
Flags: review?(gijskruitbosch+bugs) → review+
Comment hidden (Intermittent Failures Robot) |
Comment hidden (mozreview-request) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 105•5 years ago
|
||
https://wiki.mozilla.org/Bug_Triage#Intermittent_Test_Failure_Cleanup
For more information, please visit auto_nag documentation.
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → INCOMPLETE
You need to log in
before you can comment on or make changes to this bug.
Description
•