[kronolith] /usr/bin/kronolith-agenda Horde_Prefs_Scope::serialize() must return a string or NULL

Michael J Rubinsky mrubinsk at horde.org
Mon Nov 2 14:53:32 UTC 2015


Quoting Samuel Wolf <samuel at sheepflock.de>:

> Zitat von Michael J Rubinsky <mrubinsk at horde.org>:
>
>> Quoting Samuel Wolf <samuel at sheepflock.de>:
>>
>>> Hi,
>>>
>>> does somebody has any idea whats wrong here?
>>>
>>> Samuel
>>>
>>> root at mailserver:~# php5 /usr/bin/kronolith-agenda
>>>
>>> ====================
>>>
>>> Fatal Error:
>>> Horde_Prefs_Scope::serialize() must return a string or NULL
>>> In /usr/share/php/Horde/Prefs/Cache/HordeCache.php on line 62
>>>
>>> 1. send_agendas() /usr/bin/kronolith-agenda:22
>>> 2. Horde_Prefs->getValue() /usr/bin/kronolith-agenda:100
>>> 3. Horde_Prefs->_getScope() /usr/share/php/Horde/Prefs.php:250
>>> 4. Horde_Prefs->_loadScope() /usr/share/php/Horde/Prefs.php:348
>>> 5. Horde_Prefs_Cache_HordeCache->store() /usr/share/php/Horde/Prefs.php:418
>>> 6. serialize() /usr/share/php/Horde/Prefs/Cache/HordeCache.php:62
>>
>>
>> Looks like the serialization fails for some reason, and since  
>> json_encode() returns FALSE for this it throws a fatal error since  
>> the serialize interface must return a string or NULL. *WHY* it's  
>> failing, I'm not sure off hand - I'll have to look into it. At the  
>> very least, we need to catch the false value and change it to null.
>
> It is not a general problem, the script work on my home horde server  
> without a error.
> Idea to debug this?
>
> I am sure this script work in the past without the error, but have  
> no idea which change/update broke it...

Basically, the only thing I know for sure is that json_decode() is  
returning false in that method. I would need to see the data that it  
is attempting to serialize to know *why* it is failing. My guess is  
that it's some non UTF-8 data (which as of PHP 5.5 causes json_decode  
to fail whereas before this, it would only null out the offending  
string).

If you want to spend time on this, you can insert something like:

Horde::debug(array($this->scope, $this->_prefs));

into Horde_Prefs_Scope::serialize() and see what the values are when  
this fails.


-- 
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: 5751 bytes
Desc: S/MIME Signature
URL: <http://lists.horde.org/archives/kronolith/attachments/20151102/5c70e23f/attachment.bin>


More information about the kronolith mailing list