Summary | The folder "sent-mail" already exists |
Queue | IMP |
Queue Version | 4.3 |
Type | Bug |
State | Resolved |
Priority | 1. Low |
Owners | slusarz (at) horde (dot) org |
Requester | voyager (at) centrum (dot) cz |
Created | 12/01/2008 (6068 days ago) |
Due | |
Updated | 01/13/2010 (5660 days ago) |
Assigned | 02/23/2009 (5984 days ago) |
Resolved | 03/11/2009 (5968 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
Bug #7745: Fix cache expiration when deleting a mailboxhttp://git.horde.org/diff.php/imp/docs/CHANGES?rt=horde-git&r1=0041e0fdad86a56507ed10f8ed09d320f5c85653&r2=4547574f667d07fc6b8166f70bd03a46066e2619
http://git.horde.org/diff.php/imp/lib/Imap/Tree.php?rt=horde-git&r1=bfbe62291560ddf3d2abc5053bdbec8f04568c6d&r2=4547574f667d07fc6b8166f70bd03a46066e2619
different from the Git fix
(http://lists.horde.org/archives/commits/2009-March/000663.html).
bug is fixed here.
Thanks a lot.
different from the Git fix
(http://lists.horde.org/archives/commits/2009-March/000663.html).
http://cvs.horde.org/diff.php/imp/docs/CHANGES?rt=horde&r1=1.699.2.384&r2=1.699.2.385&ty=u
http://cvs.horde.org/diff.php/imp/lib/IMAP/Tree.php?rt=horde&r1=1.25.2.68&r2=1.25.2.69&ty=u
appears in arrays _parent:protected and _tree:protected (which is the
expected behaviour I guess) but not in array _fulllist:protected.
New Attachment: log_imaptree.txt
+ Horde::logMessage(print_r($imaptree,true), __FILE__, __LINE__,
PEAR_LOG_ERR);
$flist = $imaptree->getPollList(true, true);
+ Horde::logMessage(print_r($imaptree,true), __FILE__, __LINE__,
PEAR_LOG_ERR);
Sent disappear in _parent:protected but still there in
_fulllist:protected before calling $flist =
$imaptree->getPollList(true, true);
Sent reappear everywhere after calling getPollList.
See attached log file. Log file contains login and running maintenance.
statements around getPollList(), i.e.:
/* Create Virtual INBOX with nav_poll list. Filter out any nav_poll
* entries that don't exist. Sort the list also. */
print_r($imaptree);
$flist = $imaptree->getPollList(true, true);
print_r($imaptree);
And see if the sent folder is reappearing in $imaptree after this call.
$_prefs['use_vinbox']['value'] to 0 (or 1) solves the problem on both
imp-git and the old imp-cvs.
Virtual Inbox off, this is fixed?
If Virtual Inbox is off, no matter what Virtual Trash is set to
(on/off), this is fixed using both version of imp, old cvs and latest
git.
$_prefs['use_vinbox']['value'] to 0 (or 1) solves the problem on both
imp-git and the old imp-cvs.
Virtual Inbox off, this is fixed?
$_prefs['use_vinbox']['value'] to 0 (or 1) solves the problem on both
imp-git and the old imp-cvs.
State ⇒ Feedback
You may want to debug IMP_Folder::_onDelete() because IMP_IMAP_Tree
is manipulated by various functions called in there also.
New Attachment: config.tgz
IMAP server ?
and I get the same behaviour :-(
I deleted the user's pref before testing :
mysql> delete from horde_prefs where pref_uid='ronan';
login into horde, logout, then
mysql> update horde_prefs set pref_value='1230048685' where
pref_uid='ronan' and pref_name ='last_maintenance';
I've attached horde and imp-git config files. Can someone reproduce
with those config files ?
OS : Fedora
server ?
Assigned to Michael Slusarz
State ⇒ Assigned
gain by the ticket remaining open.
folder doesn't exist on the IMAP server. So, on the server, the Sent
folder has been renamed as Sent-12-2008.
--- Folder.php.org 2009-01-07 15:31:15.000000000 +0100
+++ Folder.php 2009-01-07 15:28:36.000000000 +0100
@@ -401,12 +401,12 @@
imap_subscribe($imp_imap->stream(), $server . $folder_new);
}
}
-
+ $GLOBALS['notification']->push(__FILE__ . ' line ' . __LINE__ . ' '
. print_r($imaptree->_parent,true));
if (!empty($deleted)) {
$imaptree->rename($deleted, $inserted);
$this->_onDelete($deleted);
}
-
+ $GLOBALS['notification']->push(__FILE__ . ' line ' . __LINE__ . ' '
. print_r($imaptree->_parent,true));
return true;
}
--- Tree.php.org 2009-01-07 15:31:16.000000000 +0100
+++ Tree.php 2009-01-07 15:29:18.000000000 +0100
@@ -1691,7 +1691,8 @@
*/
function rename($old, $new)
{
- foreach ($old as $key => $val) {
+ $GLOBALS['notification']->push(__FILE__ . ' line ' . __LINE__ . ' '
. print_r($this->_parent,true));
+ foreach ($old as $key => $val) {
$polled = (isset($this->_tree[$val])) ?
$this->isPolled($this->_tree[$val]) : false;
if ($this->delete($val)) {
$this->insert($new[$key]);
@@ -1700,7 +1701,8 @@
}
}
}
- }
+ $GLOBALS['notification']->push(__FILE__ . ' line ' . __LINE__ . ' '
. print_r($this->_parent,true));
+ }
This is what I get :
/var/www/html/horde/imp/lib/Folder.php line 404 Array
(
[%] => Array
(
[0] => INBOX
[1] => INBOX.Brouillon
[2] => INBOX.Sent
[3] => INBOX.Sent-07-2008
[4] => INBOX.Sent-08-2008
[5] => INBOX.Sent-09-2008
[6] => INBOX.Sent-10-2008
[7] => INBOX.Sent-nov-2008
[8] => INBOX.ShareRonan
[9] => INBOX.Spam
[10] => INBOX.Trash
[11] => Dossiers partagés%
[12] => Dossiers virtuels%
)
[Dossiers virtuels%] => Array
(
[0] => **search_ff9dsrqr8m0c8kcw4084
)
)
/var/www/html/horde/imp/lib/IMAP/Tree.php line 1694 Array
(
[%] => Array
(
[0] => INBOX
[1] => INBOX.Brouillon
[2] => INBOX.Sent
[3] => INBOX.Sent-07-2008
[4] => INBOX.Sent-08-2008
[5] => INBOX.Sent-09-2008
[6] => INBOX.Sent-10-2008
[7] => INBOX.Sent-nov-2008
[8] => INBOX.ShareRonan
[9] => INBOX.Spam
[10] => INBOX.Trash
[11] => Dossiers partagés%
[12] => Dossiers virtuels%
)
[Dossiers virtuels%] => Array
(
[0] => **search_ff9dsrqr8m0c8kcw4084
)
)
/var/www/html/horde/imp/lib/IMAP/Tree.php line 1704 Array
(
[%] => Array
(
[0] => INBOX
[1] => INBOX.Brouillon
[2] => INBOX.Sent-07-2008
[3] => INBOX.Sent-08-2008
[4] => INBOX.Sent-09-2008
[5] => INBOX.Sent-10-2008
[6] => INBOX.Sent-nov-2008
[7] => INBOX.ShareRonan
[8] => INBOX.Spam
[9] => INBOX.Trash
[10] => Dossiers partagés%
[11] => Dossiers virtuels%
[12] => INBOX.Sent-12-2008
)
[Dossiers virtuels%] => Array
(
[0] => **search_ff9dsrqr8m0c8kcw4084
)
)
/var/www/html/horde/imp/lib/Folder.php line 409 Array
(
[%] => Array
(
[0] => INBOX
[1] => INBOX.Brouillon
[2] => INBOX.Sent
[3] => INBOX.Sent-07-2008
[4] => INBOX.Sent-08-2008
[5] => INBOX.Sent-09-2008
[6] => INBOX.Sent-10-2008
[7] => INBOX.Sent-12-2008
[8] => INBOX.Sent-nov-2008
[9] => INBOX.ShareRonan
[10] => INBOX.Spam
[11] => INBOX.Trash
[12] => Dossiers partagés%
[13] => Dossiers virtuels%
)
[Dossiers virtuels%] => Array
(
[0] => **search_ff9dsrqr8m0c8kcw4084
)
)
I can't find out why folder INBOX.Sent is gone from the tree at the
end of function IMP_Tree::rename (which is the expected behaviour) and
is back at the end of function IMP_Folder::rename!
for themselves since none of the devs can reproduce. I don't have
any specific pointers on how to debug either - you're just going to
have to trace the code and related data structures (i.e. IMP_Tree) to
see where the error resides.
$conf['server']['cache_folders'] = false;
$conf['server']['cachejs'] = 'none';
$conf['server']['cachecss'] = 'none';
$conf['msgcache']['use_msgcache'] = false;
$conf['mlistcache']['use_mlistcache'] = false;
If $_prefs['subscribe']['value'] is set to 1, maintenance works perfectly.
If $_prefs['subscribe']['value'] is set to 0, I get 'The folder
"sent-mail" already exists'.
Can someone reproduce this as well ?
State ⇒ Feedback
for themselves since none of the devs can reproduce. I don't have any
specific pointers on how to debug either - you're just going to have
to trace the code and related data structures (i.e. IMP_Tree) to see
where the error resides.
them doing this. I have no idea why. It started after upgrading to
Horde 3.3 and IMP4.3
that the old mailbox is not being removed from the IMP_Tree object
correctly (since exists() uses that object to check for existence),
but I can't reproduce this so someone who sees this will have to
debug.
- The current folder(s) "Sent" will be renamed to "Sent-nov-2008".
- All old linked attachments more than 6 months old will be deleted.
After selecting both options, and clicking on "perform maintenance", I
get the following messages :
# Sent folder being renamed at the start of the month.
# Success The folder "Sent" was successfully renamed to "Sent-nov-2008".
# Warning The folder "Sent" already exists
The Sent folder is visible in the folder tree nav bar but doesn't
exist on the server.
From the Folder Navigator screen, I select "Rebuild Folder Tree" and
the 'Sent' folder disappear from the folder tree nav bar as expected.
I can reproduce the same bug doing this :
- rename "Sent-nov-2008" to "Sent" from IMP
- logout
- set pref "last_maintenance" to "1226660810".
- login + maintenance
-> # Warning The folder "Sent" already exists
we use latest cvs version and courier-imap-4.3.0 and imp pref 'subscribe' = 0
I don't mind debugging but I don't know where to start. Any ideas?
State ⇒ Feedback
that the old mailbox is not being removed from the IMP_Tree object
correctly (since exists() uses that object to check for existence),
but I can't reproduce this so someone who sees this will have to debug.
Priority ⇒ 1. Low
State ⇒ Unconfirmed
Patch ⇒ No
Milestone ⇒
Summary ⇒ The folder "sent-mail" already exists
Type ⇒ Bug
Queue ⇒ IMP
of the month, but it will display after maintenance
- sent-mail folder being renamed at the start of the month.
- The folder "sent-mail" was successfully renamed to "sent-mail-11-2008".
- The folder "sent-mail" already exists
in the left menu "sent-mail" really exists but after sending new email
it says Message sent successfully, but not saved to sent-mail. When I
reload page sent-mail folder disappear then I must logout and login to
Horde and send new mail, the sent-mail will then create again and
works correctly.