Closed Bug 1494703 Opened 6 years ago Closed 6 years ago

Intermittent dom/push/test/xpcshell/test_notification_http2.js | xpcshell return code: -2147483645 when Gecko 64 merges to Beta on 2018-10-15

Categories

(Core :: Security: PSM, defect, P2)

defect

Tracking

()

RESOLVED DUPLICATE of bug 1492188

People

(Reporter: RaulG, Unassigned)

References

Details

Central as beta simulation: https://treeherder.mozilla.org/#/jobs?repo=try&resultStatus=testfailed,busted,exception&revision=79343dbcfb456f960ddf43e6037cfba5e4cc8f21&selectedJob=201932904

Log link: https://treeherder.mozilla.org/logviewer.html#?job_id=201932904&repo=try&lineNumber=12320

Log snippet: 12:35:32     INFO -  TEST-START | dom/push/test/xpcshell/test_notification_http2.js
12:35:32  WARNING -  TEST-UNEXPECTED-FAIL | dom/push/test/xpcshell/test_notification_http2.js | xpcshell return code: -2147483645
12:35:32     INFO -  TEST-INFO took 350ms
12:35:32     INFO -  >>>>>>>
12:35:32     INFO -  PID 11964 | Couldn't convert chrome URL: chrome://branding/locale/brand.properties
12:35:32     INFO -  PID 11964 | [11964, Main Thread] WARNING: Failed to get directory to cache.: file z:/build/build/src/security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp, line 83
12:35:32     INFO -  PID 11964 | [11964, Main Thread] WARNING: Failed to get directory to cache.: file z:/build/build/src/security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp, line 83
12:35:32     INFO -  PID 11964 | [11964, Main Thread] WARNING: Failed to get directory to cache.: file z:/build/build/src/security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp, line 83
12:35:32     INFO -  PID 11964 | [11964, Main Thread] WARNING: Failed to get directory to cache.: file z:/build/build/src/security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp, line 83
12:35:32     INFO -  PID 11964 | [11964, Main Thread] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file z:/build/build/src/toolkit/crashreporter/nsExceptionHandler.cpp, line 2733
12:35:32     INFO -  PID 11964 | JavaScript strict warning: resource://gre/modules/PushService.jsm, line 18: ReferenceError: reference to undefined property "getCryptoParams"
12:35:32     INFO -  (xpcshell/head.js) | test MAIN run_test pending (1)
12:35:32     INFO -  "Using HTTP/2 server on port 55612"
12:35:32     INFO -  PID 11964 | [11964, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004002: file z:/build/build/src/toolkit/components/resistfingerprinting/nsRFPService.cpp, line 683
12:35:32     INFO -  PID 11964 | [11964, LoadRoots] WARNING: This method is lossy. Use GetCanonicalPath !: file z:/build/build/src/xpcom/io/nsLocalFileWin.cpp, line 3460
12:35:32     INFO -  PID 11964 | [11964, LoadRoots] WARNING: This method is lossy. Use GetCanonicalPath !: file z:/build/build/src/xpcom/io/nsLocalFileWin.cpp, line 3460
12:35:32     INFO -  PID 11964 | Assertion failure: IsRead(oldState), at z:/build/build/src/xpcom/ds/PLDHashTable.h:136
12:35:32     INFO -  PID 11964 | Assertion failure: IsIdle(oldState), at z:/build/build/src/xpcom/ds/PLDHashTable.h:143
12:35:49     INFO -  PID 11964 | #01: PLDHashTable::Add(void const *) [xpcom/ds/PLDHashTable.cpp:619]
12:35:49     INFO -  PID 11964 | #01: nsInterfaceHashtable<nsCStringHashKey,nsIFile>::Get(nsTSubstring<char> const &) [xpcom/ds/nsInterfaceHashtable.h:138]
12:35:49     INFO -  PID 11964 | #02: nsDirectoryService::Set(char const *,nsISupports *) [xpcom/io/nsDirectoryService.cpp:258]
12:35:49     INFO -  PID 11964 | #03: nsDirectoryService::Get(char const *,nsID const &,void * *) [xpcom/io/nsDirectoryService.cpp:229]
12:35:49     INFO -  PID 11964 | #04: NS_GetSpecialDirectory(char const *,nsIFile * *) [xpcom/io/nsDirectoryServiceUtils.h:27]
12:35:49     INFO -  PID 11964 | #05: mozilla::scache::StartupCache::Init() [startupcache/StartupCache.cpp:159]
12:35:49     INFO -  PID 11964 | #06: mozilla::scache::StartupCache::InitSingleton() [startupcache/StartupCache.cpp:105]
12:35:49     INFO -  PID 11964 | #07: mozilla::scache::StartupCache::GetSingleton() [startupcache/StartupCache.cpp:90]
12:35:49     INFO -  PID 11964 | #02: nsDirectoryService::Get(char const *,nsID const &,void * *) [xpcom/io/nsDirectoryService.cpp:209]
12:35:49     INFO -  PID 11964 | #03: static nsresult GetDirectoryPath(const char *, class nsTString<char> & const) [security/manager/ssl/nsNSSComponent.cpp:1042]
12:35:49     INFO -  PID 11964 | #08: mozJSComponentLoader::ObjectForLocation(ComponentLoaderInfo &,nsIFile *,JS::MutableHandle<JSObject *>,JS::MutableHandle<JSScript *>,char * *,bool,JS::MutableHandle<JS::Value>) [js/xpconnect/loader/mozJSComponentLoader.cpp:823]
12:35:49     INFO -  PID 11964 | #09: mozJSComponentLoader::LoadModule(mozilla::FileLocation &) [js/xpconnect/loader/mozJSComponentLoader.cpp:446]
12:35:49     INFO -  PID 11964 | #10: nsComponentManagerImpl::KnownModule::Load() [xpcom/components/nsComponentManager.cpp:831]
12:35:49     INFO -  PID 11964 | #11: nsFactoryEntry::GetFactory() [xpcom/components/nsComponentManager.cpp:1859]
12:35:49     INFO -  PID 11964 | #12: nsComponentManagerImpl::CreateInstanceByContractID(char const *,nsISupports *,nsID const &,void * *) [xpcom/components/nsComponentManager.cpp:1158]
12:35:49     INFO -  PID 11964 | #13: nsComponentManagerImpl::GetServiceByContractID(char const *,nsID const &,void * *) [xpcom/components/nsComponentManager.cpp:1521]
12:35:49     INFO -  PID 11964 | #14: nsGetServiceByContractIDWithError::operator()(nsID const &,void * *) [xpcom/components/nsComponentManagerUtils.cpp:293]
12:35:49     INFO -  PID 11964 | #15: nsCOMPtr_base::assign_from_gs_contractid_with_error(nsGetServiceByContractIDWithError const &,nsID const &) [xpcom/base/nsCOMPtr.cpp:106]
12:35:49     INFO -  PID 11964 | #16: mozilla::net::nsHttpHandler::EnsureUAOverridesInit() [netwerk/protocol/http/nsHttpHandler.cpp:396]
12:35:49     INFO -  PID 11964 | #17: mozilla::net::nsHttpHandler::NewProxiedChannel2(nsIURI *,nsIProxyInfo *,unsigned int,nsIURI *,nsILoadInfo *,nsIChannel * *) [netwerk/protocol/http/nsHttpHandler.cpp:2211]
12:35:49     INFO -  PID 11964 | #18: mozilla::net::nsHttpsHandler::NewProxiedChannel2(nsIURI *,nsIProxyInfo *,unsigned int,nsIURI *,nsILoadInfo *,nsIChannel * *) [netwerk/protocol/http/nsHttpHandler.h:757]
12:35:49     INFO -  PID 11964 | #19: mozilla::net::nsIOService::NewChannelFromURIWithProxyFlagsInternal(nsIURI *,nsIURI *,unsigned int,nsILoadInfo *,nsIChannel * *) [netwerk/base/nsIOService.cpp:859]
12:35:49     INFO -  PID 11964 | #04: LoadLoadableRootsTask::LoadLoadableRoots() [security/manager/ssl/nsNSSComponent.cpp:1097]
I looked at this for a few minutes and I'm not sure what's going on. Lina?
Flags: needinfo?(lina)
Priority: -- → P2
Blocks: 1206969
I'm...not sure what's going on there, either. :-/ Maybe re-entrancy; is something modifying `nsDirectoryService::mHashtable` as it's initializing? For Push specifically, we could fix the failures by disabling the H/2 tests, since I don't think we have plans to use that backend. But maybe it's a deeper problem that we should investigate?

Dragana, I'm sorry to pass this along to you, but does anything stand out in that log?
Flags: needinfo?(lina) → needinfo?(dd.mozilla)
The crash is is startup cache when we try to load a js resource. I am not sure who is the best person to take a look at this. nfroyd maybe?
Flags: needinfo?(dd.mozilla) → needinfo?(nfroyd)
It looks like we have interleaved thread stacks, which makes things look a bit nonsensical.  Untangling things, I think nsNSSComponent.cpp is trying to talk to the directory service:

https://searchfox.org/mozilla-central/source/security/manager/ssl/nsNSSComponent.cpp#1035-1068

and so is the startup cache:

https://searchfox.org/mozilla-central/source/startupcache/StartupCache.cpp#158-178

they're doing this on different threads (I assume LoadLoadableRootsTask is running on a different thread, anyway) and the directory service isn't thread safe.  I don't know if we've ever made any guarantees about the directory service being thread-safe; I'm inclined to say that this is PSM's bug.

But...searchfox seems to think that LoadLoadableRoots() doesn't touch the directory service, and looking at blame, it seems that bug 1492188 fixed this exact issue.  So I think this bug is a duplicate?  The initial report was made just a couple of days before bug 1492188 was fixed.

Feel free to reopen if that doesn't seem right.
Status: NEW → RESOLVED
Closed: 6 years ago
Component: DOM: Push Notifications → Security: PSM
Flags: needinfo?(nfroyd)
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.