Open Bug 969513 Opened 10 years ago Updated 2 years ago

Archive loses message if target folder not available, because target is Other in account settings and a folder in the path was renamed

Categories

(Thunderbird :: Account Manager, defect)

24 Branch
x86
Windows 7
defect

Tracking

(Not tracked)

People

(Reporter: kunci, Unassigned)

References

Details

(Keywords: dataloss)

User Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.70 Safari/537.36

Steps to reproduce:

1. Start with an IMAP account with an Archive setting to "Keep message archives in: Other" with Other being a subfolder in Local Folders (full path "Local Folders/Archives/OldName/Auto Thunderbird").
2. Rename the archive folder (full path now "Local Folders/Archives/NewName/Auto Thunderbird"); I used right-click on folder in folder pane, select "Rename", edit "Enter the new name for your folder" field, "Rename"
3. Manually archive a message in the IMAP account (click "Archive" button on the header of the reading pane or right-click message in message list and select "Archive")


Actual results:

The archived message is removed from the message list under the IMAP account, but does not appear in the archive folder in Local Folders.  It can still be localized using global search, but cannot be navigated to.  Closer look at actual directories on the disk reveal that the Archive command ignored the rename and archived the message according to the folder tree before the name - on the disk it ended up in a "Local Folders\Archives.sbd\OldName.sbd", but that location cannot be accessed from Thunderbird client.

Manual fix:
A. Fix the Archive rule.  Right-click account in folder list, select "Settings...", select "Copies & Folders", use drop-down to navigate the tree to the renamed folder

B. Recover lost messages.   
B1. Shut down Thuderbird
B2. Using Windows Explorer, navigate to "<drive>:\Users\<user>\AppData\Roaming\Thunderbird\Profiles\<id>.default\Mail\Local Folders" and delete "Archives.msf"
B3. Launch Thunderbird; "OldName" now appears in folder pane
B4. Manually move messages from OldName to NewName
B5. Manually delete OldName


Expected results:

Archived messages should have appeared under NewName" tree without the need to update Archive path settings.
To clarify, Manual Fix is A followed by B, not A or B.
Does this only happen for IMAP?
(In reply to :aceman from comment #2)
> Does this only happen for IMAP?

Not sure, as IMAP is all I have...
(In reply to Marcin Struzak from comment #0)
> User Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like
> Gecko) Chrome/33.0.1750.70 Safari/537.36
> 
> Steps to reproduce:
> 
> 1. Start with an IMAP account with an Archive setting to "Keep message
> archives in: Other" with Other being a subfolder in Local Folders (full path
> "Local Folders/Archives/OldName/Auto Thunderbird").
> 2. Rename the archive folder (full path now "Local
> Folders/Archives/NewName/Auto Thunderbird"); I used right-click on folder in
> folder pane, select "Rename", edit "Enter the new name for your folder"
> field, "Rename"

Folder, which is the target of archive operation can not be renamed normally.
Can you reproduce the issue now?
Flags: needinfo?(kunci)
(In reply to Hiroyuki Ikezoe (:hiro, offline; no animaions 3-7 April) from comment #4)
> (In reply to Marcin Struzak from comment #0)
> > User Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like
> > Gecko) Chrome/33.0.1750.70 Safari/537.36
> > 
> > Steps to reproduce:
> > 
> > 1. Start with an IMAP account with an Archive setting to "Keep message
> > archives in: Other" with Other being a subfolder in Local Folders (full path
> > "Local Folders/Archives/OldName/Auto Thunderbird").
> > 2. Rename the archive folder (full path now "Local
> > Folders/Archives/NewName/Auto Thunderbird"); I used right-click on folder in
> > folder pane, select "Rename", edit "Enter the new name for your folder"
> > field, "Rename"
> 
> Folder, which is the target of archive operation can not be renamed normally.

The folder named "Archives" specified in account settings cannot be renamed. However the subfolders of Archives CAN be renamed. And the next archive attempt recreates subfolder.

But a scenario which does fail:
1. Local Folders\parentFolderA\Archives
2. set imap account's archive to "Archives"
3. rename parentFolderA to parentFolderB
4. perform Archive 

Result - message goes into oblivion.  This happens also if target is in imap account and not Local Folders [1].  In both cases, target folder in Account Settings shows as "Choose Folder".

Certainly, the Archive function should not be moving a message before checking if the target exists.

However, perhaps a total solution includes requiring archive target to not be a subfolder of another folder. Which is essentially what is enforced in account settings "Keep messages in" ""Archive" Folder on".

[1] after parent of imap Archive folder renamed 
Timestamp: 4/3/2016 11:57:58 AM
Error: Archive failed to create folder: 2153054241
Source File: chrome://messenger/content/mailWindowOverlay.js
Line: 1854
Severity: normal → critical
Status: UNCONFIRMED → NEW
Component: Untriaged → Account Manager
Ever confirmed: true
Flags: needinfo?(kunci) → needinfo?(acelists)
Keywords: dataloss
Summary: Lost messages when archiving after archive target in local folders renamed → Achive loses message if target folder not available because target is Other in account settings and a folder in the path was renamed
So we could:
1. track if the archive target has changed/renamed, including it's parents (could be hard).
2. if we already have code that prevents renaming a folder that is and archive target, maybe there is a reason. We could maybe prevent rename of a folder if any of its children is a target of archiving.
Flags: needinfo?(acelists) → needinfo?(mkmelin+mozilla)
Both alternatives are find by me.
Flags: needinfo?(mkmelin+mozilla)
s/find/fine/
Summary: Achive loses message if target folder not available because target is Other in account settings and a folder in the path was renamed → Archive loses message if target folder not available, because target is Other in account settings and a folder in the path was renamed
See Also: → 1498176

I vote for #2

In the process of migrating remaining bugs to the new severity system, the severity for this bug cannot be automatically determined. Please retriage this bug using the new severity system.

Severity: critical → --
You need to log in before you can comment on or make changes to this bug.