[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 18:16:46 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>:
>>
>>> 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.
>
> I add the debug code in /usr/share/php/Horde/Pres/Scope.php
>
> public function serialize()
>     {
>         Horde::debug(array($this->scope, $this->_prefs));
>         return json_encode(array(
>             $this->scope,
>             $this->_prefs
>         ));
>     }
>
> This produce a long debug log file, but I can not see a problem  
> there. Something I can grep for?

Was hoping there would be something obvious there in the data. So, you  
got the error, but the data looked normal-ish? Maybe try a  
Horde::debug(json_encode(array($this->scope, $this->_prefs))); just to  
be sure the json_encode is failing on the call that you are dumping...

Kind of running out of ideas.


-- 
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/b06409f0/attachment.bin>


More information about the kronolith mailing list