Closed Bug 628035 Opened 10 years ago Closed 6 years ago

Adding unknown email addresses to Mailing list, then deleting ghost duplicate entries from contacts pane, causes dataloss in mailing list (contacts pane list is not updated/refreshed)

Categories

(Thunderbird :: Address Book, defect)

defect
Not set
critical

Tracking

(thunderbird36 fixed)

VERIFIED FIXED
Thunderbird 36.0
Tracking Status
thunderbird36 --- fixed

People

(Reporter: phays, Unassigned)

References

(Depends on 1 open bug, Blocks 2 open bugs)

Details

(Keywords: dataloss, Whiteboard: [Fixed by bug 1061648][STR comment 2])

User-Agent:       Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7

On several occasions I have edited Address Book "Properties" for an email list. Since installing the last upgrade (problem may have started before then and was not noticed) if I delete an entry (drag and select, then press the "Delete" key) the line goes blank and then nothing else happens. Clicking the "OK" button does nothing. If I press "Delete" again, no change appears in the dialog. The "ESCape" key doesn't end the dialog. The only way to get out of the Properties dialig that I have found is to click the "Close" (X) button at the top right corner.

If I then open the same "Properties" dialog I find many of the prior entries are missing. I have had to rebuild this particular mail list three times now, and it is becoming very annoting!

Reproducible: Always

