(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
