Closed Bug 387334 Opened 17 years ago Closed 16 years ago

Corrupt address book due to Missing "@$" in abook.mab

Categories

(Thunderbird :: Address Book, defect)

x86
Windows XP
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: poul, Unassigned)

References

Details

(Keywords: dataloss, Whiteboard: [cause of corruption uknown])

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; da; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
Build Identifier: 2.0.0.4 DK Denmark

My address book was broken and TB did create a new empty one.
I did restore an old one ( 3 months) but this one failed as well.

I tracked the problem down to a missing "@$" in the abook.mab file.

Changing "${13B{@" in the section reproduced below to "@$${13B{@" did get the address book working again.

Please also observe that the numbering changes going up to 1DD and then stepping back to 13B.

Hope this can be of some help.

Regards

Poul


NB: I tend to run TB from multiple PCs with the application on a network share. TB does (as FF) not like to run multiple instances (when will that be fixed ?). TB/FF always rejects to start if the parent.lock file is found. 


----
@$${1DB{@
@$$}1DB}@

@$${1DD{@
<(A3F=468cabd8)>[-4B8:^80(^83=)(^84=)(^85=)(^86=)(^87^A35)(^88=)(^89^A36)
    (^8A^A36)(^8B=)(^8C=)(^8D=)(^8E=0)(^D4=0)(^D5=1)(^8F=)(^90=)(^91=)
    (^92=)(^93=)(^94=)(^95=)(^96=)(^97=)(^98=)(^99=)(^9A=)(^9B=)(^9C=)
    (^9D=)(^9E=)(^9F=)(^A0=)(^A1=)(^A2=)(^A3=)(^A4=)(^A5=)(^A6=)(^A7=)
    (^A8=)(^A9=)(^AA=)(^AB=)(^AC=)(^AD=)(^AE=)(^AF=)(^B0=)(^B1=)(^B2=)
    (^B3=)(^B4=)(^B5=)(^B6=)(^B7=)(^B8=)(^B9=)(^BA^A3F)(^BB=300)]
@$$}1DD}@
${13B{@
@$$}13B}@

@$${13D{@
<(9C4=463f6920)>[-320:^80(^83^1C8)(^84=)(^85=)(^86=)(^87^1C8)(^88=)
    (^89^1C9)(^8A^1C9)(^8B=)(^8C=)(^8D=)(^8E=0)(^8F=)(^90=)(^91=)(^92=)
    (^93=)(^94=)(^95=)(^96=)(^97=)(^98=)(^99=)(^9A=)(^9B=)(^9C=)(^9D=)
    (^9E=)(^9F=)(^A0=)(^A1=)(^A2=)(^A3=)(^A4=)(^A5=)(^A6=)(^A7=)(^A8=)
    (^A9=)(^AA=)(^AB=)(^AC=)(^AD=)(^AE=)(^AF=)(^B0=)(^B1=)(^B2=)(^B3=)
    (^B4=)(^B5=)(^B6=)(^B7=)(^B8=)(^B9=)(^BA^9C4)(^BB=1d2)(^D4=7)(^D5=0)]
@$$}13D}@

@$${13E{@
@$$}13E}@


Reproducible: Didn't try

Steps to Reproduce:
1.
2.
3.


Expected Results:  
File should never be written without being validated.

Skipping illegal records or rest of file would make debugging easier.


I did find a lot of reference to broken address books, but most of them blamed overwriting or file locking.

Maybe the above observation will help pinpoint where the 2 characters went missing.
Version: unspecified → 2.0
well, sharing the AB, eh.  If you are sharing the AB, what is providing your integrity?

just *how* did you restore the old AB?  and was it verifiably "good"?

Mark?  invalid?
Severity: normal → critical
Keywords: dataloss
Bug 148169 may be relevant here. If the user is sharing address books in live instances at the same time, then that's not a good idea. I also think I've heard about bugs of data being on network shares, but I've got no idea if thats true or not.
Re: integrity of AB.

I guess that this is protected by the parent.lock which prevent more than one instance from running.

Re: restored verifiabvle "good"
I did restore a three month old copy but that one did have the same problem.

But apparently the problem went undetected for several month, MAYBE due to 2.0.0.4 being more unforgiven about consistensy. Has the parsing being modified lately ??

I did restore teh AB by editing by hand (dividing in half since I have a big AB) until I saw the inconsistency (former SW Engineer myself)

FF 3.0 is introducing sqllite for bookmarks. If sqllite also will be used for AB then this problem might become irrelevant.






sqllite will also corrupt files if multiple instances are writing to the same db, as I understand it, so that's not going to help. If somehow you're getting multiple instances writing to the same AB, somehow bypassing the profile locking, AB's are going to get corrupted. No, the parsing hasn't changed...
I guess this doesn't depend on whether the user shares the instance or not - pls check Bug 366457.
Many thanks
Mark, what's reasonable here given comment 2 and comment 4, resolve invalid? => enh?
I did raise the issue originally. The idea was to add info that might have been helpfull for someone trying to solve the corrupt address book problem (reported in a number of variations).

I did mention sqllite (for FF) and commment 4 did elaborates on this. But maybe sqllite is not in the development path for the AB at all ? 

I have worked with sqllite myself and it does solve a lot of problems - even when only using one table with one column.


The main problem
----------------
But the fact is that the format is a bit obscure and the parser is (currently) unable to recover with the result that the WHOLE address book is lost on any corruption. 

If a rewrite is in the pipeline then by all mean close this issue.
(In reply to comment #7)
> I did mention sqllite (for FF) and commment 4 did elaborates on this. But maybe
> sqllite is not in the development path for the AB at all ? 

See bug 382876. It's on the path, but other things have to happen first.

> If a rewrite is in the pipeline then by all mean close this issue.

In that case, I will resolve this INVA (none of the resolutions fit well here...).
Status: UNCONFIRMED → RESOLVED
Closed: 16 years ago
Resolution: --- → INVALID
Depends on: 382876, 148169
Resolution: INVALID → INCOMPLETE
Whiteboard: [cause of corruption uknown]
You need to log in before you can comment on or make changes to this bug.