Steps to Reproduce:
1.Open Address Book "Properties" dialog.
2.Delete entry from address list (list with multiple entries - I haven't tried single entry lists).
3. "OK" doesn't work.
4. Close with "Close" (X) button.
5. Open same "Properties" dialog.
6. More than one netry is missing.
Actual Results:  
1. The "OK" button didn't work.
2. After closing the dialog with the "Close" (X) button and reopening the dialog, multiple entries were missing. It appears that they were all of the entries from the actual deleted entry to the end of the list.

Expected Results:  
I would expect:
1. Only one entry wouold be deleted from the list.
2. The "OK" button would close the "Properties" dialog.

To my knowledge I have not changed the default properties of the program. I don't care about trivial nonsense like "themes" etc. I just want to send/receive email.
Severity: major → critical
Keywords: dataloss
Summary: Lost data from Address Book → Lost data from Address Book list
I can confirm with TB 9 on WinXP and TB 12.0a2 on Linux.
Easily reproducible:
 - create new list
 - add few addresses
 - save
 - open this list and delete last address
 - hit OK
 - in my case is list duble. After close/open address book is one of this entry gone.
Nothing in error console, safe mode same problem.
Hmmm. Tricky, but real, and very confusing UX.
This is what I see on WinXP, TB12.0.1:

STR (make sure to follow exactly, extra clicks anywhere else will spoil it!)

1 create new AB (file > new > address book), name: "TestAB"
2 create new Mailing List with single entry within TestAB:
- (select TestAB), then click [New List] button, type List Name: "myList"
- then add a single *new* email address which does not yet exist(!) in any of your ABs: type "test1@asdf.com" into first slot
- press OK once (or Enter twice)
3a look at contacts list pane of myList
-> there are two identical entries of "test1@asdf.com" (but you added only one)
3b look at status bar
-> Total contacts in myList: 2 (but you added only one)
3c veryify Properties of myList (select myList, Ctrl+I)
-> actual contacts in myList: 1 (that's true)
- OK or Cancel to close
4 delete any one of the duplicate entries
5 repeat 3a to 3c
-> there is one entry of "test1@asdf.com" in contacts pane (wrong: ghost entry)
-> status bar claims: Total contacts in myList: 1 (wrong: ghost entry)
-> myList Properties, actual number of contacts: 0 (that's true)
6 focus TestAB, then refocus myList
-> ghost entry goes away
-> you are left with nothing in your myList
(so by deleting ghost duplicate entries from contacts list pane, you are deleting primary entries of your list)

Depending on the method of deletion etc., you can also get into states where deleting list entries from contacts list pane is entirely impossible, because they are all ghost entries which will go away after deselecting and reselecting myList in the AB left pane.

The UX of this is ultimately confusing, and very broken.

The solution might be as simple as a single extra list-refresh/screen update for the contacts pane, which makes ghost-entries go away.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Whiteboard: [STR comment 2]
Summary: Lost data from Address Book list → Adding unknown email addresses to Mailing list, then deleting ghost duplicate entries from contacts pane, causes dataloss in mailing list (need extra contacts pane list/screen refresh/update)
And another minor UX oddness:

STR / actual results

From myList Properties (list with multiple entries >=3), delete first or middle entry (not last entry) manually by removing the email address from its slot with DEL or backspace.
Click OK -> nothing
Click OK again -> sometimes works
Click OK 3rd time -> always works (didn't test for large lists)

Addresses will be correctly deleted from Mailing List, but ghost entries might still be around, or even increased, until de- and re-selection of myList in AB list pane.
Some errors along this way:

Timestamp: 21.05.2012 13:11:48
Error: An error occurred updating the cmd_delete command: [Exception... "'[JavaScript Error: "cards[i] is null" {file: "chrome://messenger/content/addressbook/abResultsPane.js" line: 156}]' when calling method: [nsIController::isCommandEnabled]"  nsresult: "0x80570021 (NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS)"  location: "JS frame :: chrome://global/content/globalOverlay.js :: goUpdateCommand :: line 80"  data: yes]
Source File: chrome://global/content/globalOverlay.js
Line: 86

Timestamp: 21.05.2012 13:12:21
Error: An error occurred executing the cmd_delete command: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIAbView.deleteSelectedCards]"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: chrome://messenger/content/addressbook/abCommon.js :: AbDelete :: line 280"  data: no]
Source File: chrome://global/content/globalOverlay.js
Line: 100

Timestamp: 21.05.2012 13:11:07
Error: An error occurred executing the button_delete command: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIAbView.deleteSelectedCards]"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: chrome://messenger/content/addressbook/abCommon.js :: AbDelete :: line 280"  data: no]
Source File: chrome://global/content/globalOverlay.js
Line: 100
(In reply to Thomas D. from comment #4)
> Some errors along this way:

Not sure if these come from deleting the Mailing list entries or deleting real AB entries, which I also did during testing.
I didn't check for dupes yet.
See Also: → 434014
Summary: Adding unknown email addresses to Mailing list, then deleting ghost duplicate entries from contacts pane, causes dataloss in mailing list (need extra contacts pane list/screen refresh/update) → Adding unknown email addresses to Mailing list, then deleting ghost duplicate entries from contacts pane, causes dataloss in mailing list (contacts pane list is not updated/refreshed)
Blocks: 758969
perhaps bug 757931 also?
Blocks: 699357
Duplicate of this bug: 809855
This bug also occurs when contacts/cards with a secondary email address are added to a mailing list. 

When the secondary email address is added to a mailing list then a new duplicate contact/card is created for that email address. When the duplicate contact/card is removed from the address book then the email address also disappears from the mailing list.

So adding the secondary email address of an already existing contact/card to a mailing-list results in a duplicate contact/card being created.
Problem still present with Thunderbird 31.0 on Ubuntu 12.04 & 14.04

When adding new addresses in an existing Mailing list via the "Properties" dialog, they get ghost-duplicated in the list, so deleting one deletes the other. Refocusing the Mailing list tab is necessary to refresh the list.
:mconley, :bienvenu, :standard8 (AB Module owners per https://wiki.mozilla.org/Modules/MailNews_Core), et alii, this looks like an ux-papercut candidate to me. The UX here is extremely irritating and damaging (contacts dataloss), so I think this should be fixed asap without waiting for new AB (of which we'll never know when it really comes). The fix might be as simple as a single extra list-refresh/screen update for the contacts pane, which makes ghost-entries from mailing list editing go away. If user can do it by defocusing manually and re-focusing the contacts list pane, TB should be able to do that refresh programmatically?

Any ideas or starting points in code? Anybody who knows AB better to give us a starting point in code?

E.g., we could say, each time the mailing list properties dialogue is closed, let's explicitly refresh the contacts list pane.
Flags: needinfo?(standard8)
Flags: needinfo?(mozilla)
Flags: needinfo?(mconley)
OS: Windows XP → All
Hardware: x86 → All
bienvienu is not following bugmail.
Flags: needinfo?(mozilla)
I've looked into similar issues like this before. The code is a mess of notifications and from what I remember, it is actually very difficult to handle all the cases of updates correctly.

A refresh after mailing list update might be possible, but we're dealing with a sync system behaving as async, so it might be difficult to get in the right place. I could be wrong though.

The best place to start looking, would be nsAbView and track down which notifications are coming in at the wrong times, and where they are coming from.
Flags: needinfo?(standard8)
Flags: needinfo?(mconley)
I have the issue with duplicated items under openSuse Thunderbird 31.1.2
Maybe this gets fixed by bug 1061648. Steven, can you look at it with your knowledge gained from that bug?
Flags: needinfo?(sschaub)
bug 1061648 is a variation of this bug. I think that the fix for bug 1061648 does attempt to address this issue.
Flags: needinfo?(sschaub)
This looks like a bug I also discovered and posted on Mozilla Support, where it was suggested that I file a bug. First time here, so I hope I am doing this right. Here's what I reported...

Bugs in adding addresses to an address list which are not already in the Address Book

1. Open the Address Book.

2. If you don't already have an address list, create one.

3. Select the address list, and click on [Properties].

4. Add several addresses not already in the Address Book,

   including one or more of the form "name<address@service>".

5. Click OK.

   > BUG 1: Each of the new addresses is displayed in the address list twice.
   > BUG 2: The last character of the name is missing from "name<address@service>" addresses.

6. Make some changes to one address.

   > The change appears in both copies of the contact,
   > showing that the duplicates are just duplicate displays of a single entries.

7. Delete one of the contacts from the address list.

   > The address now appears only once the address list.

8. Switch the display to another address list or to the Address Book.

9. Reopen the address list.

   > Each new contact is there only once,
   > except for the one deleted in step 7,
   > confirming that the duplicate displays were of single entries.
So it seems bug 1061648 was fixed for TB 36. Thomas, can you retest this?
Great news: This has been fixed by bug 1061648, where Stephen Schaub just walked in and fixed it! Thanks!

(In reply to Thomas D. from comment #11)
> The fix
> might be as simple as a single extra list-refresh/screen update for the
> contacts pane, which makes ghost-entries from mailing list editing go away.
> If user can do it by defocusing manually and re-focusing the contacts list
> pane, TB should be able to do that refresh programmatically?
> 
> E.g., we could say, each time the mailing list properties dialogue is
> closed, let's explicitly refresh the contacts list pane.

FTR: That's exactly how patch attachment 8485153 [details] [diff] [review] has fixed this issue (so I was right...).
Depends on: 1061648
Whiteboard: [STR comment 2] → [Fixed by bug 1061648][STR comment 2]
Fixed by bug 1061648, essentially a one-liner to update the contacts list pane each time mailing list properties dialogue is exited with OK,.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Status: RESOLVED → VERIFIED
Target Milestone: --- → Thunderbird 36.0
Depends on: 1106783
Duplicate of this bug: 1107901
Great news that this is fixed... but I have the "up to date" version of Thunderbird - 31.3.0. The message below comment 20 says it is fixed in version 36.0!!! So how long do we have to wait for a "fixed bug" to be released to the users????
Thunderbird 36 is scheduled to be released sometime in February of 2015. In the meantime, 36 is currently on the "EarlyBird" channel. If you'd like to help test it, you can get a copy here:

https://www.mozilla.org/en-US/thunderbird/channel/
See Also: → 1193290
This fix did not solve the problem that I mentioned above (see comment 9).

When I delete the ghost entry from the address book, then it also disappears from the mailing list, whereas the email address existed as a secondary email address in the first place and afterwards still does.

I retested it on:
TB: 38.7.2
Win7_64bit
Please try with TB45. If it still exists, please open a new bug and reference thus bug 628035.

Also, is your problem not covered by some of the already open bugs linked here? E.g. bug  	699357, bug 758969 ?
You need to log in before you can comment on or make changes to this bug.