[Tickets #12124] Re: horde crashes with php memory exhaustion

noreply at bugs.horde.org noreply at bugs.horde.org
Fri Jun 7 19:26:57 UTC 2013


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/12124
------------------------------------------------------------------------------
  Ticket             | 12124
  Updated By         | dpa-bugs at aegee.org
  Summary            | horde crashes with php memory exhaustion
  Queue              | Horde Framework Packages
  Version            | Git master
  Type               | Bug
  State              | Resolved
  Priority           | 1. Low
  Milestone          |
  Patch              |
  Owners             |
------------------------------------------------------------------------------


dpa-bugs at aegee.org (2013-06-07 19:26) wrote:

I can confirm, that the issue appeared with the upgrade from Horde  
Core 2.4.1 to Horde Core 2.4.3 and still exists in the newest releases.

On my system, Registry.php, function importConfig() calls
   $config = Horde::loadConfiguration('conf.php', 'conf', $app);
which in turns calls Horde.php, ::loadConfiguration().  Around line  
350 in the file, there is a loop

while (list($file, $log_check) = each($filelist))

This loop is executed around 1550 times, never terminates and leads to  
exhausting the memory.  At the beginning of the loop I inserted

   echo "file = $file, log_check=$log_check, filelist=";
   print_r ($filelist);
   echo "</br>";

this prints then 1550 times
   file = /mnt/new/home/htdocs/webmail/lib/../config/conf.php,  
log_check=1, filelist=Array (  
[/mnt/new/home/htdocs/webmail/lib/../config/conf.php] => 1 )

The snipped modifying $filelist

                 if (!empty($conf['vhosts'])) {
                     $file = $config_dir . 'conf-' .  
$conf['server']['name'] . '.php';
                     if (file_exists($file)) {
                         $filelist[$file] = 0;
                     }
                 }

is never executed (I have no vhosts), so filelist is not changed.

The preceeding condition
   if (!$vhost_added && $app == 'horde' && $config_file == 'conf.php')

is matched only on the first iteration of the while loop.

Any ideas why doesn't the loop terminate

I have php 5.3.23 run in php-fpm with xcache.





More information about the bugs mailing list