[Tickets #4891] api calls fail with postgres datatree without persistent connections
bugs@bugs.horde.org
bugs at bugs.horde.org
Sun Jan 14 01:04:35 PST 2007
DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.
Ticket URL: http://bugs.horde.org/ticket/?id=4891
-----------------------------------------------------------------------
Ticket | 4891
Created By | stromsoe at gmail.com
Summary | api calls fail with postgres datatree without persistent connections
Queue | Turba
Version | 2.1.3
Type | Bug
State | Unconfirmed
Priority | 1. Low
Owners |
-----------------------------------------------------------------------
stromsoe at gmail.com (2007-01-14 01:04) wrote:
When I run other horde applications that use the turba api calls, I end up
with a blank screen.
php 5.2.0
apache 2.0.59
postgresql 8.2.0
horde, imp, kronolith, mnemo, nag, turba - all current stable
horde is configured with postgres for the datatree.
turba is also configured to use postgres for personal address books.
The bug triggers in IMP if I am viewing an email and click on the Notebook
icon to add an email to address book. It also triggers if I try to view an
HTML attachment with images (the call to check if the sender is in the
address book fails).
I've traced the bug as follows:
calls from Registry.php:
1. the registry function call() calls callByPackage()
2. callByPackage() calls pushApp() to push the application context
3. pushApp() calls hasPermission()
4. hasPermission() calls $GLOBALS['perms']->hasPermission()
calls from Perms/datatree.php
5. hasPermission() calls getPermissions()
6. getPermissions() calls getPermission()
7. getPermission() calls $this->_datatree->getObject()
calls from DataTree.php
8. getObject() calls getId() and feeds the results to getData() from
DataTree/sql.php
calls from DataTree/sql.php
9. getData() calls $this->_db->getRow(), which fails and returns a
PEAR_Error because the database connection no longer exists
10. immediately after the call to getRow(), Horde_Serialize::unserialize()
is called with data from $row that doesn't exist and PHP bails with a blank
screen.
There is no check for a Pear_Error after 9.
If I use persistent SQL connections I don't see this at all. This is 100%
repeatable in my environment.
More information about the bugs
mailing list