Closed Bug 1486228 Opened Last year Closed Last year

Intermittent PID 5324 | Assertion failure: mEntryStore.Get(), at z:/build/build/src/xpcom/ds/PLDHashTable.cpp:372

Categories

(Core :: Networking: DNS, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla63
Tracking Status
firefox-esr52 --- unaffected
firefox-esr60 --- unaffected
firefox61 --- wontfix
firefox62 --- wontfix
firefox63 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: valentin.gosu)

Details

(Keywords: assertion, intermittent-failure, Whiteboard: [necko-triaged])

Attachments

(1 file)

Filed by: ncsoregi [at] mozilla.com

https://treeherder.mozilla.org/logviewer.html#?job_id=195902828&repo=mozilla-central

https://queue.taskcluster.net/v1/task/ci2_Aa88TO2W3GhxDytPAg/runs/0/artifacts/public/logs/live_backing.log

05:47:35     INFO -  TEST-PASS | security/manager/ssl/tests/unit/test_pinning.js |  - Should have received ASCII '0' from server - "0" == "0"
05:47:35     INFO -  "handling unknownissuer.test-mode.pinning.example.com"
05:47:35     INFO -  TEST-PASS | security/manager/ssl/tests/unit/test_pinning.js |  - Actual and expected connection result should match - 0 == 0
05:47:35     INFO -  TEST-PASS | security/manager/ssl/tests/unit/test_pinning.js |  - Cert override flag should be set on the security state - 67108864 == true
05:47:35     INFO -  (xpcshell/head.js) | test run_next_test 41 pending (2)
05:47:35     INFO -  (xpcshell/head.js) | test finished (2)
05:47:35     INFO -  security/manager/ssl/tests/unit/test_pinning.js | Starting
05:47:35     INFO -  (xpcshell/head.js) | test pending (2)
05:47:35     INFO -  (xpcshell/head.js) | test run_next_test 42 pending (3)
05:47:35     INFO -  (xpcshell/head.js) | test finished (3)
05:47:35     INFO -  (xpcshell/head.js) | test run_next_test 41 finished (2)
05:47:35     INFO -  security/manager/ssl/tests/unit/test_pinning.js | Starting
05:47:35     INFO -  (xpcshell/head.js) | test pending (2)
05:47:35     INFO -  (xpcshell/head.js) | test run_next_test 43 pending (3)
05:47:35     INFO -  (xpcshell/head.js) | test finished (3)
05:47:35     INFO -  (xpcshell/head.js) | test run_next_test 42 finished (2)
05:47:35     INFO -  security/manager/ssl/tests/unit/test_pinning.js | Starting
05:47:35     INFO -  (xpcshell/head.js) | test pending (2)
05:47:35     INFO -  (xpcshell/head.js) | test run_next_test 43 finished (2)
05:47:35     INFO -  PID 5324 | Assertion failure: mEntryStore.Get(), at z:/build/build/src/xpcom/ds/PLDHashTable.cpp:372
05:47:47     INFO -  PID 5324 | #01: nsDNSService::AsyncResolveNative(nsTSubstring<char> const &,unsigned int,nsIDNSListener *,nsIEventTarget *,mozilla::OriginAttributes const &,nsICancelable * *) [netwerk/dns/nsDNSService2.cpp:847]
05:47:47     INFO -  PID 5324 | #02: mozilla::net::nsSocketTransport::ResolveHost() [netwerk/base/nsSocketTransport2.cpp:1139]
05:47:47     INFO -  PID 5324 | #03: mozilla::net::nsSocketTransport::OnSocketEvent(unsigned int,nsresult,nsISupports *) [netwerk/base/nsSocketTransport2.cpp:2121]
05:47:47     INFO -  PID 5324 | #04: mozilla::net::nsSocketEvent::Run() [netwerk/base/nsSocketTransport2.cpp:91]
05:47:47     INFO -  PID 5324 | #05: nsThread::ProcessNextEvent(bool,bool *) [xpcom/threads/nsThread.cpp:1170]
05:47:47     INFO -  PID 5324 | #06: NS_ProcessNextEvent(nsIThread *,bool) [xpcom/threads/nsThreadUtils.cpp:519]
05:47:47     INFO -  PID 5324 | #07: mozilla::net::nsSocketTransportService::Run() [netwerk/base/nsSocketTransportService2.cpp:1066]
05:47:47     INFO -  PID 5324 | #08: nsThread::ProcessNextEvent(bool,bool *) [xpcom/threads/nsThread.cpp:1170]
05:47:47     INFO -  PID 5324 | #09: NS_ProcessNextEvent(nsIThread *,bool) [xpcom/threads/nsThreadUtils.cpp:519]
05:47:47     INFO -  PID 5324 | #10: mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate *) [ipc/glue/MessagePump.cpp:364]
05:47:47     INFO -  PID 5324 | #11: MessageLoop::RunInternal() [ipc/chromium/src/base/message_loop.cc:325]
05:47:47     INFO -  PID 5324 | #12: MessageLoop::RunHandler() [ipc/chromium/src/base/message_loop.cc:319]
05:47:47     INFO -  PID 5324 | #13: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:299]
05:47:47     INFO -  PID 5324 | #14: nsThread::ThreadFunc(void *) [xpcom/threads/nsThread.cpp:466]
05:47:47     INFO -  PID 5324 | #15: PR_NativeRunThread [nsprpub/pr/src/threads/combined/pruthr.c:406]
05:47:47     INFO -  PID 5324 | #16: static unsigned int pr_root(void *) [nsprpub/pr/src/md/windows/w95thred.c:138]
05:47:47     INFO -  PID 5324 | #17: ucrtbase.dll + 0x20369
05:47:47     INFO -  PID 5324 | #18: KERNEL32.DLL + 0x12774
05:47:47     INFO -  PID 5324 | #19: static void patched_BaseThreadInitThunk(int, void *, void *) [mozglue/build/WindowsDllBlocklist.cpp:663]
05:47:47     INFO -  PID 5324 | #20: ntdll.dll + 0x70d61
05:47:47     INFO -  <<<<<<<
05:47:47     INFO -  mozcrash kill_pid(): unable to terminate pid 5324: 5
05:47:47     INFO -  xpcshell return code: None
06:04:28     INFO - Automation Error: mozprocess timed out after 1000 seconds running ['Z:\\task_1535173619\\build\\venv\\Scripts\\python', '-u', 'Z:\\task_1535173619\\build\\tests\\xpcshell\\runxpcshelltests.py', '--total-chunks', '8', '--this-chunk', '5', '--symbols-path=Z:\\task_1535173619\\build\\symbols', '--test-plugin-path=Z:\\task_1535173619\\build\\application\\firefox\\plugins', '--log-raw=Z:\\task_1535173619\\build\\blobber_upload_dir\\xpcshell_raw.log', '--log-errorsummary=Z:\\task_1535173619\\build\\blobber_upload_dir\\xpcshell_errorsummary.log', '--utility-path=tests/bin', '--xpcshell=Z:\\task_1535173619\\build\\application\\firefox/xpcshell.exe', '--manifest=tests/xpcshell/tests/xpcshell.ini']
06:04:28    ERROR - timed out after 1000 seconds of no output
06:04:28    ERROR - Return code: 572
06:04:28    ERROR - No tests run or test summary not found
06:04:28     INFO - TinderboxPrint: xpcshell-xpcshell<br/><em class="testfail">T-FAIL</em>
This maybe a necko bug.
Component: Security: PSM → Networking: DNS
Valentin, can you take a look if this is important or not? Please change the bug priority accordingly.
Flags: needinfo?(valentin.gosu)
Priority: P5 → P2
Whiteboard: [necko-triaged]
#0 PLDHashTable::SearchTable
  MOZ_ASSERT(mEntryStore.Get());
