Closed Bug 46800 Opened 24 years ago Closed 24 years ago

msglocal.dll shouldn't be loaded at startup

Categories

(MailNews Core :: Backend, defect, P3)

x86
Windows 2000
defect

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 12896
Future

People

(Reporter: bratell, Assigned: mscott)

References

Details

(Keywords: perf)

msglocal.dll is for some reason loaded at startup even when no mail functions are used. I started the browser and browsed a little at random and no (real) functions in the dll were called. The functions called were: nsMsgLocalMailFolderConstructor nsMsgLocalModule::AddRef(void) nsMsgLocalModule::QueryInterface(nsID const&,void * *) nsMsgLocalModule::Release(void) NSGetModule nsMsgLocalModule::GetClassObject(nsIComponentManager *,nsID const&,nsID const&,void * *) nsMsgLocalModule::Initialize(void) nsMsgLocalModule::nsMsgLocalModule(void) nsMsgLocalMailFolder::AddRef(void) nsMsgLocalMailFolder::Release(void) nsMsgLocalMailFolder::QueryInterface(nsID const&,void * *) nsMsgLocalMailFolder::CreateBaseMessageURI(char const*) nsMsgLocalMailFolder::Init(char const*) nsMsgLocalMailFolder::nsMsgLocalMailFolder(void) Clearly none of these justifies the loading of the dll. I think this might be connected to the loading of msgbsutl.dll (bug 46797) but I haven't checked further what's causing the load. It might be an easy kill though, decreasing startup time and reducing memory footprint.
Blocks: 29249
Keywords: nsbeta3, perf
Blocks: 46801
Blocks: 46797
So far I've seen that this dll gets dragged in by something RDF related. One offender seems to be RDFServiceImpl::GetResource("mailbox://danbr843@mail.student.liu.se/Drafts", ...); so maybe you got to have a mail account for this to happen. danbr843@mail.student.liu.se is my account where I test mail. I don't know how it got here but the stack trace below may help someone. It's CreateNewLocalStore that triggers everything as far as I can see. RDFServiceImpl::GetResource(RDFServiceImpl * const 0x00ccbbf8, const char * 0x0012e560, nsIRDFResource * * 0x0012ea94) line 649 + 40 bytes RDFServiceImpl::GetUnicodeResource(RDFServiceImpl * const 0x00ccbbf8, const unsigned short * 0x0012e858, nsIRDFResource * * 0x0012ea94) line 701 + 38 bytes RDFContentSinkImpl::GetIdAboutAttribute(const nsIParserNode & {...}, nsIRDFResource * * 0x0012ea94) line 1014 + 34 bytes RDFContentSinkImpl::OpenObject(const nsIParserNode & {...}) line 1287 + 39 bytes RDFContentSinkImpl::OpenContainer(RDFContentSinkImpl * const 0x0259abf0, const nsIParserNode & {...}) line 543 + 15 bytes CWellFormedDTD::HandleStartToken(CToken * 0x00d18188) line 638 + 22 bytes CWellFormedDTD::HandleToken(CWellFormedDTD * const 0x025b9ba0, CToken * 0x00d18188, nsIParser * 0x025f09a0) line 521 + 12 bytes CWellFormedDTD::BuildModel(CWellFormedDTD * const 0x025b9ba0, nsIParser * 0x025f09a0, nsITokenizer * 0x02599b20, nsITokenObserver * 0x00000000, nsIContentSink * 0x0259abf0) line 258 + 20 bytes nsParser::BuildModel() line 1979 + 34 bytes nsParser::ResumeParse(int 1, int 0) line 1860 + 11 bytes nsParser::OnDataAvailable(nsParser * const 0x025f09a8, nsIChannel * 0x025bc2b0, nsISupports * 0x00000000, nsIInputStream * 0x025fb1c0, unsigned int 0, unsigned int 1024) line 2310 + 19 bytes RDFXMLDataSourceImpl::OnDataAvailable(RDFXMLDataSourceImpl * const 0x0253fd70, nsIChannel * 0x025bc2b0, nsISupports * 0x00000000, nsIInputStream * 0x025fb1c0, unsigned int 0, unsigned int 1024) line 1090 rdf_BlockingParse(nsIURI * 0x024d5b58, nsIStreamListener * 0x0253fd70) line 612 + 38 bytes RDFXMLDataSourceImpl::Refresh(RDFXMLDataSourceImpl * const 0x0253fd64, int 1) line 914 + 58 bytes LocalStoreImpl::Refresh(LocalStoreImpl * const 0x00d2e618, int 1) line 337 + 27 bytes NS_NewLocalStore(nsILocalStore * * 0x0012f32c) line 242 + 18 bytes CreateNewLocalStore(nsISupports * 0x00000000, const nsID & {...}, void * * 0x0012f3d0) line 109 + 53 bytes nsGenericFactory::CreateInstance(nsGenericFactory * const 0x00d2e3b8, nsISupports * 0x00000000, const nsID & {...}, void * * 0x0012f3d0) line 48 nsComponentManagerImpl::CreateInstance(nsComponentManagerImpl * const 0x009a8b00, const nsID & {...}, nsISupports * 0x00000000, const nsID & {...}, void * * 0x0012f3d0) line 1237 + 24 bytes nsComponentManager::CreateInstance(const nsID & {...}, nsISupports * 0x00000000, const nsID & {...}, void * * 0x0012f3d0) line 82 nsServiceManagerImpl::GetService(nsServiceManagerImpl * const 0x009a8300, const nsID & {...}, const nsID & {...}, nsISupports * * 0x0012f634, nsIShutdownListener * 0x00000000) line 346 + 19 bytes nsServiceManager::GetService(const nsID & {...}, const nsID & {...}, nsISupports * * 0x0012f634, nsIShutdownListener * 0x00000000) line 562 nsXULDocument::Init() line 3976 + 23 bytes NS_NewXULDocument(nsIXULDocument * * 0x0012f668) line 560 + 8 bytes CreateNewXULDocument(nsISupports * 0x00000000, const nsID & {...}, void * * 0x0012f734) line 103 + 53 bytes nsGenericFactory::CreateInstance(nsGenericFactory * const 0x00d37760, nsISupports * 0x00000000, const nsID & {...}, void * * 0x0012f734) line 48 nsComponentManagerImpl::CreateInstance(nsComponentManagerImpl * const 0x009a8b00, const nsID & {...}, nsISupports * 0x00000000, const nsID & {...}, void * * 0x0012f734) line 1237 + 24 bytes nsComponentManager::CreateInstance(const nsID & {...}, nsISupports * 0x00000000, const nsID & {...}, void * * 0x0012f734) line 82 nsLayoutDLF::CreateRDFDocument(nsISupports * 0x00000000, nsCOMPtr<nsIDocument> * 0x0012f734, nsCOMPtr<nsIDocumentViewer> * 0x0012f730) line 424 + 42 bytes nsLayoutDLF::CreateRDFDocument(const char * 0x01da5900, nsIChannel * 0x024d29b8, nsILoadGroup * 0x00df02d0, const char * 0x0012fa68, nsISupports * 0x00df0048, nsISupports * 0x00000000, nsIStreamListener * * 0x0012fabc, nsIContentViewer * * 0x0012f96c) line 450 + 20 bytes nsLayoutDLF::CreateInstance(nsLayoutDLF * const 0x00d384c0, const char * 0x01da5900, nsIChannel * 0x024d29b8, nsILoadGroup * 0x00df02d0, const char * 0x0012fa68, nsISupports * 0x00df0048, nsISupports * 0x00000000, nsIStreamListener * * 0x0012fabc, nsIContentViewer * * 0x0012f96c) line 286 + 40 bytes nsDocShell::NewContentViewerObj(nsDocShell * const 0x00df0028, const char * 0x0012fa68, nsIChannel * 0x024d29b8, nsILoadGroup * 0x00df02d0, nsIStreamListener * * 0x0012fabc, nsIContentViewer * * 0x0012f96c) line 2442 + 132 bytes nsDocShell::CreateContentViewer(nsDocShell * const 0x00df0028, const char * 0x0012fa68, nsIChannel * 0x024d29b8, nsIStreamListener * * 0x0012fabc) line 2382 + 60 bytes nsDSURIContentListener::DoContent(nsDSURIContentListener * const 0x00df01b0, const char * 0x0012fa68, int 0, const char * 0x1009fc78 gCommonEmptyBuffer, nsIChannel * 0x024d29b8, nsIStreamListener * * 0x0012fabc, int * 0x0012fa4c) line 100 + 33 bytes nsDocumentOpenInfo::DispatchContent(nsIChannel * 0x024d29b8, nsISupports * 0x00000000) line 359 + 109 bytes nsDocumentOpenInfo::OnStartRequest(nsDocumentOpenInfo * const 0x00de46e0, nsIChannel * 0x024d29b8, nsISupports * 0x00000000) line 233 + 16 bytes nsResChannel::OnStartRequest(nsResChannel * const 0x024d29bc, nsIChannel * 0x024d2c38, nsISupports * 0x00000000) line 678 nsFileChannel::OnStartRequest(nsFileChannel * const 0x024d2c40, nsIChannel * 0x024d2cf0, nsISupports * 0x00000000) line 619 nsOnStartRequestEvent::HandleEvent(nsOnStartRequestEvent * const 0x024d3db8) line 210 + 26 bytes nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x024d3e10) line 97 + 12 bytes PL_HandleEvent(PLEvent * 0x024d3e10) line 587 + 10 bytes PL_ProcessPendingEvents(PLEventQueue * 0x00cd8310) line 528 + 9 bytes _md_EventReceiverProc(HWND__ * 0x000a1140, unsigned int 49519, unsigned int 0, long 13468432) line 1043 + 9 bytes USER32! 77e13eb0() USER32! 77e1401a() USER32! 77e192da() nsAppShellService::Run(nsAppShellService * const 0x00cdc018) line 387 main1(int 1, char * * 0x009a7e60, nsISupports * 0x00000000) line 913 + 32 bytes main(int 1, char * * 0x009a7e60) line 1093 + 37 bytes mainCRTStartup() line 338 + 17 bytes KERNEL32! 77e87903()
this is a dup of a putterman bug that's been futured for this release.
Target Milestone: --- → Future
*** Bug 46797 has been marked as a duplicate of this bug. ***
Mail triage marking [nsbeta3-]
Whiteboard: [nsbeta3-]
also adding to startup performance tracker bug 7251
Blocks: 7251
Keywords: nsbeta3nsbeta1
Whiteboard: [nsbeta3-]
Marking nsbeta1-. This would probably get solved by fixing the other bugs out there about loading mail dll's because of the way we store resources in localstore.rdf.
Keywords: nsbeta1nsbeta1-
Blocks: 71781
No longer blocks: 7251
The only bug I could find that sounded like the one you said would fix this was bug 12896 which was not nominated , not flagged with the perf keyword, and Futured. Is that the one you think would probably fix this?
Depends on: 12896
this is a dup of 12896. *** This bug has been marked as a duplicate of 12896 ***
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → DUPLICATE
verified dup.
Status: RESOLVED → VERIFIED
Product: MailNews → Core
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.