thread safety assertions when doing import into address books (ASSERTION: morkObject not thread-safe)

RESOLVED FIXED in Thunderbird 10.0


MailNews Core
Address Book
16 years ago
5 years ago


(Reporter: (not reading, please use instead), Assigned: standard8)


Thunderbird 10.0
Dependency tree / graph
Bug Flags:
wanted-thunderbird3 -

Firefox Tracking Flags

(Not tracked)


(Whiteboard: [fixed by bug 675407])


(1 attachment, 1 obsolete attachment)

thread safety assertions when doing ldif import

thanks to bienvenu for pointing this out

NTDLL! 77f9f9df()
nsDebug::Assertion(const char * 0x03c58974, const char * 0x1012c4e0, const char 
* 0x1012c4b0, int 528) line 291 + 13 bytes
NS_CheckThreadSafe(void * 0x00302ca0, const char * 0x03c58974) line 528 + 34 
morkObject::AddRef(morkObject * const 0x03db9ac8) line 68 + 62 bytes
morkRowObject::AddRef(morkRowObject * const 0x03db9ac8) line 121 + 12 bytes
morkRowObject::QueryInterface(morkRowObject * const 0x03db9ac8, const nsID & 
{...}, void * * 0x0517f94c) line 121 + 158 bytes
nsQueryInterface::operator()(const nsID & {...}, void * * 0x0517f94c) line 47 + 
25 bytes
nsCOMPtr<nsIMdbRow>::assign_from_helper(const nsCOMPtr_helper & {...}, const 
nsID & {...}) line 922 + 18 bytes
nsCOMPtr<nsIMdbRow>::nsCOMPtr<nsIMdbRow>(const nsQueryInterface & {...}) line 
nsCOMPtr<nsIMdbRow>::Assert_NoQueryNeeded() line 501
nsGetterAddRefs<nsIMdbRow>::~nsGetterAddRefs<nsIMdbRow>() line 1006
nsTextAddress::AddLdifRowToDatabase(int 0) line 971
nsTextAddress::ParseLdifFile(nsIFileSpec * 0x035093d8, unsigned int * 
0x0350fa94) line 909
nsTextAddress::ImportLDIF(int * 0x0517fea4, const unsigned short * 0x03ef41a8, 
nsIFileSpec * 0x035093d8, nsIAddrDatabase * 0x03f0c658, nsString & {...}, 
unsigned int * 0x0350fa94) line 86 + 16 bytes
ImportAddressImpl::ImportAddressBook(ImportAddressImpl * const 0x0350fa50, 
nsIImportABDescriptor * 0x03509370, nsIAddrDatabase * 0x03f0c658, 
nsIImportFieldMap * 0x00000000, int 0, unsigned short * * 0x0517ff0c, unsigned 
short * * 0x0517ff08, int * 0x0517ff14) line 514 + 44 bytes
ImportAddressThread(void * 0x0350da88) line 948 + 62 bytes
_PR_NativeRunThread(void * 0x0350daf0) line 433 + 13 bytes
_threadstartex(void * 0x0350d600) line 212 + 13 bytes
KERNEL32! 77e92ca8()
I wonder if the fix for this (and the other addressbook import assertion bugs) 
is to fix our code to create the card, and proxy that over, instead of having 
the import code know about mork.

Comment 2

16 years ago
yes, that's the only way I can think of fixing this - if the import thread does
addrefs or releases of the row, we'll get the assertions. Simply proxing over a
pointer to the row does an addref and release in the proxy code itself on the
import thread...

Comment 3

15 years ago
Has this been fixed?  I haven't seen this on mozilla 1.1 or 1.2.

Comment 4

14 years ago
> Has this been fixed?  I haven't seen this on mozilla 1.1 or 1.2

it hasn't been fixed.  I just saw it, but you need a debug build to see it.
Product: Browser → Seamonkey
Component: Address Book → MailNews: Address Book
OS: Windows 2000 → All
Product: Mozilla Application Suite → Core
QA Contact: nbaca → addressbook
Hardware: PC → All

Comment 5

9 years ago
I'm not planning on working on this any time soon.
Assignee: bienvenu → nobody
This happens on any address book import, not just ldif. Taking bug and duping bug 180843 to this as that's the older bug.
Assignee: nobody → bugzilla
Flags: wanted-thunderbird3+
Priority: -- → P4
Summary: thread safety assertions when doing ldif import → thread safety assertions when doing import into address books (ASSERTION: morkObject not thread-safe)
Duplicate of this bug: 180843
Blocks: 439819
Created attachment 330572 [details] [diff] [review]
Possible fix for nsIAbLDIFService assertions

Current WIP, I expect it'll need a little work on the Windows compilation side. This fixes the nsIAbLDIFService assertion that we currently get, that would seem to let the test case on bug 439819 pass.

The morkObject not thread-safe assertion still needs looking at.
Created attachment 331595 [details] [diff] [review]
[checked in] Fix nsIAbLDIFService assertions

Fixes the nsIAbLDIFService assertions. David, could you test compile this on Windows please, I think it'll be ok, but just to make sure...
Attachment #330572 - Attachment is obsolete: true
Attachment #331595 - Flags: superreview?(bienvenu)
Attachment #331595 - Flags: review?(bienvenu)

Comment 10

9 years ago
ack, sorry,  I don't have access to a windows box at the moment 

Comment 11

9 years ago
Comment on attachment 331595 [details] [diff] [review]
[checked in] Fix nsIAbLDIFService assertions

but the patch looks OK otherwise.
Attachment #331595 - Flags: superreview?(bienvenu)
Attachment #331595 - Flags: superreview+
Attachment #331595 - Flags: review?(bienvenu)
Attachment #331595 - Flags: review+

Comment 12

9 years ago
The patch doesn't compile due to an error in line 157 of nsOutlookImport.cpp.  There is a missing comma after nsISupports *aSupportService:

+  NS_IMETHOD ImportAddressBook(nsIImportABDescriptor *source,
+                               nsIAddrDatabase *destination,
+                               nsIImportFieldMap *fieldMap,
+                               nsISupports *aSupportService <---
+                               PRBool isAddrLocHome,
+                               PRUnichar **errorLog,
+                               PRUnichar **successLog,
+                               PRBool *fatalError);

Thunderbird compiled with a comma added to that line and the two import tests passed.
Comment on attachment 331595 [details] [diff] [review]
[checked in] Fix nsIAbLDIFService assertions

Checked in: changeset id 42:46d3979475c9
Attachment #331595 - Attachment description: Fix nsIAbLDIFService assertions → [checked in] Fix nsIAbLDIFService assertions
Product: Core → MailNews Core


9 years ago
Blocks: 449043
Given our new stricter definition of wanted; marking this as wanted-.
Flags: wanted-thunderbird3+ → wanted-thunderbird3-
Blocks: 600798
This was fully fixed by bug 675407 that actually removed the import thread for address books (as well as a few other changes).
Last Resolved: 5 years ago
Depends on: 675407
Priority: P4 → --
Resolution: --- → FIXED
Whiteboard: [fixed by bug 675407]
Target Milestone: --- → Thunderbird 10.0
You need to log in before you can comment on or make changes to this bug.