#1 PLDHashTable::Search
  mEntryStore.Get() ? SearchTable<ForSearchOrRemove>(aKey, ComputeKeyHash(aKey)) : nullptr;
#2 nsTHashtable::GetEntry
  mTable.Search(EntryType::KeyToPointer(aKey))
#3 nsDNSService::AsyncResolveNative
  mLocalDomains.GetEntry(aHostname)

So mEntryStore.Get() is not null at #1, but it is null at #0

The only way I see this happening is if mLocalDomains is changed by nsDNSService::ReadPrefs on the main thread, while we call .GetEntry on the socket thread. We should grab the lock before changing mLocalDomains with the prefs.
Assignee: nobody → valentin.gosu
Flags: needinfo?(valentin.gosu)
Comment on attachment 9004572 [details]
Bug 1486228 - Grab mutex when accessing nsDNSService::mLocalDomains r=mayhemer!

Honza Bambas (:mayhemer) has approved the revision.
Attachment #9004572 - Flags: review+
Pushed by valentin.gosu@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/19caa87ed595
Grab mutex when accessing nsDNSService::mLocalDomains r=mayhemer!
https://hg.mozilla.org/mozilla-central/rev/19caa87ed595
Status: NEW → RESOLVED
Closed: Last year
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
You need to log in before you can comment on or make changes to this bug.