Closed Bug 915214 Opened 6 years ago Closed 6 years ago

Intermittent test_DownloadList.js,test_DownloadStore.js, test_DownloadImport.js,test_DownloadIntegration.js | test failed (with xpcshell return code: -1073741819) | application crashed [@ ntdll.dll + 0x2a700]

Categories

(Firefox :: Downloads Panel, defect)

x86
Windows 8
defect
Not set

Tracking

()

RESOLVED FIXED
Firefox 27
Tracking Status
firefox25 --- unaffected
firefox26 + fixed
firefox27 --- fixed
firefox-esr24 --- unaffected

People

(Reporter: RyanVM, Assigned: Paolo)

References

(Blocks 1 open bug)

Details

(Keywords: crash, intermittent-failure)

Attachments

(1 file)

mutex complaints? Possible parxpc issue?

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

WINNT 6.2 b2g-inbound pgo test xpcshell on 2013-09-10 20:22:20 PDT for push f9f89c2540ce
slave: t-w864-ix-051

20:51:54     INFO -  TEST-INFO | C:\slave\test\build\tests\xpcshell\tests\toolkit\components\jsdownloads\test\unit\test_DownloadList.js | running test ...
20:51:58  WARNING -  TEST-UNEXPECTED-FAIL | C:\slave\test\build\tests\xpcshell\tests\toolkit\components\jsdownloads\test\unit\test_DownloadList.js | test failed (with xpcshell return code: -1073741819), see following log:
20:51:58     INFO -  >>>>>>>
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test MAIN run_test pending (1)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 0 pending (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test MAIN run_test finished (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | running event loop
20:51:58     INFO -  TEST-INFO | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | Starting test_common_initialize
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_common_initialize pending (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 1 pending (3)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_common_initialize finished (3)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 0 finished (2)
20:51:58     INFO -  TEST-INFO | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | Starting test_construction
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_construction pending (2)
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_construction : 81] [object Object] != [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_construction : 82] [object Object] != [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_construction : 83] [object Object] != [object Object]
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 2 pending (3)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_construction finished (3)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 1 finished (2)
20:51:58     INFO -  TEST-INFO | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | Starting test_add_getAll
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_add_getAll pending (2)
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_add_getAll : 97] 1 == 1
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_add_getAll : 98] [object Object] == [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_add_getAll : 104] 2 == 2
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_add_getAll : 105] [object Object] == [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_add_getAll : 106] [object Object] == [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_add_getAll : 109] 1 == 1
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 3 pending (3)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_add_getAll finished (3)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 2 finished (2)
20:51:58     INFO -  TEST-INFO | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | Starting test_remove
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_remove pending (2)
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_remove : 129] 1 == 1
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 4 pending (3)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_remove finished (3)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 3 finished (2)
20:51:58     INFO -  TEST-INFO | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | Starting test_notifications_add_remove
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_notifications_add_remove pending (2)
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_add_remove/viewOne.onDownloadAdded : 151] [object Object] == [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_add_remove/viewOne.onDownloadAdded : 153] [object Object] == [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_add_remove : 159] 2 == 2
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_add_remove : 163] 3 == 3
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_add_remove/viewTwo.onDownloadRemoved : 169] [object Object] == [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_add_remove : 175] 1 == 1
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_add_remove : 180] 1 == 1
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_add_remove : 185] 3 == 3
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 5 pending (3)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_notifications_add_remove finished (3)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 4 finished (2)
20:51:58     INFO -  TEST-INFO | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | Starting test_notifications_change
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_notifications_change pending (2)
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_change/<.onDownloadChanged : 204] [object Object] == [object Object]
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 5 finished (2)
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_change/<.onDownloadChanged : 204] [object Object] == [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_change/<.onDownloadChanged : 204] [object Object] == [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_change/<.onDownloadChanged : 204] [object Object] == [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_change/<.onDownloadChanged : 204] [object Object] == [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_change : 209] true == true
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_change : 215] false == false
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 6 pending (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_notifications_change finished (2)
20:51:58     INFO -  TEST-INFO | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | Starting test_notifications_this
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_notifications_this pending (2)
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_this/view.onDownloadAdded : 231] [object Object] == [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_this/view.onDownloadChanged : 237] [object Object] == [object Object]
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 6 finished (2)
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_this/view.onDownloadRemoved : 242] [object Object] == [object Object]
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_this : 254] true == true
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_this : 255] true == true
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_notifications_this : 256] true == true
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 7 pending (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_notifications_this finished (2)
20:51:58     INFO -  TEST-INFO | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | Starting test_history_expiration
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_history_expiration pending (2)
20:51:58     INFO -  TEST-INFO | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | "Interruptible responses will be blocked midway."
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 7 finished (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test pending (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test finished (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 8 pending (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_history_expiration finished (2)
20:51:58     INFO -  TEST-INFO | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | Starting test_history_clear
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_history_clear pending (2)
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 8 finished (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test pending (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test finished (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 9 pending (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_history_clear finished (2)
20:51:58     INFO -  TEST-INFO | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | Starting test_removeFinished
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_removeFinished pending (2)
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/head.js | [getTempFile : 133] false == false
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 9 finished (2)
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_removeFinished/downloadView.onDownloadRemoved : 368] true == true
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_removeFinished/downloadView.onDownloadRemoved : 369] true == true
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_removeFinished/downloadView.onDownloadRemoved : 368] true == true
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_removeFinished/downloadView.onDownloadRemoved : 369] true == true
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_removeFinished/downloadView.onDownloadRemoved : 368] true == true
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_removeFinished/downloadView.onDownloadRemoved : 369] true == true
20:51:58     INFO -  TEST-PASS | C:/slave/test/build/tests/xpcshell/tests/toolkit/components/jsdownloads/test/unit/test_DownloadList.js | [test_removeFinished : 389] 1 == 1
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 10 pending (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test test_removeFinished finished (2)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | test run_next_test 10 finished (1)
20:51:58     INFO -  TEST-INFO | (xpcshell/head.js) | exiting test
20:51:58     INFO -  !!! error running onStopped callback: TypeError: callback is not a function
20:51:58     INFO -  <<<<<<<
20:51:58     INFO -  mozcrash INFO | Downloading symbols from: http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/b2g-inbound-win32-pgo/1378861228/firefox-26.0a1.en-US.win32.crashreporter-symbols.zip
20:52:09  WARNING -  PROCESS-CRASH | C:\slave\test\build\tests\xpcshell\tests\toolkit\components\jsdownloads\test\unit\test_DownloadList.js | application crashed [@ ntdll.dll + 0x2a700]
20:52:09     INFO -  Crash dump filename: c:\users\cltbld~1.t-w\appdata\local\temp\tmpm4gm0a\9421c335-08a1-4908-a30a-ecdf94f3f6d3.dmp
20:52:09     INFO -  Operating system: Windows NT
20:52:09     INFO -                    6.2.9200
20:52:09     INFO -  CPU: x86
20:52:09     INFO -       GenuineIntel family 6 model 30 stepping 5
20:52:09     INFO -       8 CPUs
20:52:09     INFO -  Crash reason:  EXCEPTION_ACCESS_VIOLATION_WRITE
20:52:09     INFO -  Crash address: 0x14
20:52:09     INFO -  Thread 0 (crashed)
20:52:09     INFO -   0  ntdll.dll + 0x2a700
20:52:09     INFO -      eip = 0x7701a700   esp = 0x001aebe0   ebp = 0x001aec44   ebx = 0x00000000
20:52:09     INFO -      esi = 0x00000000   edi = 0x04c44500   eax = 0x00000000   ecx = 0xfffffffe
20:52:09     INFO -      edx = 0x00000000   efl = 0x00010213
20:52:09     INFO -      Found by: given as instruction pointer in context
20:52:09     INFO -   1  ntdll.dll + 0x2a632
20:52:09     INFO -      eip = 0x7701a633   esp = 0x001aec4c   ebp = 0x001aec74
20:52:09     INFO -      Found by: previous frame's frame pointer
20:52:09     INFO -   2  ntdll.dll + 0x2a582
20:52:09     INFO -      eip = 0x7701a583   esp = 0x001aec7c   ebp = 0x001aec80
20:52:09     INFO -      Found by: previous frame's frame pointer
20:52:09     INFO -   3  nss3.dll!winMutexEnter [sqlite3.c:f9f89c2540ce : 18676 + 0x9]
20:52:09     INFO -      eip = 0x71b7443d   esp = 0x001aec88   ebp = 0x001aec8c
20:52:09     INFO -      Found by: previous frame's frame pointer
20:52:09     INFO -   4  nss3.dll!sqlite3_mutex_enter [sqlite3.c:f9f89c2540ce : 17817 + 0x6]
20:52:09     INFO -      eip = 0x71b74381   esp = 0x001aec94   ebp = 0x001aec98
20:52:09     INFO -      Found by: call frame info
20:52:09     INFO -   5  xul.dll!mozilla::storage::Connection::BeginTransactionAs(int) [mozStorageConnection.cpp:f9f89c2540ce : 1421 + 0x7]
20:52:09     INFO -      eip = 0x73437c48   esp = 0x001aeca0   ebp = 0x001aecd0
20:52:09     INFO -      Found by: call frame info
20:52:09     INFO -   6  xul.dll!mozStorageTransactionBase<mozIStorageConnection,nsCOMPtr<mozIStorageConnection> >::mozStorageTransactionBase<mozIStorageConnection,nsCOMPtr<mozIStorageConnection> >(mozIStorageConnection *,bool,int) [mozStorageHelper.h:f9f89c2540ce : 49 + 0x8]
20:52:09     INFO -      eip = 0x734356dd   esp = 0x001aecd8   ebp = 0x001aece4
20:52:09     INFO -      Found by: call frame info
20:52:09     INFO -   7  xul.dll!nsAnnotationService::SetAnnotationStringInternal(nsIURI *,__int64,nsACString_internal const &,nsAString_internal const &,int,unsigned short) [nsAnnotationService.cpp:f9f89c2540ce : 158 + 0x13]
20:52:09     INFO -      eip = 0x72e63500   esp = 0x001aecec   ebp = 0x001aed24
20:52:09     INFO -      Found by: call frame info
20:52:09     INFO -   8  xul.dll!nsAnnotationService::SetPageAnnotationString(nsIURI *,nsACString_internal const &,nsAString_internal const &,int,unsigned short) [nsAnnotationService.cpp:f9f89c2540ce : 345 + 0x1a]
20:52:09     INFO -      eip = 0x72e63ae6   esp = 0x001aed2c   ebp = 0x001aed58
20:52:09     INFO -      Found by: call frame info
20:52:09     INFO -   9  xul.dll!mozilla::places::`anonymous namespace'::SetDownloadAnnotations::HandleResult(mozIPlaceInfo *) [History.cpp:f9f89c2540ce : 1486 + 0x7d]
20:52:09     INFO -      eip = 0x72e8ddcd   esp = 0x001aed60   ebp = 0x001aefc0
20:52:09     INFO -      Found by: call frame info
20:52:09     INFO -  10  xul.dll!mozilla::places::`anonymous namespace'::NotifyPlaceInfoCallback::Run() [History.cpp:f9f89c2540ce : 716 + 0x19]
20:52:09     INFO -      eip = 0x72e8c8b1   esp = 0x001aefc8   ebp = 0x001af004
20:52:09     INFO -      Found by: call frame info
I'm not sure it is. It's in the retry step, where we run tests one by one. I asked Ted to take a look.
https://tbpl.mozilla.org/php/getParsedLog.php?id=27729387&tree=Fx-Team

Yikes, something made these tests angry recently...
Summary: Intermittent test_DownloadList.js | test failed (with xpcshell return code: -1073741819) | application crashed [@ ntdll.dll + 0x2a700] → Intermittent test_DownloadList.js,test_DownloadStore.js | test failed (with xpcshell return code: -1073741819) | application crashed [@ ntdll.dll + 0x2a700]
(In reply to Ryan VanderMeulen [:RyanVM UTC-4] from comment #2)
> https://tbpl.mozilla.org/php/getParsedLog.php?id=27729387&tree=Fx-Team
> 
> Yikes, something made these tests angry recently...

It happened a while after we turned on parxpc so I'm not sure that's the culprit.
Summary: Intermittent test_DownloadList.js,test_DownloadStore.js | test failed (with xpcshell return code: -1073741819) | application crashed [@ ntdll.dll + 0x2a700] → Intermittent test_DownloadList.js,test_DownloadStore.js, test_DownloadImport.js | test failed (with xpcshell return code: -1073741819) | application crashed [@ ntdll.dll + 0x2a700]
Blocks: jsdownloads
The top 3 frames here are:
>	ntdll.dll!_RtlpWaitOnCriticalSection@8()	Unknown
 	ntdll.dll!_RtlpEnterCriticalSectionContended@4()	Unknown
 	ntdll.dll!_RtlEnterCriticalSection@4()	Unknown

I think given the crash address and the fact that we're crashing under EnterCriticalSection this is just someone passing in a NULL critical section.

Presumably the code here (frame 5: mozilla::storage::Connection::BeginTransactionAs(int)):
http://hg.mozilla.org/mozilla-central/annotate/f9f89c2540ce/storage/src/mozStorageConnection.cpp#l1421

has a NULL sharedDBMutex. This smells like a bug in places (or some consumer of it).
Duplicate of this bug: 916401
Summary: Intermittent test_DownloadList.js,test_DownloadStore.js, test_DownloadImport.js | test failed (with xpcshell return code: -1073741819) | application crashed [@ ntdll.dll + 0x2a700] → Intermittent test_DownloadList.js,test_DownloadStore.js, test_DownloadImport.js,test_DownloadIntegration.js | test failed (with xpcshell return code: -1073741819) | application crashed [@ ntdll.dll + 0x2a700]
Blocks: 906134
I know there is more work planned to fix all the possible Storage shutdown
aspects, this patch just provides an initial fix just for the crash we
experienced in tests, without covering everything theoretically possible.

What I believe happened here is that closing the database forced the pending
statements to finish. A finished query called its callback function on another
thread, that immediately tried to use the database for another query. However,
the database was already closed, though mDBConn was still set if the other
thread was executed first. The SQLite mutex was allocated as part of the
database, so trying to use it caused the crash.

This passed several xpcshell test runs:

https://tbpl.mozilla.org/?tree=Try&rev=ce27bf80cec1
Assignee: nobody → paolo.mozmail
Status: NEW → ASSIGNED
Attachment #809762 - Flags: review?(mak77)
Blocks: 906817
Another run to verify this worked across all platforms:

https://tbpl.mozilla.org/?tree=Try&rev=8baa9d2126e5
Comment on attachment 809762 [details] [diff] [review]
Fix shutdown crash in tests

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

That looks good to me.
Is there a chance we could get a test?
Attachment #809762 - Flags: review+
Comment on attachment 809762 [details] [diff] [review]
Fix shutdown crash in tests

(In reply to David Rajchenbach Teller [:Yoric] from comment #40)
> That looks good to me.

Thanks for the review!

> Is there a chance we could get a test?

Getting a reliable test for this is difficult, given that it is a race
condition with another thread and happens on shutdown. Fortunately we noticed
this was extensively tested (statistically) by the DownloadImport module that
caused various intermittent failures here.

New tryserver build now running:

https://tbpl.mozilla.org/?tree=Try&rev=b6f06ea2f7ec
Attachment #809762 - Flags: review?(mak77)
I think we should uplift this together with bug 906134.
https://hg.mozilla.org/mozilla-central/rev/a5fe1b3e8f79
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 27
Comment on attachment 809762 [details] [diff] [review]
Fix shutdown crash in tests

[Approval Request Comment]
Bug caused by (feature/regressing bug #): 825588
User impact if declined: This is a dependency of bug 906134
Testing completed (on m-c, etc.): m-c
Risk to taking this patch (and alternatives if risky): Low
String or IDL/UUID changes made by this patch: None
Attachment #809762 - Flags: approval-mozilla-aurora?
Comment on attachment 809762 [details] [diff] [review]
Fix shutdown crash in tests

Reworking SQLite connection closing (even if the changes look relatively straightforward) doesn't sound like something whose risk I would evaluate as "low", so taking it so late in Aurora makes me nervous.

Do you promise this won't break anything?
(In reply to :Gavin Sharp (use gavin@gavinsharp.com for email) from comment #46)
> Comment on attachment 809762 [details] [diff] [review]
> Fix shutdown crash in tests
> 
> Reworking SQLite connection closing (even if the changes look relatively
> straightforward) doesn't sound like something whose risk I would evaluate as
> "low", so taking it so late in Aurora makes me nervous.
> 
> Do you promise this won't break anything?

As far as I can tell, the current situation is already broken, and I expect this change to reduce the chance of crashes. In case we really see something behaving odd (maybe some add-ons doing things that we don't foresee) we may revert this and the DownloadImport bug. In any case, such possible integration issues tend to arise on the Beta rather than Aurora population anyways, so this late landing might actually not change the situation too much.
Attachment #809762 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.