[#7681] changes to lib/IMAP/Tree.php cause folder list to fail
Summary changes to lib/IMAP/Tree.php cause folder list to fail
Queue IMP
Queue Version 4.3
Type Bug
State No Feedback
Priority 1. Low
Owners
Requester guy+horde (dot) org (at) mombe (dot) org
Created 11/13/2008 (233 days ago)
Due
Updated 12/16/2008 (200 days ago)
Assigned 11/14/2008 (232 days ago)
Resolved 12/16/2008 (200 days ago)
Attachments
Milestone
Patch No

History
12/16/2008 Michael Slusarz State ⇒ No Feedback
 
12/05/2008 Michael Slusarz Comment #6 Reply to this comment

[Hide Quoted Text]
OK - add print_r($_SESSION['imp']['cache']['imp_tree']) directly
above line 220.
IMP_Tree Object
(
     [_tree] => Array
         (
             [%] => Array
                 (
                     [a] => 64
                     [v] => %
                 )
If that is indeed what is stored in your 
$_SESSION['imp']['cache']['imp_tree'], I have no idea what is wrong 
with your installation.  $_SESSION['imp']['cache']['imp_tree'] is set 
in one location in the code, and in that location it is serialized.   
Your data is not serialized.

Maybe this patch will help:
http://cvs.horde.org/diff.php/imp/lib/IMAP/Tree.php?r1=1.25.2.60&r2=1.25.2.61
12/04/2008 guy+horde (dot) org (at) mombe (dot) org Comment #5 Reply to this comment
Please add a print_r($instance) statement directly above line 220 and
report the results.
The result is simply the string "5".
OK - add print_r($_SESSION['imp']['cache']['imp_tree']) directly 
above line 220.
IMP_Tree Object
(
     [_tree] => Array
         (
             [%] => Array
                 (
                     [a] => 64
                     [v] => %
                 )

             [INBOX] => Array
                 (
                     [a] => 40
                     [c] => 0
                     [p] => %
                     [v] => INBOX
                     [l] => Inbox
                 )

             [INBOX.Drafts] => Array
                 (
                     [a] => 8
                     [c] => 0
                     [p] => %
                     [v] => INBOX.Drafts
                     [l] => Drafts
                 )

             [INBOX.sent-mail] => Array
                 (
                     [a] => 8
                     [c] => 0
                     [p] => %
                     [v] => INBOX.sent-mail
                     [l] => sent-mail
                 )

             [INBOX.SPAM] => Array
                 (
                     [a] => 8
                     [c] => 0
                     [p] => %
                     [v] => INBOX.SPAM
                     [l] => SPAM
                 )

             [INBOX.Trash] => Array
                 (
                     [a] => 8
                     [c] => 0
                     [p] => %
                     [v] => INBOX.Trash
                     [l] => Trash
                 )

             [user] => Array
                 (
                     [a] => 67
                     [c] => 0
                     [p] => %
                     [v] => user
                     [l] => user
                 )

             [user.helpdesk] => Array
                 (
                     [a] => 8
                     [c] => 1
                     [p] => user
                     [v] => user.helpdesk
                     [l] => helpdesk
                 )

             [user.mailarpwatch] => Array
                 (
                     [a] => 8
                     [c] => 1
                     [p] => user
                     [v] => user.mailarpwatch
                     [l] => mailarpwatch
                 )

             [user.mailroot] => Array
                 (
                     [a] => 72
                     [c] => 1
                     [p] => user
                     [v] => user.mailroot
                     [l] => mailroot
                 )

             [user.mailroot.novell] => Array
                 (
                     [a] => 8
                     [c] => 2
                     [p] => user.mailroot
                     [v] => user.mailroot.novell
                     [l] => novell
                 )

             [user.mailroot.TEST] => Array
                 (
                     [a] => 8
                     [c] => 2
                     [p] => user.mailroot
                     [v] => user.mailroot.TEST
                     [l] => TEST
                 )

             [user.mailsystems] => Array
                 (
                     [a] => 72
                     [c] => 1
                     [p] => user
                     [v] => user.mailsystems
                     [l] => mailsystems
                 )

             [user.mailsystems.DSL] => Array
                 (
                     [a] => 8
                     [c] => 2
                     [p] => user.mailsystems
                     [v] => user.mailsystems.DSL
                     [l] => DSL
                 )

             [user.mailsystems.Meal Booking] => Array
                 (
                     [a] => 8
                     [c] => 2
                     [p] => user.mailsystems
                     [v] => user.mailsystems.Meal Booking
                     [l] => Meal Booking
                 )

             [user.mailsystems.ResNet] => Array
                 (
                     [a] => 8
                     [c] => 2
                     [p] => user.mailsystems
                     [v] => user.mailsystems.ResNet
                     [l] => ResNet
                 )

             [user.mailsystems.SEALS] => Array
                 (
                     [a] => 8
                     [c] => 2
                     [p] => user.mailsystems
                     [v] => user.mailsystems.SEALS
                     [l] => SEALS
                 )

             [user.mailsystems.TENET] => Array
                 (
                     [a] => 8
                     [c] => 2
                     [p] => user.mailsystems
                     [v] => user.mailsystems.TENET
                     [l] => TENET
                 )

             [user.mailsystems.Thawte] => Array
                 (
                     [a] => 8
                     [c] => 2
                     [p] => user.mailsystems
                     [v] => user.mailsystems.Thawte
                     [l] => Thawte
                 )

             [user.mailsystems.TO DO] => Array
                 (
                     [a] => 8
                     [c] => 2
                     [p] => user.mailsystems
                     [v] => user.mailsystems.TO DO
                     [l] => TO DO
                 )

             [user.mailsystems.Wireless] => Array
                 (
                     [a] => 8
                     [c] => 2
                     [p] => user.mailsystems
                     [v] => user.mailsystems.Wireless
                     [l] => Wireless
                 )

         )

     [_currparent] =>
     [_currkey] =>
     [_currstack] => Array
         (
         )

     [_showunsub] => 1
     [_parent] => Array
         (
             [%] => Array
                 (
                     [0] => INBOX
                     [1] => INBOX.Drafts
                     [2] => INBOX.sent-mail
                     [3] => INBOX.SPAM
                     [4] => INBOX.Trash
                     [5] => user
                 )

             [user] => Array
                 (
                     [0] => user.helpdesk
                     [1] => user.mailarpwatch
                     [2] => user.mailroot
                     [3] => user.mailsystems
                 )

             [user.mailroot] => Array
                 (
                     [0] => user.mailroot.novell
                     [1] => user.mailroot.TEST
                 )

             [user.mailsystems] => Array
                 (
                     [0] => user.mailsystems.DSL
                     [1] => user.mailsystems.Meal Booking
                     [2] => user.mailsystems.ResNet
                     [3] => user.mailsystems.SEALS
                     [4] => user.mailsystems.TENET
                     [5] => user.mailsystems.Thawte
                     [6] => user.mailsystems.TO DO
                     [7] => user.mailsystems.Wireless
                 )

         )

     [_poll] => Array
         (
             [INBOX] => 1
         )

     [_expanded] => Array
         (
             [Virtual Folders] => 1
         )

     [_subscribed] =>
     [_changed] => 1
     [_unsubview] => 1
     [_imap_sort] => IMAP_Sort Object
         (
             [_delimiter] => .
             [_sortinbox] => 1
         )

     [_server] => {localhost:143/imap/notls}
     [_delimiter] => .
     [_namespaces] => Array
         (
             [INBOX.] => Array
                 (
                     [name] => INBOX.
                     [delimiter] => .
                     [type] => personal
                     [hidden] =>
                 )

             [user.] => Array
                 (
                     [name] => user.
                     [delimiter] => .
                     [type] => other
                     [hidden] =>
                 )

             [] => Array
                 (
                     [name] =>
                     [delimiter] => .
                     [type] => shared
                     [hidden] =>
                 )

         )

     [_eltdiff] =>
     [_forceopen] =>
)


12/03/2008 Michael Slusarz Comment #4 Reply to this comment
Please add a print_r($instance) statement directly above line 220 and
report the results.
The result is simply the string "5".
OK - add print_r($_SESSION['imp']['cache']['imp_tree']) directly above 
line 220.
11/14/2008 guy+horde (dot) org (at) mombe (dot) org Comment #3 Reply to this comment
Please add a print_r($instance) statement directly above line 220 
and report the results.
The result is simply the string "5".
11/14/2008 Michael Slusarz Comment #2
Priority ⇒ 1. Low
State ⇒ Feedback
Reply to this comment
[11-Nov-2008 23:13:21] PHP Warning:  register_shutdown_function() 
[<a 
href='function.register-shutdown-function'>function.register-shutdown-function</a>]: Invalid shutdown callback 'b::_store' passed in /usr/local/www/horde/imp/lib/IMAP/Tree.php on line 
220
Please add a print_r($instance) statement directly above line 220 and 
report the results.

[Hide Quoted Text]
I've established that it is a particular commit that introduces the 
error that I'm experiencing.  If I change lib/IMAP/Tree.php to 
version:

   $Horde: imp/lib/IMAP/Tree.php,v 1.25.2.50 2008/06/06 18:00:17 slusarz Exp $

out of the CVS repository, things appear to work as I expect.  If, 
however, I use version:

   $Horde: imp/lib/IMAP/Tree.php,v 1.25.2.51 2008/06/15 07:06:39 slusarz Exp $
This unfortunately tells us nothing, because that was the commit 
(1,000+ changed lines) that implemented the new IMAP_Tree internals.   
So everything changed with that commit.
11/13/2008 guy+horde (dot) org (at) mombe (dot) org Comment #1
Patch ⇒
Milestone ⇒
Summary ⇒ changes to lib/IMAP/Tree.php cause folder list to fail
Type ⇒ Bug
State ⇒ Unconfirmed
Priority ⇒ 2. Medium
Queue ⇒ IMP
Reply to this comment
I'm running Horde 3.3/IMP 4.3 out of the FreeBSD ports system 
(www/horde-base & mail/horde-imp) under PHP 5.2.6/Apache 2.0.63.  IMP 
is configured to connect to a remote IMAP server running Cyrus 2.2.13.

The version of lib/IMAP/Tree.php included in the 4.3 tarball causes 
the IMAP "Folders" button page to crash.  No folder list is displayed 
to the user, and the error message in my logs is:

[11-Nov-2008 23:13:21] PHP Warning:  register_shutdown_function() [<a 
href='function.register-shutdown-function'>function.register-shutdown-function</a>]: Invalid shutdown callback 'b::_store' passed in /usr/local/www/horde/imp/lib/IMAP/Tree.php on line 
220
[11-Nov-2008 23:13:21] PHP Fatal error:  Call to a member function 
build() on a non-object in /usr/local/www/horde/imp/folders.php on 
line 345

I've established that it is a particular commit that introduces the 
error that I'm experiencing.  If I change lib/IMAP/Tree.php to version:

   $Horde: imp/lib/IMAP/Tree.php,v 1.25.2.50 2008/06/06 18:00:17 slusarz Exp $

out of the CVS repository, things appear to work as I expect.  If, 
however, I use version:

   $Horde: imp/lib/IMAP/Tree.php,v 1.25.2.51 2008/06/15 07:06:39 slusarz Exp $

or later, the problem appears.  I'm guessing its one of the changes in 
1.25.2.51 that introduces the problem, but I have been unable to 
isolate it further than that.

The problem also affects DIMP 1.1, since it makes use of IMP's library 
functions.  In DIMP's case, the mailbox pane simply doesn't load.   
Similar errors are produced in the logs:

[11-Nov-2008 21:57:02] PHP Warning:  register_shutdown_function() [<a 
href='func
tion.register-shutdown-function'>function.register-shutdown-function</a>]: 
Inval
id shutdown callback 'b::_store' passed in 
/usr/local/www/horde/imp/lib/IMAP/Tre
e.php on line 220
[11-Nov-2008 21:57:02] PHP Fatal error:  Call to a member function 
folderList()
on a non-object in /usr/local/www/horde/dimp/imp.php on line 283