mirror of
https://github.com/aluxnimm/outlookcaldavsynchronizer.git
synced 2026-04-25 11:05:56 +03:00
[GH-ISSUE #18] Outlook 2013 freeze with 0.97.3 #512
Labels
No labels
1.0
1.0
1.0
2.0
Feature
Feature request
Google
Google Calendar
async
attachement
auto-migrated
auto-migrated
auto-migrated
bug
critical
enhancement
help wanted
implemented
pull-request
solved
solved
sourceforge
sourceforge
sourceforge
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/outlookcaldavsynchronizer#512
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @aluxnimm on GitHub (Jun 29, 2015).
Original GitHub issue: https://github.com/aluxnimm/outlookcaldavsynchronizer/issues/18
Originally assigned to: @nertsch on GitHub.
I am using latest version (0.97.3), and since 0.97.2 outlook 2013 freeze a few seconds after startup (nothing changed in my configuration)
Here is the log:
INFO 2015-06-29 13:25:43,634 [VSTA_Main] CalDavSynchronizer.ThisAddIn . InitializeSynchronizer - Startup...
INFO 2015-06-29 13:25:44,273 [VSTA_Main] CalDavSynchronizer.ThisAddIn . InitializeSynchronizer - Startup finnished
INFO 2015-06-29 13:26:13,776 [VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Starting 'Running synchronization profile 'mail zimbra''
INFO 2015-06-29 13:26:13,947 [VSTA_Main] r.Generic.Synchronization.Synchronizer
6 . MoveNext - Entered. Syncstrategy 'TwoWayInitialSyncStateCreationStrategy6' with Atype='AppointmentItemWrapper' and Btype='IICalendar'INFO 2015-06-29 13:26:14,166 [VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Starting 'CalDavRepository.GetVersions'
INFO 2015-06-29 13:26:14,291 [VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Duration of 'CalDavRepository.GetVersions': 00:00:00.1288281
INFO 2015-06-29 13:26:14,306 [VSTA_Main] r.Generic.Synchronization.Synchronizer
6 . MoveNext - Atype delta: Unchanged: 15 , Added: 4 , Deleted 49 , Changed 1 INFO 2015-06-29 13:26:14,306 [VSTA_Main] r.Generic.Synchronization.Synchronizer6 . MoveNext - Btype delta: Unchanged: 63 , Added: 0 , Deleted 2 , Changed 0INFO 2015-06-29 13:26:14,322 [9] hronizer.Implementation.CalDavRepository . b__0 - Starting 'CalDavRepository.Get (1 entitie(s))'
INFO 2015-06-29 13:26:14,478 [9] hronizer.Implementation.CalDavRepository . b__0 - Duration of 'CalDavRepository.Get (1 entitie(s))': 00:00:00.1484909
INFO 2015-06-29 13:26:56,451 [VSTA_Main] CalDavSynchronizer.ThisAddIn . InitializeSynchronizer - Startup...
INFO 2015-06-29 13:26:56,778 [VSTA_Main] CalDavSynchronizer.ThisAddIn . InitializeSynchronizer - Startup finnished
INFO 2015-06-29 13:27:26,502 [VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Starting 'Running synchronization profile 'mail zimbra''
INFO 2015-06-29 13:27:26,533 [VSTA_Main] r.Generic.Synchronization.Synchronizer
6 . MoveNext - Entered. Syncstrategy 'TwoWayInitialSyncStateCreationStrategy6' with Atype='AppointmentItemWrapper' and Btype='IICalendar'INFO 2015-06-29 13:27:26,689 [VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Starting 'CalDavRepository.GetVersions'
INFO 2015-06-29 13:27:26,829 [VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Duration of 'CalDavRepository.GetVersions': 00:00:00.1337654
INFO 2015-06-29 13:27:26,845 [VSTA_Main] r.Generic.Synchronization.Synchronizer
6 . MoveNext - Atype delta: Unchanged: 15 , Added: 4 , Deleted 49 , Changed 1 INFO 2015-06-29 13:27:26,845 [VSTA_Main] r.Generic.Synchronization.Synchronizer6 . MoveNext - Btype delta: Unchanged: 60 , Added: 0 , Deleted 5 , Changed 0INFO 2015-06-29 13:27:26,861 [5] hronizer.Implementation.CalDavRepository . b__0 - Starting 'CalDavRepository.Get (1 entitie(s))'
INFO 2015-06-29 13:27:27,017 [5] hronizer.Implementation.CalDavRepository . b__0 - Duration of 'CalDavRepository.Get (1 entitie(s))': 00:00:00.1609957
ERROR 2015-06-29 13:28:57,127 [VSTA_Main] neric.Synchronization.States.StateBase
6 . LogException - System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet. à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri, String etag) à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri) à CalDavSynchronizer.Implementation.CalDavRepository.Delete(Uri entityId) à CalDavSynchronizer.Generic.Synchronization.States.DeleteInB6.PerformSyncActionNoThrow()ERROR 2015-06-29 13:30:27,284 [VSTA_Main] neric.Synchronization.States.StateBase
6 . LogException - System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet. à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri, String etag) à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri) à CalDavSynchronizer.Implementation.CalDavRepository.Delete(Uri entityId) à CalDavSynchronizer.Generic.Synchronization.States.DeleteInB6.PerformSyncActionNoThrow()ERROR 2015-06-29 13:31:57,317 [VSTA_Main] neric.Synchronization.States.StateBase
6 . LogException - System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet. à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri, String etag) à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri) à CalDavSynchronizer.Implementation.CalDavRepository.Delete(Uri entityId) à CalDavSynchronizer.Generic.Synchronization.States.DeleteInB6.PerformSyncActionNoThrow()ERROR 2015-06-29 13:33:27,309 [VSTA_Main] neric.Synchronization.States.StateBase
6 . LogException - System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet. à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri, String etag) à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri) à CalDavSynchronizer.Implementation.CalDavRepository.Delete(Uri entityId) à CalDavSynchronizer.Generic.Synchronization.States.DeleteInB6.PerformSyncActionNoThrow()Original comment by: olivretta
Original Ticket: outlookcaldavsynchronizer/44
@aluxnimm commented on GitHub (Jun 29, 2015):
Hi,
Outlook was frozen, because the CalDav-server did not respond.
If you look at the timestamps of the error-logentries you can see, that the timespan between two messages is exact 90 seconds ( which is the configured timeout in the app.config file). Don't worry about the NullReferenceException. They happened, because timeout is not handled properly (but this will not affect functionality, it's just an logging issue, which I will fix soon)
Loading CalDav entites happens in a Background thread, but creating,updating and deleting CalDav-Events still happens in the UI-Thread. If the CalDav-Server doesn't respond, this will block Outlook. But usually (If the CalDav-Server is available) this should not affect responsiveness of the UI. (Maybe I will move the whole CalDav-Communication to a Background thread in the future)
Conclusion: Outlooks hangs, since the CalDav server doesn't respond and the request times out. You can ignore this type of error. It will be retried at next synchronization run.
br
Gerhard
Original comment by: nertsch
@aluxnimm commented on GitHub (Jun 30, 2015):
Hi,
thanks for this quick reply and awseome software
I understand your explanations, but then why does it work with 0.97.1 and not above ? (including 0.97.4).
If I update Outlook quicly freezes (it is now hanging since 10min), and as soon as I install older version I have no problems. My server is horrible, but maybe the hanling of timeouts has changed recently?
By the way I didn't found where to change the 90sec timeout, all I have is SynchronizationIntervalInMinutes in options file, and no config in ProgramFiles.
Concerning logs, with 0.97.1 I have:
INFO 2015-06-30 12:00:52,848 [VSTA_Main] CalDavSynchronizer.ThisAddIn . InitializeSynchronizer - Startup...
INFO 2015-06-30 12:00:53,285 [VSTA_Main] CalDavSynchronizer.ThisAddIn . InitializeSynchronizer - Startup finnished
INFO 2015-06-30 12:01:23,442 [VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Starting 'Running synchronization profile 'mail zimbra''
INFO 2015-06-30 12:01:23,473 [VSTA_Main] r.Generic.Synchronization.Synchronizer
6 . MoveNext - Entered. Syncstrategy 'TwoWayInitialSyncStateCreationStrategy6' with Atype='AppointmentItemWrapper' and Btype='IICalendar'INFO 2015-06-30 12:01:24,472 [VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Starting 'CalDavRepository.GetVersions'
INFO 2015-06-30 12:01:24,628 [VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Duration of 'CalDavRepository.GetVersions': 00:00:00.1590075
INFO 2015-06-30 12:01:24,643 [VSTA_Main] r.Generic.Synchronization.Synchronizer
6 . MoveNext - Atype delta: Unchanged: 16 , Added: 3 , Deleted 37 , Changed 1 INFO 2015-06-30 12:01:24,643 [VSTA_Main] r.Generic.Synchronization.Synchronizer6 . MoveNext - Btype delta: Unchanged: 50 , Added: 2 , Deleted 3 , Changed 1INFO 2015-06-30 12:01:24,690 [9] hronizer.Implementation.CalDavRepository . b__0 - Starting 'CalDavRepository.Get (4 entitie(s))'
INFO 2015-06-30 12:01:31,850 [9] hronizer.Implementation.CalDavRepository . b__0 - Duration of 'CalDavRepository.Get (4 entitie(s))': 00:00:07.1560149
ERROR 2015-06-30 12:03:02,031 [9] neric.Synchronization.States.StateBase
6 . LogException - System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet. à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri, String etag) à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri) à CalDavSynchronizer.Implementation.CalDavRepository.Delete(Uri entityId) à CalDavSynchronizer.Generic.Synchronization.States.DeleteInB6.PerformSyncActionNoThrow()ERROR 2015-06-30 12:04:32,042 [9] neric.Synchronization.States.StateBase
6 . LogException - System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet. à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri, String etag) à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri) à CalDavSynchronizer.Implementation.CalDavRepository.Delete(Uri entityId) à CalDavSynchronizer.Generic.Synchronization.States.DeleteInB6.PerformSyncActionNoThrow()ERROR 2015-06-30 12:06:02,087 [9] neric.Synchronization.States.StateBase
6 . LogException - System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet. à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri, String etag) à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri) à CalDavSynchronizer.Implementation.CalDavRepository.Delete(Uri entityId) à CalDavSynchronizer.Generic.Synchronization.States.DeleteInB6.PerformSyncActionNoThrow()and with 0.97.4 it is a bit different in the exceptions:
INFO 2015-06-30 12:19:50,891 [VSTA_Main] CalDavSynchronizer.ThisAddIn . InitializeSynchronizer - Startup...
INFO 2015-06-30 12:19:51,250 [VSTA_Main] CalDavSynchronizer.ThisAddIn . InitializeSynchronizer - Startup finnished
INFO 2015-06-30 12:20:20,951 [VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Starting 'Running synchronization profile 'mail zimbra''
INFO 2015-06-30 12:20:20,967 [VSTA_Main] r.Generic.Synchronization.Synchronizer
6 . MoveNext - Entered. Syncstrategy 'TwoWayInitialSyncStateCreationStrategy6' with Atype='AppointmentItemWrapper' and Btype='IICalendar'INFO 2015-06-30 12:20:21,185 [VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Starting 'CalDavRepository.GetVersions'
INFO 2015-06-30 12:20:21,295 [VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Duration of 'CalDavRepository.GetVersions': 00:00:00.1158415
INFO 2015-06-30 12:20:21,310 [VSTA_Main] r.Generic.Synchronization.Synchronizer
6 . MoveNext - Atype delta: Unchanged: 16 , Added: 3 , Deleted 37 , Changed 1 INFO 2015-06-30 12:20:21,310 [VSTA_Main] r.Generic.Synchronization.Synchronizer6 . MoveNext - Btype delta: Unchanged: 47 , Added: 2 , Deleted 6 , Changed 1INFO 2015-06-30 12:20:21,326 [9] hronizer.Implementation.CalDavRepository . b__0 - Starting 'CalDavRepository.Get (4 entitie(s))'
INFO 2015-06-30 12:20:27,862 [9] hronizer.Implementation.CalDavRepository . b__0 - Duration of 'CalDavRepository.Get (4 entitie(s))': 00:00:06.5321194
ERROR 2015-06-30 12:21:57,981 [VSTA_Main] vSynchronizer.Utilities.ExceptionHandler . GetResponseBodyNoThrow - Exception while reading the response.
System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
à CalDavSynchronizer.Utilities.ExceptionHandler.GetResponseBodyNoThrow(WebException exception)
ERROR 2015-06-30 12:21:58,090 [VSTA_Main] neric.Synchronization.States.StateBase`6 . LogException - StatusCode:
StatusDescription:
Body:
System.Net.WebException: Le délai d'attente de l'opération a expiré.
à System.Net.HttpWebRequest.GetResponse()
à CalDavSynchronizer.DataAccess.CalDavDataAccess.ExecuteCalDavRequest(Uri url, Action
1 modifier, String requestBody) à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri, String etag) à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri) à CalDavSynchronizer.Implementation.CalDavRepository.Delete(Uri entityId) à CalDavSynchronizer.Generic.Synchronization.States.DeleteInB6.PerformSyncActionNoThrow()ERROR 2015-06-30 12:23:28,226 [VSTA_Main] vSynchronizer.Utilities.ExceptionHandler . GetResponseBodyNoThrow - Exception while reading the response.
System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
à CalDavSynchronizer.Utilities.ExceptionHandler.GetResponseBodyNoThrow(WebException exception)
ERROR 2015-06-30 12:23:28,226 [VSTA_Main] neric.Synchronization.States.StateBase`6 . LogException - StatusCode:
StatusDescription:
Body:
System.Net.WebException: Le délai d'attente de l'opération a expiré.
à System.Net.HttpWebRequest.GetResponse()
à CalDavSynchronizer.DataAccess.CalDavDataAccess.ExecuteCalDavRequest(Uri url, Action
1 modifier, String requestBody) à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri, String etag) à CalDavSynchronizer.DataAccess.CalDavDataAccess.DeleteEntity(Uri uri) à CalDavSynchronizer.Implementation.CalDavRepository.Delete(Uri entityId) à CalDavSynchronizer.Generic.Synchronization.States.DeleteInB6.PerformSyncActionNoThrow()Hope this can help
regards
Olivier
Original comment by: olivretta
@aluxnimm commented on GitHub (Jun 30, 2015):
Hi,
The reason, why it doesn't freeze in 0.97.1 ist, that there was a Bug, which caused the whole synchronization to be performed in a background thread.
Although running the sync in a background thread seems to be a good idea, it cannot be done by just moving the whole synchronization to a background thread, since outlook is a STA-COM-Application. Every Access to Outlook Objects has to happen in the STA Main Thread (whis is the UI Thread).
This Bug was fixed with 0.97.2 and is listed under 'add synchronization context if missing' in the release Notes.
If you look ath the Loglines, which you posted, you can see, that the Timeouts in Version 0.97.1 happen in the Thread [9](which is a Background Thread), but from Version 0.97.2 they happened in [VSTA_Main]. This is why outlook hangs.
The CalDav-Timeout cannot be configured via the UI. The Config file is located under: \CalDavSynchronizer.dll.config . The Value specifiying the connect timeout is called 'calDavConnectTimeout'.
is the directory where CalDavSynchronizer is installed. When you are installing CalDavSynchronizer, the installer asks you for this Directory. The default is 'C:\Program Files (x86)\Gerhard Zehetbauer\CalDavSynchronizer' (oops, the directory contains my name as company name...something I have to change in the future)
The reason why 0.97.4 has different exception, is because I fixed the logging yesterday. If you look at the exceptions in 0.97.1, you can see, that the exceptions are meaningless NullReferenceExceptions. The exceptions from 0.97.4 are 'System.Net.WebException: Le délai d'attente de l'opération a expiré.' which provides mor information
So the issue is still, that the requests for the CalDavServer are timing out. The question now is, if it is the fault of the Server or of CalDavSynchronizer. According to the logfile your sync profile is callled 'mail zimbra', so I guess you are using a 'Zimbra.
Maybe I can manage to get an account at a Zimbra Server and check if zimbra has some anomalies in Event-Creation, which causes a timeout.
br
Gerhard
Original comment by: nertsch
@aluxnimm commented on GitHub (Jul 1, 2015):
Hi,
Thank you for the explanations.
Yes I am using zimbra. On my phone the plugins for contacts and calendar sometimes notify me of connection timeouts, but clearly not as often as with CalDavSynchronizer.
So for now I will keep using 0.97.1 and follow changelogs, hopefully you can manage to reproduct this on another zimbra server.
Regards
Olivier
Original comment by: olivretta
@aluxnimm commented on GitHub (Jul 4, 2015):
Hi,
I tested it with a TestAccount at 'https://demo.zimbra.com'.
Create, Read, Update and Delete Operations of Events are working with Zimbra without timeout.
So IMHO there are no Bugs in CalDavSynchronizer when accessing a Zimbra Server.
br
Gerhard
Original comment by: nertsch
@aluxnimm commented on GitHub (Jul 15, 2015):
Original comment by: aluxnimm