Closed Bug 46800 Opened 24 years ago Closed 23 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: 23 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.