GNOME Bugzilla – Bug 667359
random crash on config change ...
Last modified: 2012-06-27 11:59:43 UTC
No idea what I did; I didn't knowingly change any config key: and bang. Program received signal SIGSEGV, Segmentation fault.
+ Trace 229393
Thread 3 (Thread 0xb5cdfb70 (LWP 10571))
A trace with (perhaps) more helpful debuginfo for all threads: though my bugzilla helpfully hides the other threads from you (urgh):
+ Trace 229394
evolution-groupwise making GConf calls in Thread > 1. GConfClient is known to not be thread-safe.
And now another similar bug; I switched week in week view: Program received signal SIGSEGV, Segmentation fault.
+ Trace 229395
Thread 2980051824 (LWP 14984)
all other threads quiescent - perhaps I'll run that beast under valgrind ...
confirming it then - we shouldn't use gconf from other threads; hopefully in the shiny new dconf world, that is no longer a problem. It's possible that my gconf is also too old: gconf2-3.2.0-2.2.2.i586
Created attachment 205428 [details] [review] Patch for evolution-groupwise Setting up default alarm in main thread
Created attachment 205429 [details] [review] Patch for evolution-groupwise master Patch using GSetting as gconf is deprecated now. Not calling set_default_alarms in main thread as dconf is thread safe.
Review of attachment 205429 [details] [review]: please commit the patch to master and also to gnome-3-2 branch if applicable.
Review of attachment 205428 [details] [review]: You would need to get the values from gconf once while opening the calendar and later use that for setting default alarms to appointments or meetings. Down side is that any changes to gconf will only be reflected after a restart of eds which I think is livable, considering we have fixed it in upstream.
Created attachment 208246 [details] [review] Patch for evolution-groupwise 3-2 branch Reworked on review comments
Comment on attachment 205429 [details] [review] Patch for evolution-groupwise master created commit 444ca986 on master branch.
any review for 3.2 branch patch, by any chance ?
yep - having a working groupwise backend would be really pleasant ;-)
Review of attachment 208246 [details] [review]: Please make the changes.. ::: src/calendar/e-cal-backend-groupwise.c @@ +1417,3 @@ + priv->default_reminder = gconf_client_get_bool (gconf, CALENDAR_CONFIG_DEFAULT_REMINDER, NULL); + priv->interval = gconf_client_get_int (gconf, CALENDAR_CONFIG_DEFAULT_REMINDER_INTERVAL, NULL); + priv->units = gconf_client_get_string (gconf, CALENDAR_CONFIG_DEFAULT_REMINDER_UNITS, NULL); This is still getting called in a thread as groupwise_open runs in a thread. Please use the main thread to get these values once. Using e_flag to syncronize the threads would be simple.
Created attachment 208844 [details] [review] Patch for evolution-groupwise Reworked on above comments. Added the code for getting gconf entries in a function that gets called in main thread. Using EFlag to synchronize the threads.
Created attachment 209085 [details] [review] Patch for evolution-groupwise Updated Patch.
Comment on attachment 209085 [details] [review] Patch for evolution-groupwise created commit 75b99a1 to gnome-3-2 branch