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

Samuel Wolf samuel at sheepflock.de
Mon Nov 2 18:45:53 UTC 2015


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>:
>>>
>>>> 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...

[...]

Backtrace:
1. send_agendas() /usr/bin/kronolith-agenda:22
2. Horde_Prefs->getValue() /usr/bin/kronolith-agenda:85
3. Horde_Prefs->_getScope() /usr/share/php/Horde/Prefs.php:250
4. Horde_Prefs->_loadScope() /usr/share/php/Horde/Prefs.php:343
5. Horde_Prefs_Cache_HordeCache->store() /usr/share/php/Horde/Prefs.php:418
6. serialize() /usr/share/php/Horde/Prefs/Cache/HordeCache.php:62
7. Horde_Prefs_Scope->serialize()
8. Horde::debug() /usr/share/php/Horde/Prefs/Scope.php:311

2015-11-02T19:32:15+01:00 DEBUG: Variable information:
bool(false)

Backtrace:
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
7. Horde_Prefs_Scope->serialize()
8. Horde::debug() /usr/share/php/Horde/Prefs/Scope.php:311

-----------------------------------------------------------------------

It Should be "Standardidentität", is this the problem?

[...] a:13:{s:2:"id";s:17:"Standardidentit<E4>t";s:8:"fullname"; [...]

>
> Kind of running out of ideas.
>
>
> -- 
> mike
> The Horde Project
> http://www.horde.org
> https://www.facebook.com/hordeproject
> https://www.twitter.com/hordeproject





More information about the kronolith mailing list