gHttpHandler->GetCookieService() is used on main thread, does IO (opens sqlite) and janks

RESOLVED DUPLICATE of bug 870460

Status

()

Core
Networking
RESOLVED DUPLICATE of bug 870460
4 years ago
2 years ago

People

(Reporter: mayhemer, Unassigned)

Tracking

Trunk
x86_64
Windows 7
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

4 years ago
ntdll.dll!_ZwSetInformationFile@20()  + 0x12 bytes	
 	ntdll.dll!_ZwSetInformationFile@20()  + 0x12 bytes	
 	nss3.dll!seekWinFile(winFile * pFile=0x00000000, __int64 iOffset=779921599452153408)  Line 32762	C
 	nss3.dll!winTruncate(sqlite3_file * id=0x0ad2b964, __int64 nByte=140737488355328)  Line 33063 + 0xa bytes	C
>	xul.dll!`anonymous namespace'::xShmMap(sqlite3_file * pFile=0x0ad2b958, int iRegion=0, int szRegion=32768, int isWrite=1, volatile void * * pp=0x0acf86d0)  Line 290 + 0x18 bytes	C++
 	nss3.dll!walIndexPage(Wal * pWal=0x00000000, int iPage=0, volatile unsigned int * * ppPage=0x0040bb04)  Line 46040 + 0x17 bytes	C
 	nss3.dll!walIndexReadHdr(Wal * pWal=0x00000000, int * pChanged=0x0040bb40)  Line 47489 + 0x10 bytes	C
 	nss3.dll!sqlite3WalBeginReadTransaction(Wal * pWal=0x0ad2d570, int * pChanged=0x0040bb40)  Line 47766 + 0x4a bytes	C
 	nss3.dll!pagerBeginReadTransaction(Pager * pPager=0x00000000)  Line 41442 + 0x10 bytes	C
 	nss3.dll!sqlite3PagerSharedLock(Pager * pPager=0x00000000)  Line 43459 + 0x7 bytes	C
 	nss3.dll!lockBtree(BtShared * pBt=0x00000000)  Line 51929	C
 	nss3.dll!sqlite3InitOne(sqlite3 * db=0x00000000, int iDb=0, char * * pzErrMsg=0x0ad2c284)  Line 29890 + 0x89 bytes	C
 	nss3.dll!sqlite3Init(sqlite3 * db=0x0ad2b080, char * * pzErrMsg=0x0ad2c284)  Line 30066 + 0xd bytes	C
 	nss3.dll!sqlite3ReadSchema(Parse * pParse=0x0ad2c280)  Line 30104 + 0x9 bytes	C
 	nss3.dll!sqlite3Pragma(Parse * pParse=0x0ad2c280, Token * pId1=0x0ad2c510, Token * pId2=0x0ad2c520, Token * pValue=0x0ad2c540, int minusFlag=1)  Line 28576 + 0x9 bytes	C
 	nss3.dll!yy_reduce(yyParser * yypParser=0x0ad2c4d0, int yyruleno=0)  Line 47592 + 0x18 bytes	C
 	nss3.dll!sqlite3Parser(void * yyp=0x00000000, int yymajor=1, Token yyminor={...}, Parse * pParse=0x00000000)  Line 47966 + 0xc bytes	C
 	nss3.dll!sqlite3RunParser(Parse * pParse=0x0ad2c201, const char * zSql=0x0ad2c1e0, char * * pzErrMsg=0x0040bd60)  Line 48804 + 0x19 bytes	C
 	nss3.dll!sqlite3Prepare(sqlite3 * db=0x00000000, const char * zSql=0x0ad2c1e0, int nBytes=-1, int saveSqlFlag=1, Vdbe * pReprepare=0x00000000, sqlite3_stmt * * ppStmt=0x0040bdc8, const char * * pzTail=0x0040bde4)  Line 30280 + 0xc bytes	C
 	nss3.dll!sqlite3LockAndPrepare(sqlite3 * db=0x0ad2b080, const char * zSql=0x0ad2c1e0, int nBytes=-1, int saveSqlFlag=1, Vdbe * pOld=0x00000000, sqlite3_stmt * * ppStmt=0x0040bdc8, const char * * pzTail=0x0040bde4)  Line 30372 + 0x20 bytes	C
 	nss3.dll!sqlite3_exec(sqlite3 * db=0x0ad2b080, const char * zSql=0x0ad2c1e0, int (void *, int, char * *, char * *)* xCallback=0x00000000, void * pArg=0x00000000, char * * pzErrMsg=0x00000000)  Line 26530 + 0x24 bytes	C
 	xul.dll!mozilla::storage::Connection::executeSql(const char * aSqlString=0x0ad2c1e0)  Line 896 + 0xe bytes	C++
 	xul.dll!mozilla::storage::Connection::initializeInternal(nsIFile * aDatabaseFile=0x0ad2acc0)  Line 582 + 0xa bytes	C++
 	xul.dll!mozilla::storage::Connection::initialize(nsIFile * aDatabaseFile=0x0ad2acc0)  Line 507 + 0x8 bytes	C++
 	xul.dll!mozilla::storage::Service::OpenUnsharedDatabase(nsIFile * aDatabaseFile=0x0ad2acc0, mozIStorageConnection * * _connection=0x0ad2a7f4)  Line 688 + 0xc bytes	C++
 	xul.dll!nsCookieService::TryInitDB(bool aRecreateDB=false)  Line 810	C++
 	xul.dll!nsCookieService::InitDBStates()  Line 744	C++
 	xul.dll!nsCookieService::Init()  Line 702	C++
 	xul.dll!nsCookieService::GetSingleton()  Line 633 + 0xb bytes	C++
 	xul.dll!mozilla::GenericFactory::CreateInstance(nsISupports * aOuter=0x00000000, const nsID & aIID={...}, void * * aResult=0x0040c2c4)  Line 16 + 0x13 bytes	C++
 	xul.dll!nsComponentManagerImpl::CreateInstanceByContractID(const char * aContractID=0x0ad21268, nsISupports * aDelegate=0x00000000, const nsID & aIID={...}, void * * aResult=0x0040c2c4)  Line 1094 + 0xd bytes	C++
 	xul.dll!nsComponentManagerImpl::GetServiceByContractID(const char * aContractID=0x5748cb60, const nsID & aIID={...}, void * * result=0x0040c300)  Line 1451	C++
 	xul.dll!CallGetService(const char * aContractID=0x5748cb60, const nsID & aIID={...}, void * * aResult=0x0040c300)  Line 63	C++
 	xul.dll!nsGetServiceByContractID::operator()(const nsID & aIID={...}, void * * aInstancePtr=0x0040c300)  Line 247	C++
 	xul.dll!nsCOMPtr_base::assign_from_gs_contractid(nsGetServiceByContractID gs={...}, const nsID & iid={...})  Line 92 + 0xe bytes	C++
 	xul.dll!nsHttpHandler::GetCookieService()  Line 485	C++
 	xul.dll!mozilla::net::HttpBaseChannel::AddCookiesToRequest()  Line 1535	C++
 	xul.dll!mozilla::net::nsHttpChannel::AsyncOpen(nsIStreamListener * listener=0x0ad21228, nsISupports * context=0x00000000)  Line 4183	C++
 	xul.dll!nsURILoader::OpenURI(nsIChannel * channel=0x0ad21228, bool aIsContentPreferred=false, nsIInterfaceRequestor * aWindowContext=0x09ef4450)  Line 763 + 0xb bytes	C++
 	xul.dll!nsDocShell::DoChannelLoad(nsIChannel * aChannel=0x00000003, nsIURILoader * aURILoader=0x065568c0, bool aBypassClassifier=false)  Line 9772 + 0x1f bytes	C++
 	xul.dll!nsDocShell::DoURILoad(nsIURI * aURI=0x0ad0eb68, nsIURI * aReferrerURI=0x00000000, bool aSendReferrer=true, nsISupports * aOwner=0x0ad0f750, const char * aTypeHint=0x00000000, const nsAString_internal & aFileName={...}, nsIInputStream * aPostData=0x00000000, nsIInputStream * aHeadersData=0x00000000, bool aFirstParty=true, nsIDocShell * * aDocShell=0x00000000, nsIRequest * * aRequest=0x0040c524, bool aIsNewWindowTarget=false, bool aBypassClassifier=false, bool aForceAllowCookies=false)  Line 9607 + 0xe bytes	C++
 	xul.dll!nsDocShell::InternalLoad(nsIURI * aURI=0x0ad0eb68, nsIURI * aReferrer=0x00000000, nsISupports * aOwner=0x0ad0f750, unsigned int aFlags=4, const wchar_t * aWindowTarget=0x0ab768e0, const char * aTypeHint=0x00000000, const nsAString_internal & aFileName={...}, nsIInputStream * aPostData=0x00000000, nsIInputStream * aHeadersData=0x00000000, unsigned int aLoadType=1, nsISHEntry * aSHEntry=0x00000000, bool aFirstParty=true, nsIDocShell * * aDocShell=0x00000000, nsIRequest * * aRequest=0x00000000)  Line 9278 + 0x84 bytes	C++
 	xul.dll!nsDocShell::LoadURI(nsIURI * aURI=0x0ad0eb68, nsIDocShellLoadInfo * aLoadInfo=0x0ad0f750, unsigned int aLoadFlags=4, bool aFirstParty=true)  Line 1525 + 0x4a bytes	C++
 	xul.dll!nsDocShell::LoadURI(const wchar_t * aURI=0x0ab76200, unsigned int aLoadFlags=1835008, nsIURI * aReferringURI=0x00000000, nsIInputStream * aPostStream=0x00000000, nsIInputStream * aHeaderStream=0x00000000)  Line 4137	C++


Either preopen the database on bck thread or turn the cookies api to be async.

This may be part of moving all network top level code to live on non-main thread.
Status: NEW → RESOLVED
Last Resolved: 2 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 870460
You need to log in before you can comment on or make changes to this bug.