Closed
Bug 34443
Opened 25 years ago
Closed 25 years ago
asserts launching addressbook from tasks menu
Categories
(SeaMonkey :: MailNews: Address Book & Contacts, defect, P2)
Tracking
(Not tracked)
VERIFIED
FIXED
M17
People
(Reporter: prass, Assigned: chuang)
Details
Attachments
(1 file)
|
1.19 KB,
patch
|
Details | Diff | Splinter Review |
Steps to Reproduce:
1. Launch seamonkey
2. Choose tasks->Addressbook
Expected result: AB launches
Actual result: crash
Build:20000404
Platform: linux
Alos noted that can accesss adressbook in other places like IM window with ab
card icon without any problem.
Priority: P3 → P2
Seth this looks like it might be the same bug you are working on for mailnews.
Here is the log:
Calling chain using A6/R1 links
Back chain ISA Caller
00000000 PPC 1BD56EC4
0B01E9C0 PPC 1BD461AC main+00188
0B01E930 PPC 1BD45AD8 main1(int, char**, nsISplashScreen*)+00624
0B01E840 PPC 1B360BF4 nsAppShellService::Run()+00018
0B01E800 PPC 1B332964 nsAppShell::Run()+00038
0B01E7B0 PPC 1B333060 nsMacMessagePump::DoMessagePump()+0003C
0B01E760 PPC 1B333368 nsMacMessagePump::DispatchEvent(int, EventRecord*)+
00174
0B01E710 PPC 1BCBD8D4 Repeater::DoRepeaters(const EventRecord&)+00030
0B01E6D0 PPC 1B317544 nsMacNSPREventQueueHandler::RepeatAction(const
EventRecord&)+000
0C
0B01E690 PPC 1B31765C nsMacNSPREventQueueHandler::ProcessPLEventQueue()+
000B0
0B01E620 PPC 1B46C8AC nsEventQueueImpl::ProcessPendingEvents()+000E4
0B01E5C0 PPC 1B46C800 nsEventQueueImpl::ProcessPendingEvents()+00038
0B01E560 PPC 1B4C71D8 PL_ProcessPendingEvents+0004C
0B01E520 PPC 1B4C72C0 PL_HandleEvent+00020
0B01E4E0 PPC 1B2E01BC nsStreamListenerEvent::HandlePLEvent(PLEvent*)+00024
0B01E4A0 PPC 1B2E1010 nsOnStopRequestEvent::HandleEvent()+00040
0B01E450 PPC 1BC87B84 nsFileChannel::OnStopRequest(nsIChannel*,
nsISupports*, unsigned
int, const unsigned short*)+00030
0B01E400 PPC 1BC99CE4 nsResChannel::OnStopRequest(nsIChannel*,
nsISupports*, unsigned
int, const unsigned short*)+000A8
0B01E3B0 PPC 1BC99D80 nsResChannel::EndRequest(unsigned int, const
unsigned short*)+00
030
0B01E370 PPC 1B301774 nsStreamLoader::OnStopRequest(nsIChannel*,
nsISupports*, unsigne
d int, const unsigned short*)+0008C
0B01E300 PPC 1B20928C nsXULDocument::OnStreamComplete(nsIStreamLoader*,
nsISupports*,
unsigned int, unsigned int, const char*)+000C8
0B01E290 PPC 1B208C5C nsXULDocument::ResumeWalk()+00DBC
0B01DBB0 PPC 1B1FF028 nsXULDocument::ResolveForwardReferences()+00080
0B01DB50 PPC 1B20BA64 nsXULDocument::OverlayForwardReference::Resolve()+
00180
0B01DA10 PPC 1B20BE40
nsXULDocument::OverlayForwardReference::Merge(nsIContent*, nsICo
ntent*)+002FC
0B01D8A0 PPC 1B2015FC nsXULDocument::AddSubtreeToDocument(nsIContent*)+
00328
0B01D750 PPC 1B2015A8 nsXULDocument::AddSubtreeToDocument(nsIContent*)+
002D4
0B01D600 PPC 1B24BB28 nsXULElement::ChildAt(int, nsIContent*&) const+0001C
0B01D590 PPC 1B24FD7C nsXULElement::EnsureContentsGenerated() const+000E4
0B01D510 PPC 1B1FEAD4 nsXULDocument::CreateContents(nsIContent*)+00098
0B01D4C0 PPC 1B27A7E4 RDFGenericBuilderImpl::CreateContents(nsIContent*)+
00054
0B01D470 PPC 1B27F0BC
RDFGenericBuilderImpl::CreateTemplateAndContainerContents(nsICon
tent*, nsIContent**, int*)+00150
0B01D350 PPC 1B27F3E0
RDFGenericBuilderImpl::CreateContainerContents(nsIContent*, nsIR
DFResource*, int, nsIContent**, int*)+00244
0B01D1E0 PPC 1B2729F8 RootNode::Propogate(const InstantiationSet&, void*)+
00044
0B01D190 PPC 1B272CCC TestNode::Propogate(const InstantiationSet&, void*)+
00098
0B01D110 PPC 1B272C64 TestNode::Propogate(const InstantiationSet&, void*)+
00030
0B01D090 PPC 1B2776E0
RDFContainerMemberTestNode::FilterInstantiations(InstantiationSe
t&) const+01214
Return addresses on the stack
Stack Addr Frame Addr ISA Caller
0B01CEE8 PPC 1B1E2338
RDFServiceImpl::RegisterResource(nsIRDFResource*, i
nt)+000DC
0B01CED8 PPC 1BD3499C malloc+00040
0B01CECC 68K 0000000E
0B01CEC8 68K 09E20FEE
0B01CE88 0B01CE80 PPC 1B906994 PL_HashTableRawAdd+00134
0B01CE78 0B01CE70 PPC 1B8CC450 nsAbRDFResource::Release()+0000C
0B01CE68 0B01CE60 PPC 1B91BAAC PR_Malloc+00014
0B01CE58 68K 0000000E
0B01CE48 0B01CE40 PPC 1B906560 PL_ArenaFinish+000CC
0B01CE28 PPC 1BD3499C malloc+00040
0B01CE24 68K 09E20FB2
0B01CE20 68K 09E20FB2
0B01CE08 0B01CE00 PPC 1B91BAAC PR_Malloc+00014
0B01CDC8 0B01CDC0 PPC 1BD3499C malloc+00040
0B01CDBC 68K 0000000E
0B01CD88 PPC 1B2821F0
RDFGenericBuilderImpl::ContentIdTestNode::FilterIns
tantiations(InstantiationSet&) const+00870
0B01CD58 PPC 1B906804 PL_HashTableRawLookup+0005C
0B01CD48 0B01CD40 PPC 1B45BD44 nsCOMPtr_base::~nsCOMPtr_base()+00030
0B01CD28 PPC 1B271C2C BindingSet::GetBindingFor(int, Value*)
const+0008C
0B01CD18 0B01CD10 PPC 1B270CEC MemoryElementSet::Add(MemoryElement*)+
00120
0B01CD08 0B01CD00 PPC 1B454888 nsSupportsArray::Release()+00040
0B01CCE8 0B01CCE0 PPC 1BD33AA0 operator new(unsigned long, const
std::nothrow_t&)+
00014
0B01CCD8 0B01CCD0 PPC 1BD33B10 operator new(unsigned long)+00010
0B01CCC8 0B01CCC0 PPC 1B4546B0 nsSupportsArray::~nsSupportsArray()+
0003C
0B01CCA8 0B01CCA0 PPC 1BD3499C malloc+00040
0B01CC88 0B01CC80 PPC 1B454A98 nsSupportsArray::DeleteArray()+0001C
0B01CC68 0B01CC60 PPC 1BD33B54 operator delete(void*)+00014
0B01CC58 0B01CC50 PPC 1BD33AA0 operator new(unsigned long, const
std::nothrow_t&)+
00014
0B01CC48 0B01CC40 PPC 19BDC7A8
nsGenericElement::SetDocumentInChildrenOf(nsIConten
t*, nsIDocument*)+00024
0B01CC38 0B01CC30 PPC 1BD3499C malloc+00040
0B01CC28 0B01CC20 PPC 1BD34A04 free+00030
0B01CBF8 0B01CBF0 PPC 1B45BD44 nsCOMPtr_base::~nsCOMPtr_base()+00030
0B01CBE8 0B01CBE0 PPC 1B47804C nsStr::StrCompare(const nsStr&, const
nsStr&, int,
int)+000B8
0B01CBB8 68K 00000016
0B01CBA8 0B01CBA0 PPC 1B218C94
nsXULAttributes::SetInlineStyleRule(nsIStyleRule*)+
00010
0B01CB98 PPC 1B2776E0
RDFContainerMemberTestNode::FilterInstantiations(In
stantiationSet&) const+01214
0B01CB8C 68K 09E20FB2
0B01CB48 0B01CB40 PPC 1B1EA58C
CompositeDataSourceImpl::GetTargets(nsIRDFResource*
, nsIRDFResource*, int, nsISimpleEnumerator**)+000B0
0B01CB18 0B01CB10 PPC 1B1E8A40 CompositeEnumeratorImpl::Release()+
00040
0B01CB08 0B01CB00 PPC 1BD33B10 operator new(unsigned long)+00010
0B01CAF8 0B01CAF0 PPC 1B1E8C9C
CompositeEnumeratorImpl::HasMoreElements(int*)+0008
0
Displaying memory from 0
00000000 FFC1 0000 FFC1 0000 0036 A346 0036 A348 *¡••*¡•••6£F•6£H
00000010 0036 A34A 0036 A34C 0086 E2FC 0086 E2FC •6£J•6£L•Ü‚¸•Ü‚¸
Closing log
Comment 5•25 years ago
|
||
I'm not sure that this is related to #34438
as soon as I'm done building, I'll investigate.
Status: NEW → ASSIGNED
Summary: Crash launching addressbook from tasks menu → Crash launching addressbook from tasks menu
Comment 6•25 years ago
|
||
fix in hand. seeking review from waterson.
Index: base/src/nsCompositeDataSource.cpp
===================================================================
RCS file: /cvsroot/mozilla/rdf/base/src/nsCompositeDataSource.cpp,v
retrieving revision 1.41
diff -p -r1.41 nsCompositeDataSource.cpp
*** nsCompositeDataSource.cpp 2000/03/24 02:40:24 1.41
--- nsCompositeDataSource.cpp 2000/04/04 20:47:08
*************** CompositeEnumeratorImpl::HasMoreElements
*** 225,230 ****
--- 225,235 ----
PRInt32 i;
PRBool hasMore;
+
+ if (!mCurrent) {
+ break;
+ }
+
rv = mCurrent->HasMoreElements(&hasMore);
if (NS_FAILED(rv)) return rv;
Target Milestone: --- → M15
Comment 7•25 years ago
|
||
marking blocker. adding granrose to the cc list.
Severity: critical → blocker
Comment 9•25 years ago
|
||
Comment 10•25 years ago
|
||
I think that GetEnumerator() should *always* return an enumerator
(NS_NewEmptyEnumerator, at a minimum) if it returns NS_OK. So this makes RDF be
paranoid and assert if that's not the case.
Comment 11•25 years ago
|
||
testing waterson's new patch.
Comment 12•25 years ago
|
||
waterson's patch works fine. as soon as I get the word, I'll check it in. then
I'll go see about these assertions:
###!!! ASSERTION: you're always supposed to return an enumerator from
GetEnumerator, punk.: 'mCurrent != nsnull', file nsCompositeDataSource.cpp, line
223
###!!! Break: at file nsCompositeDataSource.cpp, line 223
###!!! ASSERTION: you're always supposed to return an enumerator from
GetEnumerator, punk.: 'mCurrent != nsnull', file nsCompositeDataSource.cpp, line
223
###!!! Break: at file nsCompositeDataSource.cpp, line 223
prefillAccount = null
###!!! ASSERTION: you're always supposed to return an enumerator from
GetEnumerator, punk.: 'mCurrent != nsnull', file nsCompositeDataSource.cpp, line
223
###!!! Break: at file nsCompositeDataSource.cpp, line 223
###!!! ASSERTION: you're always supposed to return an enumerator from
GetEnumerator, punk.: 'mCurrent != nsnull', file nsCompositeDataSource.cpp, line
223
###!!! Break: at file nsCompositeDataSource.cpp, line 223
Comment 15•25 years ago
|
||
The new <template> code exposed a latent bug in nsDirectoryDataSource.cpp here:
http://lxr.mozilla.org/mozilla/source/mailnews/addrbook/src/nsDirectoryDataSour
ce.cpp#197
If GetTargets() is called with a "directory" resource (i.e., one that is
QI()-able to nsIAbDirectory), but the property that is being asked for is not
one of the four properties that the datasource knows about, we miss the "else"
case and fail to fill in an out value for "targets" (but still return NS_OK --
because the QI() succeeded and stuffed the result into "rv").
I'd suggest a couple of things here:
1. Re-code the logic "early return" in each of the handled cases.
2. Remove the final "else" statement
3. Replace the final "return rv" with "return NS_NewEmptyEnumerator(targets)".
"NS_NewEmptyEnumerator()" returns a static, global, shared empty
nsISimpleEnumerator, and doesn't require any allocation overhead. (The
current code allocates a new, empty enumerator -- outch!)
scottip: cc'ing you to see if there are any places in the folder or message
datasource that could benefit from this as well.
Comment 16•25 years ago
|
||
fix checked in. now we just assert. now all we need to do is follow waterson's
suggestions.
re-assigning to chuang.
candice, look at waterson's comments in this bug report on how to fix this in
nsDirectoryDataSource.cpp
Comment 17•25 years ago
|
||
Mass moving to M16 to get these off the M15 radar. Please let me know if this
is really an M15 stopper.
Target Milestone: M15 → M16
| Assignee | ||
Comment 18•25 years ago
|
||
I will fix for both nsDirectoryDataSource.cpp and nsCardDataSource.cpp.
| Assignee | ||
Comment 20•25 years ago
|
||
Fixed in April.
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
VERIFIED, WORKSFORME using Linux 2000122610.
Status: RESOLVED → VERIFIED
QA Contact: lchiang → stephend
Updated•21 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•