After further inverstigation of the problem, I've found another workaround. As stated above, a similar, if not the same, issue existed before (http://bugzilla.gnome.org/show_bug.cgi?id=268533). Fedora/Redhat therefore provided a patch to workaround the issue. They were patching src/server.c, where the following test is made:
if (e_data_cal_factory_get_n_backends (e_data_cal_factory) == 0 &&
e_data_book_factory_get_n_backends (e_data_book_factory) == 0) {
g_message ("termination_handler(): Terminating the Server. Have a nice day.");
bonobo_main_quit ();
}
As above stated, the condition is never reached because of "e_data_book_factory_get_n_backends (e_data_book_factory)" is never returning a value equal zero, so bonobo_main_quit () is never called.
The (slighly modified, because they had to deal only with one open addressbook) additional test they applied looks like this:
if (e_data_cal_factory_get_n_backends (e_data_cal_factory) == 0 &&
e_data_book_factory_get_n_backends (e_data_book_factory) > 0) {
g_message ("termination_handler(): Terminating the Server (with workaround for bug 420167). Have a nice day.");
bonobo_main_quit ();
}
This would at least cause e-d-s to shut down. I know this is not really fixing the cause of the issue (I do not have the skills to do that), but something like that would in my opinion be more sane than beeing forced to kill the server before you can do a re-login. What are you thinking about something like that? For me this works perfectly. If you want, I can provide a patch/debdiff/testpackage, whatever you want if you need it.
After further inverstigation of the problem, I've found another workaround. As stated above, a similar, if not the same, issue existed before (http:// bugzilla. gnome.org/ show_bug. cgi?id= 268533). Fedora/Redhat therefore provided a patch to workaround the issue. They were patching src/server.c, where the following test is made:
if (e_data_ cal_factory_ get_n_backends (e_data_ cal_factory) == 0 && data_book_ factory_ get_n_backends (e_data_ book_factory) == 0) { handler( ): Terminating the Server. Have a nice day.");
e_
g_message ("termination_
bonobo_main_quit ();
}
As above stated, the condition is never reached because of "e_data_ book_factory_ get_n_backends (e_data_ book_factory) " is never returning a value equal zero, so bonobo_main_quit () is never called.
The (slighly modified, because they had to deal only with one open addressbook) additional test they applied looks like this:
if (e_data_ cal_factory_ get_n_backends (e_data_ cal_factory) == 0 && data_book_ factory_ get_n_backends (e_data_ book_factory) > 0) { handler( ): Terminating the Server (with workaround for bug 420167). Have a nice day.");
e_
g_message ("termination_
bonobo_main_quit ();
}
This would at least cause e-d-s to shut down. I know this is not really fixing the cause of the issue (I do not have the skills to do that), but something like that would in my opinion be more sane than beeing forced to kill the server before you can do a re-login. What are you thinking about something like that? For me this works perfectly. If you want, I can provide a patch/debdiff/ testpackage, whatever you want if you need it.