[dev] [commits] Horde branch master updated. a8e51349c3fdc229031b6adc0d9427cddb74f58a

Chuck Hagenbuch chuck at horde.org
Sat Jan 15 04:31:33 UTC 2011


Quoting Michael M Slusarz <slusarz at horde.org>:

> Quoting Gunnar Wrobel <wrobel at horde.org>:
>
>> Zitat von Chuck Hagenbuch <chuck at horde.org>:
>>
>>> The branch "master" has been updated.
>>> The following is a summary of the commits.
>>>
>>> from: 4be9708dce08631e20adfd1a5422b694afbe503d
>>>
>>> a8e5134 What does this flush() do? With it, DIMP whitescreens for  
>>> me; without it, it seems to work fine.
>>
>> I don't think the flush() is the problem. But I ran into exactly  
>> the same problem here. I did commit this
>>
>> http://git.horde.org/diff.php/framework/Core/lib/Horde.php?r1=9210c133af8982e6336e20dc9e5bd70a24086b3e&r2=f22195496067ce9bc640408429db8b2b7e65b9cf
>>
>> to get rid of the problem.
>>
>> The recent
>>
>> http://git.horde.org/horde-git/-/commit/28890c80698713fefcbdd0e78cbe7176cec21ead
>>
>> kills me again.
>
> We need the $GLOBALS['conf'] check - it is possible that an  
> exception is thrown between the time we create the injector object  
> and when logging first becomes available in  
> Horde_Registry::__construct().  If this check isn't in place, a Null  
> logger object will be created and used for all future logging calls.

How about what I just pushed, checking for both $conf and $injector?

>> My statement made with my commit still holds true:
>>
>> "I currently get a fatal error whithin dynamic Imp (WSOD). Apparently
>> Horde::errorHandler() gets called during shutdown. The stack trace I
>> get from the error that Horde::errorHandler() tries to log looks like
>> this:
>>
>> Stack trace:
>> #0 [internal function]: Horde::errorHandler('<!DOCTYPE html ...', 5)
>> #1 [internal function]: ob_gzhandler()
>> #2 {main}
>>
>> While I still need to identify the source of this error I believe the
>> logMessage() method should always ensure it can actually log
>> something."
>
> This seems like an ugly limitation of the injector model.  The  
> logger will be available for any methods called via  
> register_shutdown_function().  But __destruct() calls may not have  
> the logger (or any other injector instance) available, since the  
> injector instance may have already been destroyed.  However, having  
> these errors being not at all seems very inappropriate so existence  
> checking for the Log object as a check would be incorrect.

I agree with Gunnar that this isn't an injector issue, just a general  
__destruct issue...

-chuck


More information about the dev mailing list