[turba] Turba H3 (2.1.3), PHP 5.2, 150, 000+ address book - indefinite stall

James MacLean macleajb at ednet.ns.ca
Mon Jan 1 07:13:28 PST 2007


Hi Folks,

We have been running IMP for quite some time and just started opening up 
the full power of Horde ;). The problem I am reporting has been seen on 
multiple Intel systems (running 32 and 64bit), but the biggest engine 
showing this problem is :

. Linux 2.6.19
. x86_64
. 4 CPUs
. 8G RAM
. Apache 2.2.3
. php 5.2 and 5.2.1RC1 (5.1 actually seems to complete, just slow)
. php memory_limit 1024M (Just to be sure)

Address Book (turba) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=turba> H3 (2.1.3) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=turba> 	Application 
is ready.
Bookmarks (trean) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=trean> 0.1-cvs 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=trean> 	Application 
is ready.
Calendar (kronolith) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=kronolith> H3 
(2.1.4) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=kronolith> 
Application is ready.
EDnet Web E-Mail (horde) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=horde> 3.1.3 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=horde> 	Application 
is ready.
File Manager (gollem) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=gollem> H3 
(1.0.2) 	<http://staff.ednet.ns.ca/admin/setup/config.php?app=gollem> 
Application is ready.
Filters (ingo) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=ingo> H3 (1.1.2) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=ingo> 	Application 
is ready.
Mail (imp) <http://staff.ednet.ns.ca/admin/setup/config.php?app=imp> H3 
(4.1.3) 	<http://staff.ednet.ns.ca/admin/setup/config.php?app=imp> 
Application is ready.
Mobile Mail (mimp) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=mimp> H3 (1.0) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=mimp> 	Application 
is ready.
Notes (mnemo) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=mnemo> H3 (2.1.1) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=mnemo> 	Application 
is ready.
Password (passwd) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=passwd> H3 (3.0) 
<http://staff.ednet.ns.ca/admin/setup/config.php?app=passwd> 
Application is ready.
Tasks (nag) <http://staff.ednet.ns.ca/admin/setup/config.php?app=nag> H3 
(2.1.2)


We have seen this stalling in both sessions management via SQL/hordedb 
and using our large address book (150,000+ entries). What we have found 
is that php hangs sometimes for a short time, sometimes indefinitely. 
Turba's hanging occurs when doing a search returning a large result. The 
code that it stops in is turba/search.php line 54:

    if ((is_array($criteria) && count($criteria)) || !empty($val)) {
        if (($_SESSION['turba']['search_mode'] == 'basic' &&
             is_object($results = $driver->search(array($criteria => 
$val)))) ||
            ($_SESSION['turba']['search_mode'] == 'advanced' &&
             is_object($results = $driver->search($criteria)))) {

and it is in the returning of the search.We know from debug statements 
that turba/lib/Driver/sql.php completes fine (and fast), 
turba/lib/Driver.php completes. Then it appears to be waiting for this 
code to complete. Strace shows the httpd process doing no calls. This 
httpd is consuming 100% CPU.

When we mocked up some php code just to make a similar call through a 
class and test the result from the database, it was returning fast and 
fine. So outside of Horde we were not able to create this same affect.

Our current hack is to add "LIMIT 1000" to those calls. We also have 
added this to the hordedb calls as some of them create a similar situation.

Would any one have any suggestions as to how we can explain/fix what is 
happening?


thanks,
JES


More information about the turba mailing list