[sync] SyncML broken with latest Horde Webmail 5.2.22 ?

Jan Schneider jan at horde.org
Fri Sep 22 19:01:34 UTC 2017


Please don't top-post.

Zitat von Christian Bomhardt <horde at bomhardt.de>:

> On 22.09.2017 10:40, Jan Schneider wrote:
>>
>> Zitat von Christian Bomhardt <horde at bomhardt.de>:
>>
>>> Hi Friends,
>>>
>>> I just upgraded to Horde Webmail 5.2.22 with php7 (from 5.2.16?).  
>>> My used Android SyncML Client (ChBoSync) doesn't work any more -  
>>> with Webmail 5.2.21 as installed on demo.horde.org, it still  
>>> works. So issue could either be related to Horde Version or  
>>> underlying Linux/php.
>>>
>>> What I figured out so far via Debugging:
>>>
>>> Some errors are logged trying to call non-static methods. To fix  
>>> it, I did the following:
>>>
>>> In Horde_SyncML_Backend.php: make factory method static
>>>
>>> In Horde_SyncML_Command.php: make factory method static
>>>
>>> In Horde_SyncML_XmlOutput.php: make singleton method static
>>>
>>>
>>> Now I have this issue and don't know how to fix it - seems like  
>>> the issue is in the ContentHandler.php, line 119 =>  
>>> $this->_xmlWriter->init(new Horde_Xml_Wbxml_ContentHandler());
>>>
>>> Any ideas how to fix/patches ?
>>>
>>> Thanks a ton,
>>>  Christian
>>>
>>>
>>> 2017-09-21T20:27:52+00:00 DEBUG: HORDE [horde]  
>>> Horde_Rpc::__construct complete [pid 29037 on line 253 of  
>>> "/usr/share/php/Horde/Rpc.php"]
>>> 2017-09-21T20:27:52+00:00 DEBUG: HORDE Backend of class  
>>> Horde_SyncMl_Backend_Horde created [pid 29037 on line 38 of  
>>> "/usr/share/php/Horde/SyncMl/Backend/Horde.php"]
>>> 2017-09-21T20:27:52+00:00 DEBUG: HORDE Started at 2017-09-21  
>>> 20:27:52. Packet logged in /tmp/sync/client_17.xml [pid 29037 on  
>>> line 100 of "/usr/share/php/Horde/SyncMl/ContentHandler.php"]
>>> 2017-09-21T20:27:52+00:00 NOTICE: HORDE PHP ERROR: Only variables  
>>> should be passed by reference [pid 29037 on line 119 of  
>>> "/usr/share/php/Horde/SyncMl/ContentHandler.php"]
>>> 2017-09-21T20:27:52+00:00 DEBUG: HORDE 1.  
>>> Horde_Rpc_Syncml->getResponse() /var/www/horde/rpc.php:160
>>> 2. Horde_SyncMl_ContentHandler->process()  
>>> /usr/share/php/Horde/Rpc/Syncml.php:52
>>> 3. Horde_ErrorHandler::errorHandler()  
>>> /usr/share/php/Horde/SyncMl/ContentHandler.php:119
>>>
>>> 2017-09-21T20:27:52+00:00 WARN: HORDE PHP ERROR:  
>>> session_destroy(): Trying to destroy uninitialized session [pid  
>>> 29037 on line 305 of "/usr/share/php/Horde/Session.php"]
>>> 2017-09-21T20:27:52+00:00 DEBUG: HORDE  1.  
>>> Horde_Rpc_Syncml->getResponse() /var/www/horde/rpc.php:160
>>>  2. Horde_SyncMl_ContentHandler->process()  
>>> /usr/share/php/Horde/Rpc/Syncml.php:52
>>>  3. xml_parse() /usr/share/php/Horde/SyncMl/ContentHandler.php:131
>>>  4. Horde_SyncMl_ContentHandler->_endElement()
>>
>> Those are only warnings and notices because of the outdated  
>> Horde_SyncMl code. None of this is really an error stopping  
>> synchronization to work.
>>
>> Did you update PHP to version 7 at the same time, or just Horde?
>>
> Hi Jan,
>
> I did only update Horde - shortly before or after I applied as well  
> security patches. But php7 was already installed upfront (running on  
> Ubuntu 16.04 LTS)
>
> I now enabled the testpage to provide further details on php or  
> other findings. It crashed, from php log with errors below:
>
> 2017-09-22T16:15:28+00:00 EMERG: HORDE [horde] ParseError: syntax  
> error, unexpected 'new' (T_NEW) in /usr/share/php/File/Fstab.php:110

This is a third-party library that's not compatible with PHP 7. It  
probably got pulled in as some dependency. You can uninstall it safely  
with "pear uninstall file_fstab". Though it won't be used with SyncML  
synchronization.

Besides that, there haven't been any changes in the SyncML code for  
months if not years.

> Stack trace:
> #0 /usr/share/php/Horde/Autoloader.php(65):  
> Horde_Autoloader->_include('/usr/share/php/...')
> #1 [internal function]: Horde_Autoloader->loadClass('File_Fstab')
> #2 [internal function]: spl_autoload_call('File_Fstab')
> #3 /var/www/internal/horde/lib/Test.php(619): class_exists('File_Fstab')
> #4 /var/www/internal/horde/test.php(135): Horde_Test->pearModuleCheck()
> #5 {main} [pid 7335 on line 74 of "/usr/share/php/Horde/ErrorHandler.php"]
> 2017-09-22T16:15:28+00:00 DEBUG: HORDE [horde] Max memory usage:  
> 2097152 bytes [pid 7335 on line 613 of  
> "/usr/share/php/Horde/Registry.php"]
>
> Regarding the trace below - if it was no error, why is the error  
> handler called? For the issues I solved before, log looked similar.  
> And SyncML is broken for all contacts, calendar and notes - so seems  
> to be some "framework" kind of issue?
>
> Any further ideas/hints?
>
> br, Christian
>
>



-- 
Jan Schneider
The Horde Project
https://www.horde.org/



More information about the sync mailing list