[horde] Kronolith ical hangs Imp / Kronolith

Jan Schneider jan at horde.org
Tue Feb 12 13:48:59 UTC 2013


Zitat von Simon Wilson <simon at simonandkate.net>:

> ----- Message from Jan Schneider <jan at horde.org> ---------
>    Date: Tue, 12 Feb 2013 11:57:50 +0100
>    From: Jan Schneider <jan at horde.org>
> Subject: Re: [horde] Kronolith ical hangs Imp / Kronolith
>      To: horde at lists.horde.org
>
>
>> Zitat von Simon Wilson <simon at simonandkate.net>:
>>
>>> Latest H5.0.3, Kronolith 4.0.3
>>>
>>> Issue starts with an appointment sent to me by my wife from the  
>>> old H4 system. When I try and open the appointment email in Imp,  
>>> Imp hangs. Eventually it presents a red box with server  
>>> communication error. Httpd logs indicate php running out of memory:
>>>
>>> [Mon Feb 11 20:03:13 2013] [error] [client 192.168.1.155] PHP  
>>> Fatal error:  Allowed memory size of 134217728 bytes exhausted  
>>> (tried to allocate 512 bytes) in  
>>> /var/www/horde/kronolith/lib/Kronolith.php on line 498, referer:  
>>> https://server.simonandkate.net/imp/dynamic.php?page=mailbox
>>>
>>> Boosted php to 512MB from 128MB, and try again. Same, just takes  
>>> longer to give up:
>>>
>>> [Mon Feb 11 20:27:07 2013] [error] [client 192.168.1.155] PHP  
>>> Fatal error:  Allowed memory size of 536870912 bytes exhausted  
>>> (tried to allocate 77 bytes) in  
>>> /var/www/horde/kronolith/lib/Kronolith.php on line 498, referer:  
>>> https://server.simonandkate.net/imp/dynamic.php?page=mailbox
>>>
>>> Whilst eventually timing out, CPU hits 100% and stays there, httpd process.
>>>
>>> I then tried loading Kronolith on H5 - same thing happens, it  
>>> hangs on "Loading Calendars" in the sidebar.
>>
>> With the same error in the logs?
>
> Not as far as I can see. The 'access an appointment' from Katie  
> action in Imp returns these:
>
> PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted  
> (tried to allocate 101 bytes) in  
> /var/www/horde/kronolith/lib/Kronolith.php on line 498, referer:  
> https://server.simonandkate.net/imp/dynamic.php?page=mailbox
>
> With errors on either line 498, 525, or 526 (that's the only  
> differences, other than a larger memory amount when I boosted it).

That's all the same code part where we build the event list from all  
events retrieved from the calendar backend (remote calendar in your  
case).

> Accessing Kronolith did not generate any httpd or horde log error  
> (albeit Horde was set to CRIT).

You got the meaning of log levels wrong. If you want *more* log  
entries, you need to *lower* the log level, not *raise* it.

> As long as Kronolith was set to access my wife's shared ics Calendar  
> from the h4 system, both actions (open an invite from that person,  
> and open Kronolith) failed by long timeout - the invite with a red  
> error msg in Imp, the opening Kronolith with the never-ending  
> "opening calendars" message.

A timeout should always be accompanied with a log entry, if not in the  
Horde log, then at least in the webserver/php log.

>>> Horde error log, when set to INFO, gives up some useful information:
>>>
>>> 2013-02-11T20:27:43+10:00 WARN: HORDE [kronolith] The remote  
>>> server at  
>>> https://mail.simonandkate.net/rpc.php/kronolith/katie/OPAyfdJO7vlN37eRNqEXFcA.ics doesn't support an WebDAV protocol version 3. [pid 15869 on line 626 of  
>>> "/var/www/horde/kronolith/lib/Driver/Ical.php"]
>>
>> This is unrelated and just a warning.
>
> Removing the ability to access the shared calendar by denying  
> permission at the h4 source allowed h5 Kronolith to run - instantly.  
> It also let me access the appointments. It also removed those  
> warnings. But it's unrelated? It may not be the cause, but seems  
> it's likely 'related'...

Well, it's obviously caused by accessing the remote calendar, but it's  
unrelated to your issue.

>>
>>> mail.simonandkate.net is the old one, and I have Katie's calendar  
>>> published from H4 as an ical. That has been working fine. I can  
>>> open the .ics file that link presents with Outlook and it works  
>>> fine. But now for some reason trying to open an appointment from  
>>> her in Imp, or trying to open Kronolith at all, kills Horde when  
>>> trying to retrieve and access the ical.
>>>
>>> Fixed it by removing share permissions in Katie's calendar (h4),  
>>> then trying to open Kronolith again (h5), and it immediately gives  
>>> me an error, and successfully loads Kronolith.
>>>
>>>
>>> So my thoughts -
>>>
>>> 1. This is really ugly. If it can't open a remote calendar, it  
>>> should fail gracefully, and go around the roadblock.
>>
>> This is a fatal PHP error. Like the name implies, there is no way  
>> to handle those gracefully.
>
> So, our shiny new Horde / Imp system is accessing a third party  
> system (in this instance h4) potentially entirely out of our  
> control, and something about what it gets from that system crashes  
> the shiny new H5 setup. And there is no way that I can see to tell  
> Horde / Imp / Kronolith to NOT try and load that shared calendar,  
> without loading it to see what they are, which you can't because it  
> never loads. What if I didn't have access to the source server? So I  
> would have just borked the system because it's falling over trying  
> to access a shared calendar?

Yes, that's what could happen if there is a bug in software.

> Assuming that you are correct and there is nothing that can be done  
> to stop the fatal php error, what I am saying here is that there  
> should be a way to REMOVE a broken shared calendar before it tries  
> to access it. That is what I mean by handle the situation more  
> gracefully.

Sure there can be something done: finding out why this remote calendar  
is consuming so much memory.

>>> 2. You should be able to remove a remote calendar somehow if it  
>>> does fail to access it.
>>
>> Again, if PHP fatals, there isn't anything we could do.
>>
>>> Is this a known issue, or have I stuffed something up?
>>
>> No idea. Sounds like a infinite loop. You could try installing  
>> xdebug to stop php execution earlier if nesting goes too deep, plus  
>> you would get a backtrace in your error message.
>
> This should be fairly easy to replicate if we wanted to work out if  
> it's really an issue... I can give you access to the ics service on  
> my old h4 system if needed... :) Having said that, I accept that I  
> am probably alone in having stumbled on this combination, and that  
> noone else probably cares at all LOL.

A backtrace would be start. The ics file or url location could help too.
-- 
Jan Schneider
The Horde Project
http://www.horde.org/



More information about the horde mailing list