[horde] [Same Problem] ActiveSync problem with contacts disappeared

Michael J Rubinsky mrubinsk at horde.org
Mon Feb 15 04:08:12 UTC 2016


Quoting Michael J Rubinsky <mrubinsk at horde.org>:

> Quoting Michael J Rubinsky <mrubinsk at horde.org>:
>
>> Quoting Peter <horde at peter-b.org>:
>>
>>> On 28/12/2015 18:38, Michael J Rubinsky wrote:
>>>> Quoting Peter <Horde at peter-b.org>:
>>>>
>>>>> No, the test log I attached only had entries for the sync that  
>>>>> took place during the addition and disappearance of the contact  
>>>>> on the device.
>>>>
>>>> If the contact disappeared during the time included in your log,  
>>>> then it's not anything Horde did. There was NO traffic from the  
>>>> device->Horde to show even the attempted addition of the contact  
>>>> on the phone.
>>>>
>>>
>>> Apologies for being away from this discussion for so long but I've  
>>> basically been trying to find the cause of this in-between "real  
>>> life". I've spent an inordinate amount of time on it, fiddling  
>>> with Horde EAS library code, trying different versions of various  
>>> components in the chain, comparing results from different systems  
>>> and devices. I've let this problem push back the rollout of the  
>>> new server by nearly 3 weeks.
>>>
>>> I'm writing this update for anyone else that comes across this  
>>> problem - I can't believe I'm the only one, though I suspect it  
>>> may only affect a small number of users - though apologies in  
>>> advance, I didn't find a solution.
>>>
>>> I can confirm that on a basic build of an Ubuntu Trusty server  
>>> with nothing but Horde requirements and Horde itself, this problem  
>>> occurs on Android 5.0.2 and 6.0.1 (no surprise, no real difference  
>>> in the underlying exchange library), on 3 different devices and 2  
>>> emulators using the stock email client exchange libraries. Those  
>>> same devices can all connect to and sync with my existing Horde  
>>> server with no errors. I've tried several different iterations of  
>>> the server, having built a few internally in virtual machines with  
>>> various different configurations, though all based on Trusty.
>>
>> I use Vagrant to build VMs based on both stable and development  
>> branches of Horde. I base one of them on Trusty and use it to test  
>> such issues. Unfortunately, I have not seen this behavior. I'm  
>> happy to continue to try to track this down, but I need some type  
>> of data or configuration information to help reproduce this.
>>
>>
>>> I've determined that it's something to do with the data sent by  
>>> Horde during the synchronisation sequence (as in I've tweaked the  
>>> EAS code to send the EAS packets with no actual data in them and  
>>> nothing gets erased anywhere) but when the data is sent the  
>>> problem occurs.
>>>
>>> After having had so much time elapse on this and put in so many  
>>> hours I balked at digging further into the code that constructs  
>>> the data to find out what specifically was causing the problem.  
>>> The reason? In less than a day I found an alternative solution to  
>>> Horde that just works. Admittedly, the solution is not as  
>>> feature-rich overall as Horde but has more than all the features  
>>> that my (100 or so) users are going to want.
>>>
>>> Sorry - as much as I love Horde (I've been using it since about  
>>> 1996, I think) and want to push it as a solution I simply can't  
>>> justify spending any more time on it. EAS aside it works, but  
>>> having had users using EAS for a couple of years I can't now take  
>>> it away from them pending a resolution to this particular problem  
>>> and I need to roll out the new server sooner rather than later.
>>>
>>> What I can tell you is that I suspect it's a problem with the  
>>> Android exchange libraries not handling something unusual in the  
>>> data received in a sync packet from Horde, i.e. it's not getting  
>>> the data in a specific field with the expected type or within the  
>>> expected range and so is throwing and exception, then behaving  
>>> badly afterwards and losing data in the process.
>>>
>>> I suspect that the duff data is the result of a misconfiguration  
>>> on the server rather than because of a code-bug in Horde; the data  
>>> being sent by Horde that relies on this configuration is  
>>> malformed, and the exchange library isn't handling the malformed  
>>> data.
>>>
>>> Whilst I think it's more than likely it's an Android code issue it  
>>> seems that the alternative solution I've found doesn't cause this  
>>> problem, either because it's refusing to send malformed data  
>>> despite the server misconfiguration, or it simply doesn't use  
>>> whatever field is causing the problem.
>>>
>>> If I get time I'll come back to this, but having found an  
>>> alternative it's definitely a low-priority issue for me now.
>
> Can you see if the following commit fixes this for you?
>
> https://github.com/horde/horde/commit/e5389bac81fa6c6d922f9c610d7cd6da7abcce17

Nevermind. This won't make a difference.

I've found numerous reports of ActiveSync PUSH being broken in  
Android's native apps. While Andoid 5.0.1. was sort-of-working as I  
described before, I found Android 6.0 to be completely unusable in the  
way you describe. I've found the following report:

https://productforums.google.com/forum/?utm_medium=email&utm_source=footer#!topic/nexus/4qQTqnCJBaA

and in it, it is suggested to either only enable one collection at a  
time (saving Email for last), or to disable PUSH and use a timed  
interval instead. Changing to a timed interval fixed the issue I was  
having with Android 6.  To me, it looks like Android's native EAS  
implementation is resetting the hierarchy state everytime it switches  
between the different collections during push operations. I really  
can't believe that such a fundamental functionality is broken so  
badly, but when every other client I am testing works as expected it's  
hard to overlook.



-- 
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/horde/attachments/20160214/f5ee705c/attachment.bin>


More information about the horde mailing list