[horde] Allowed memory exhausted in Horde/Imap/Client/Ids.php:178
Bjoern Voigt
bjoernv at arcor.de
Thu Apr 28 10:15:27 UTC 2016
I can't login in my Horde 5.2 (current) account anymore.
The error message is:
Allowed memory size of 134217728 bytes exhausted (tried to allocate
7783056 bytes)
1. Horde_ErrorHandler::catchFatalError()
Details
[...]
ErrorException Object
(
[message:protected] => Allowed memory size of 134217728 bytes exhausted (tried to allocate 7783056 bytes)
[string:Exception:private] =>
[code:protected] => 0
[file:protected] => /usr/share/php/Horde/Imap/Client/Ids.php
[line:protected] => 179
[trace:Exception:private] => Array
(
[0] => Array
(
[function] => catchFatalError
[class] => Horde_ErrorHandler
[type] => ::
[args] => Array
(
)
)
)
[previous:Exception:private] =>
[severity:protected] => 1
[logged] => 1
)
I debugged this. The crash occurs here:
if (!$this->duplicates) {
Horde::log(sprintf('IMAP IDs %d ids=%s.', count($this->_ids), implode(",", $this->_ids)), 'ERR');
$this->_ids = (count($this->_ids) > 25000)
? array_unique($this->_ids)
: array_keys(array_flip($this->_ids));
}
Increasing Apache/PHP memory does not solve the problem. Currently I
have increased PHP memory from 128 to 512 MB.
During crash the variable $ids has the value
"1:486128,486130,486132:486327,486330:486331,486334:486335,486347,486352:486353,486355,486361:486366,486432:486514,486518:486522,486526:486528,486560:486569".
$this->_ids is a very long array starting with 1,2,3 and ending with
45005,45006,45007.
Both variables are NOT from the same login.
I think the "1" in $ids causes the problem, because all IDs between 1
and 486128 (1,2,3...486128) make the array so big.
Currently I can login again. But I am unsure, if this problem comes again.
Greetings,
Björn
More information about the horde
mailing list