(Copying to the list)

Thomas,

the second patch worked! No workarounds are necessary anymore! I didn't
have that much time yesterday to test the first patch but a colleague here
tested it and it didn't work for him, the work-around was still necessary.
Currently my pilot test group have about 7 users all of them with different
versions of iOS (7 and 8), Android (4.0, 4.3 and 5.0), and Outlook (2013
and 2016). I'll give it a big test today and I'll let you know the results.

Thank you very much! A lot!

Best,
Daniel

On Fri, Jun 26, 2015 at 5:34 AM, Thomas Fuehrer <[email protected]> wrote:

>
> Am Donnerstag, 25. Juni 2015 14:41 CEST, "Thomas Fuehrer" <[email protected]>
> schrieb:
>
> >
> > > I was wondering if anyone woud have any tip on the SyncKey problem. We
> seem
> > > to be sending something take makes Android's Exchange code CPU-busy for
> > > long seconds, eating a lot of battery, for up to one minute. Then it
> gets
> > > back to a previous state where the error happens. I couldn't figure out
> > > what it is. I'm thinking about opening another bug but I would like to
> have
> > > at least a patch or to understand the problem better before doing that.
> >
> > I traced outlook.com when it is talking to Lollipop.
> > > it sends an empty response to the first FolderSync with SyncKey=0 and
> then the folderlist to the next request with SyncKey=0
> >
> >
> > Can you try this on (if it works with lollipop, please try it with any
> client you have to make sure that this doesn't break foldersync)
> >
> > diff --git a/ActiveSync/SOGoActiveSyncDispatcher.m
> b/ActiveSync/SOGoActiveSyncDispatcher.m
> > index 64a0071..99736db 100644
> > --- a/ActiveSync/SOGoActiveSyncDispatcher.m
> > +++ b/ActiveSync/SOGoActiveSyncDispatcher.m
> > @@ -725,10 +725,18 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> SUCH DAMAGE.
> >
> >    if ([syncKey isEqualToString: @"0"])
> >      {
> > -      first_sync = YES;
> > -      syncKey = @"1";
> > +      if ([[metadata objectForKey: @"FolderSyncKey"] isEqualToString:
> @"0"])
> > +        {
> > +          first_sync = YES;
> > +          syncKey = @"1";
> > +        }
> > +      else
> > +        {
> > +          [self _setFolderSyncKey: @"0"];
> > +          return;
> > +        }
> >      }
> > -  else if (![syncKey isEqualToString: [metadata objectForKey:
> @"FolderSyncKey"]])
> > +  else if (![[metadata objectForKey: @"FolderSyncKey"] isEqualToString:
> @"0"] && ![syncKey isEqualToString: [metadata objectForKey:
> @"FolderSyncKey"]])
> >      {
> >        // Synchronization key mismatch or invalid synchronization key
> >        //NSLog(@"FolderSync syncKey mismatch %@ <> %@", syncKey,
> metadata);
> >
>
> Maybe this will give a better results while having less impact to other
> device types:
>
> diff --git a/ActiveSync/SOGoActiveSyncDispatcher.m
> b/ActiveSync/SOGoActiveSyncDispatcher.m
> index 64a0071..2c51244 100644
> --- a/ActiveSync/SOGoActiveSyncDispatcher.m
> +++ b/ActiveSync/SOGoActiveSyncDispatcher.m
> @@ -728,7 +728,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
> DAMAGE.
>        first_sync = YES;
>        syncKey = @"1";
>      }
> -  else if (![syncKey isEqualToString: [metadata objectForKey:
> @"FolderSyncKey"]])
> +  else if (!metadata])
>      {
>        // Synchronization key mismatch or invalid synchronization key
>        //NSLog(@"FolderSync syncKey mismatch %@ <> %@", syncKey, metadata);
> --
>
>
> Regards,
> Thomas
>
>
>
-- 
[email protected]
https://inverse.ca/sogo/lists

Reply via email to