[horde] PHP7 : Memory eater bug? -> infinite recursion, getting closer :)

Michael J Rubinsky mrubinsk at horde.org
Fri Feb 17 05:59:30 UTC 2017


Quoting Torben Dannhauer <torben at dannhauer.info>:

> Zitat von Torben Dannhauer <torben at dannhauer.info>:
>
>> Hi,
>>
>>
>>
>> Yesterday I discovered a lot of errors thrown by PHP7 due to my memory
>> limit.
>>
>>
>>
>> I get lots of errors like this:
>>
>> <snip>
>>
>> [13-Feb-2017 09:57:35 Europe/Berlin] PHP Fatal error:  Allowed memory size
>> of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in
>> /var/www/torben/web/ssl-dannhauer.de/horde/mnemo/lib/Mnemo.php on line 537
>>
>> [13-Feb-2017 09:57:35 Europe/Berlin] PHP Fatal error:  Allowed memory size
>> of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in
>> /usr/share/php/Horde/ErrorHandler.php on line 193
>>
>> [13-Feb-2017 09:58:08 Europe/Berlin] PHP Fatal error:  Allowed memory size
>> of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in
>> /var/www/torben/web/ssl-dannhauer.de/horde/mnemo/lib/Mnemo.php on line 537
>>
>> [13-Feb-2017 09:58:08 Europe/Berlin] PHP Fatal error:  Allowed memory size
>> of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in
>> /usr/share/php/Horde/ErrorHandler.php on line 193
>>
>> <snap>
>>
>>
>>
>> It doesn't matter whether my limit is configured as 512M, 2G or 3G. Anyway,
>> a limit exceed in that order of memory is very likely to be a bug.
>>
>> Unfortunatly I do not have a clue how to start debugging here. The System
>> itself shows of course only the processes, not the memory consumption of
>> every running script.
>>
>>
>>
>> Any hints whjere to start?
>>
>>
>>
>> Many thanks,
>>
>> Torben
>>
>
>
>
> I'm getting closer to the problem.
>
> I installed xdebug to dive deeper into the issue and discovered that  
> the error does not longer occur as long als xdebug is loaded into PHP.
> Screening the tons of logs produced by xdebug, I sawthat xedebug  
> cancels the execution due to the max_nesting level. So the error  
> still DOES occur, but is catched by xdebug and announced in the  
> loggs with different message.
> Here is the full log, it indicates an endless recursion in mnemo -  
> whit fits perfect to the picture of this issue:
>
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP Fatal error:  Maximum  
> function nesting level of '256' reached, aborting! in  
> /usr/share/php/Horde/ErrorHandler.php on line 193
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP Stack trace:
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP   1. {main}()  
> <webroot>/horde/rpc.php:0
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP   2.  
> Horde_Rpc_ActiveSync->getResponse() <webroot>/horde/rpc.php:160
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP   3.  
> Horde_ActiveSync->handleRequest()  
> /usr/share/php/Horde/Rpc/ActiveSync.php:143
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP   4.  
> Horde_ActiveSync_Request_Base->handle()  
> /usr/share/php/Horde/ActiveSync.php:834
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP   5.  
> Horde_ActiveSync_Request_Ping->_handle()  
> /usr/share/php/Horde/ActiveSync/Request/Base.php:253
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP   6.  
> Horde_ActiveSync_Collections->pollForChanges()  
> /usr/share/php/Horde/ActiveSync/Request/Ping.php:222
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP   7.  
> Horde_ActiveSync_Collections->getCollectionChangeCount()  
> /usr/share/php/Horde/ActiveSync/Collections.php:1222
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP   8.  
> Horde_ActiveSync_Collections->getCollectionChanges()  
> /usr/share/php/Horde/ActiveSync/Collections.php:1417
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP   9.  
> Horde_ActiveSync_State_Base->getChanges()  
> /usr/share/php/Horde/ActiveSync/Collections.php:1401
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP  10.  
> Horde_Core_ActiveSync_Driver->getServerChanges()  
> /usr/share/php/Horde/ActiveSync/State/Base.php:437
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP  11.  
> Horde_Core_ActiveSync_Connector->getChanges()  
> /usr/share/php/Horde/Core/ActiveSync/Driver.php:1112
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP  12.  
> Horde_Registry_Caller->getChangesByModSeq()  
> /usr/share/php/Horde/Core/ActiveSync/Connector.php:1098
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP  13.  
> Horde_Registry_Caller->__call()  
> /usr/share/php/Horde/Core/ActiveSync/Connector.php:1098
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP  14. Horde_Registry->call()  
> /usr/share/php/Horde/Registry/Caller.php:41
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP  15.  
> Horde_Registry->callByPackage() /usr/share/php/Horde/Registry.php:1088
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP  16.  
> Mnemo_Api->getChangesByModSeq() /usr/share/php/Horde/Registry.php:1131
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP  17.  
> Mnemo_Api->getChanges() <webroot>/horde/mnemo/lib/Api.php:135
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP  18. Mnemo_Api->listBy()  
> <webroot>/horde/mnemo/lib/Api.php:117
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP  19. Mnemo_Api->listBy()  
> <webroot>/horde/mnemo/lib/Api.php:158
> [.... and so on...]
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP 252. Mnemo_Api->listBy()  
> <webroot>/horde/mnemo/lib/Api.php:158
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP 253. Mnemo_Api->listBy()  
> <webroot>/horde/mnemo/lib/Api.php:158
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP 254.  
> Mnemo::getSyncNotepads() <webroot>/horde/mnemo/lib/Api.php:155
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP 255.  
> Horde_Prefs->getValue() <webroot>/horde/mnemo/lib/Mnemo.php:538
> [16-Feb-2017 13:20:50 Europe/Berlin] PHP 256.  
> Horde_Prefs->_getScope() /usr/share/php/Horde/Prefs.php:289
>
> I'm happy to get any hint what might be the reason. I assume  
> something to do with PHP7 ;)

Can you see what Mnemo::getSyncNotepads(); returns? Easiest way would  
be to use admin->phpshell from within horde, be sure to choose the  
Mnemo scope from the drop down menu.


> Thanks,
> Torben
>
>
>
>
>
>
>
> -- 
> Horde mailing list
> Frequently Asked Questions: http://horde.org/faq/
> To unsubscribe, mail: horde-unsubscribe at lists.horde.org



-- 
mike
The Horde Project
http://www.horde.org
https://www.facebook.com/hordeproject
https://www.twitter.com/hordeproject
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3282 bytes
Desc: S/MIME Signature
URL: <https://lists.horde.org/archives/horde/attachments/20170217/d8008198/attachment.bin>


More information about the horde mailing list