I run gtg from trunk, enable evolution sync and then it hangs.
(gdb) t a a bt full
Thread 6 (Thread 0x7fffe8f8e700 (LWP 2100)):
#0 sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
No locals.
#1 0x0000003988307575 in PyThread_acquire_lock (lock=lock@entry=0xbe0a90, waitflag=waitflag@entry=1) at /usr/src/debug/Python-2.7.3/Python/thread_pthread.h:321
success = <optimized out>
thelock = 0xbe0a90
status = <optimized out>
error = 0
#2 0x00000039882d6b34 in PyEval_RestoreThread (tstate=tstate@entry=0x7fffd0003cb0) at /usr/src/debug/Python-2.7.3/Python/ceval.c:379
err = 11
#3 0x000000398830b090 in lock_PyThread_acquire_lock (self=0x7ffff7f49170, args=<optimized out>) at /usr/src/debug/Python-2.7.3/Modules/threadmodule.c:53
_save = 0x7fffd0003cb0
i = 1
#4 0x0000003988249a7e in PyObject_Call (func=func@entry=<built-in method __enter__ of thread.lock object at remote 0x7ffff7f49170>, arg=arg@entry=(), kw=kw@entry=0x0) at /usr/src/debug/Python-2.7.3/Objects/abstract.c:2529
result = <optimized out>
call = 0x3988281750 <PyCFunction_Call>
#5 0x000000398824a25e in PyObject_CallFunctionObjArgs (callable=<built-in method __enter__ of thread.lock object at remote 0x7ffff7f49170>) at /usr/src/debug/Python-2.7.3/Objects/abstract.c:2760
args = ()
tmp = <optimized out>
vargs = {{gp_offset = 8, fp_offset = 48, overflow_arg_area = 0x7fffe8f8d650, reg_save_area = 0x7fffe8f8d580}}
#6 0x00000039882da01f in PyEval_EvalFrameEx (f=<optimized out>, throwflag=throwflag@entry=0) at /usr/src/debug/Python-2.7.3/Python/ceval.c:2629
exit = '__exit__'
enter = '__enter__'
stack_pointer = 0x7fffd4000c80
next_instr = 0xb13934 "\001|"
opcode = <optimized out>
oparg = <optimized out>
why = WHY_NOT
err = 0
x = <built-in method __exit__ of thread.lock object at remote 0x7ffff7f49170>
v = <optimized out>
w = <thread.lock at remote 0x7ffff7f49170>
u = <optimized out>
t = <optimized out>
stream = 0x0
fastlocals = <optimized out>
freevars = <optimized out>
retval = 0x0
tstate = <optimized out>
co = 0xa429b0
instr_ub = -1
instr_lb = 0
instr_prev = -1
first_instr = 0xb13914 "z\322\001|"
names = ('_set_ident', '_Thread__started', 'set', '_active_limbo_lock', '_active', '_Thread__ident', '_limbo', '_note', '_trace_hook', '_sys', 'settrace', '_profile_hook', 'setprofile', 'run', 'SystemExit', 'stderr', 'write', 'name', '_format_exc', '_Thread__exc_info', '_Thread__stderr', 'tb_frame', 'f_code', 'co_filename', 'tb_lineno', 'co_name', 'tb_next', '_Thread__exc_clear', '_Thread__stop', '_get_ident')
consts = (None, '%s.__bootstrap(): thread started', '%s.__bootstrap(): registering trace hook', '%s.__bootstrap(): registering profile hook', '%s.__bootstrap(): raised SystemExit', '%s.__bootstrap(): unhandled exception', 'Exception in thread %s:\n%s\n', 'Exception in thread ', ' (most likely raised during interpreter shutdown):', 'Traceback (most recent call last):', ' File "%s", line %s, in %s', '%s: %s', '%s.__bootstrap(): normal return')
#7 0x00000039882dcd51 in fast_function (nk=<optimized out>, na=1, n=<optimized out>, pp_stack=0x7fffe8f8da08, func=<function at remote 0xb2c1b8>) at /usr/src/debug/Python-2.7.3/Python/ceval.c:4184
retval = 0x0
i = <optimized out>
fastlocals = <optimized out>
f = <optimized out>
tstate = 0x7fffd0003cb0
stack = <optimized out>
co = <optimized out>
nd = 0
globals = <optimized out>
argdefs = <optimized out>
d = 0x0
#8 call_function (oparg=<optimized out>, pp_stack=0x7fffe8f8da08) at /usr/src/debug/Python-2.7.3/Python/ceval.c:4119
func = <function at remote 0xb2c1b8>
w = <optimized out>
na = 1
nk = <optimized out>
n = <optimized out>
pfunc = 0x7fffd4000a90
x = <optimized out>
#9 PyEval_EvalFrameEx (f=f@entry=Frame 0x7fffd4000910, for file /usr/lib64/python2.7/threading.py, line 524, in __bootstrap (self=<_Timer(function=<instancemethod at remote 0x16a5910>, kwargs={}, _Thread__ident=140737102014208, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1143c90>, acquire=<built-in method acquire of thread.lock object at remote 0x1143c90>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0x1143c90>) at remote 0x16a44d0>, _Thread__name='Thread-2', _Thread__daemonic=True, args=[], interval=<float at remote 0xcee720>, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1143bb0>, acquire=<built-in method acquire of thread.lock object at remote 0x1143bb0>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0x1143bb0>) at remote 0x16a4410>) at remote 0x16a45d0>, _Thread__stderr=<file at remote 0x7f...(truncated), throwflag=throwflag@entry=0) at /usr/src/debug/Python-2.7.3/Python/ceval.c:2740
sp = 0x7fffd4000a98
stack_pointer = <optimized out>
next_instr = 0xa33d20 "\001Wn#"
opcode = <optimized out>
oparg = <optimized out>
why = WHY_NOT
err = 0
x = <optimized out>
v = <optimized out>
w = <optimized out>
u = <optimized out>
t = <optimized out>
stream = 0x0
fastlocals = 0x7fffd4000a88
freevars = 0x7fffd4000a90
retval = 0x0
tstate = <optimized out>
co = 0xa428b0
instr_ub = -1
instr_lb = 0
instr_prev = -1
first_instr = 0xa33d14 "y\016"
names = ('_Thread__bootstrap_inner', '_Thread__daemonic', '_sys', 'None')
consts = (None,)
#10 0x00000039882ddb1f in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x16a4168, argcount=1, kws=kws@entry=0x0, kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0, closure=0x0) at /usr/src/debug/Python-2.7.3/Python/ceval.c:3330
f = <optimized out>
retval = 0x0
fastlocals = <optimized out>
freevars = <optimized out>
tstate = 0x7fffd0003cb0
x = <optimized out>
u = <optimized out>
#11 0x000000398826d796 in function_call (func=<function at remote 0xb2c0c8>, arg=(<_Timer(function=<instancemethod at remote 0x16a5910>, kwargs={}, _Thread__ident=140737102014208, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1143c90>, acquire=<built-in method acquire of thread.lock object at remote 0x1143c90>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0x1143c90>) at remote 0x16a44d0>, _Thread__name='Thread-2', _Thread__daemonic=True, args=[], interval=<float at remote 0xcee720>, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1143bb0>, acquire=<built-in method acquire of thread.lock object at remote 0x1143bb0>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0x1143bb0>) at remote 0x16a4410>) at remote 0x16a45d0>, _Thread__stderr=<file at remote 0x7ffff7fa0270>, _Thread__target=None, finished=<_Event(_Verbose__verbose=False, _Event__flag=False,...(truncated), kw=0x0) at /usr/src/debug/Python-2.7.3/Objects/funcobject.c:526
result = <optimized out>
argdefs = <optimized out>
kwtuple = 0x0
d = 0x0
k = 0x0
nk = 0
nd = 0
#12 0x0000003988249a7e in PyObject_Call (func=func@entry=<function at remote 0xb2c0c8>, arg=arg@entry=(<_Timer(function=<instancemethod at remote 0x16a5910>, kwargs={}, _Thread__ident=140737102014208, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1143c90>, acquire=<built-in method acquire of thread.lock object at remote 0x1143c90>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0x1143c90>) at remote 0x16a44d0>, _Thread__name='Thread-2', _Thread__daemonic=True, args=[], interval=<float at remote 0xcee720>, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1143bb0>, acquire=<built-in method acquire of thread.lock object at remote 0x1143bb0>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0x1143bb0>) at remote 0x16a4410>) at remote 0x16a45d0>, _Thread__stderr=<file at remote 0x7ffff7fa0270>, _Thread__target=None, finished=<_Event(_Verbose__verbose=False, _Event__flag=False,...(truncated), kw=kw@entry=0x0) at /usr/src/debug/Python-2.7.3/Objects/abstract.c:2529
result = <optimized out>
call = 0x398826d6e0 <function_call>
#13 0x0000003988258070 in instancemethod_call (func=<function at remote 0xb2c0c8>, arg=(<_Timer(function=<instancemethod at remote 0x16a5910>, kwargs={}, _Thread__ident=140737102014208, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1143c90>, acquire=<built-in method acquire of thread.lock object at remote 0x1143c90>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0x1143c90>) at remote 0x16a44d0>, _Thread__name='Thread-2', _Thread__daemonic=True, args=[], interval=<float at remote 0xcee720>, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1143bb0>, acquire=<built-in method acquire of thread.lock object at remote 0x1143bb0>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0x1143bb0>) at remote 0x16a4410>) at remote 0x16a45d0>, _Thread__stderr=<file at remote 0x7ffff7fa0270>, _Thread__target=None, finished=<_Event(_Verbose__verbose=False, _Event__flag=False,...(truncated), kw=0x0) at /usr/src/debug/Python-2.7.3/Objects/classobject.c:2578
self = <_Timer(function=<instancemethod at remote 0x16a5910>, kwargs={}, _Thread__ident=140737102014208, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1143c90>, acquire=<built-in method acquire of thread.lock object at remote 0x1143c90>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0x1143c90>) at remote 0x16a44d0>, _Thread__name='Thread-2', _Thread__daemonic=True, args=[], interval=<float at remote 0xcee720>, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0x1143bb0>, acquire=<built-in method acquire of thread.lock object at remote 0x1143bb0>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0x1143bb0>) at remote 0x16a4410>) at remote 0x16a45d0>, _Thread__stderr=<file at remote 0x7ffff7fa0270>, _Thread__target=None, finished=<_Event(_Verbose__verbose=False, _Event__flag=False, ...(truncated)
klass = <optimized out>
result = <optimized out>
#14 0x0000003988249a7e in PyObject_Call (func=func@entry=<instancemethod at remote 0x16a5c80>, arg=arg@entry=(), kw=<optimized out>) at /usr/src/debug/Python-2.7.3/Objects/abstract.c:2529
result = <optimized out>
call = 0x3988257fd0 <instancemethod_call>
#15 0x00000039882d71c7 in PyEval_CallObjectWithKeywords (func=<instancemethod at remote 0x16a5c80>, arg=(), kw=<optimized out>) at /usr/src/debug/Python-2.7.3/Python/ceval.c:3967
result = <optimized out>
#16 0x000000398830b432 in t_bootstrap (boot_raw=0x7fffd00019d0) at /usr/src/debug/Python-2.7.3/Modules/threadmodule.c:614
boot = 0x7fffd00019d0
tstate = 0x7fffd0003cb0
res = <optimized out>
#17 0x000000396d807d14 in start_thread (arg=0x7fffe8f8e700) at pthread_create.c:309
__res = <optimized out>
pd = 0x7fffe8f8e700
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737102014208, 575139946973909421, 1, 246639886336, 140737102014208, 0, -575159696266866259, 543129868824105389}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
pagesize_m1 = <optimized out>
sp = <optimized out>
freesize = <optimized out>
#18 0x000000396d0f167d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
No locals.
Thread 5 (Thread 0x7fffe978f700 (LWP 2099)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:166
No locals.
#1 0x000000396f483bff in g_cond_wait (cond=0x160c210, mutex=<optimized out>) at gthread-posix.c:746
_g_boolean_var_ = <optimized out>
status = <optimized out>
#2 0x0000003843221e1c in e_flag_wait (flag=0x15eb940) at e-flag.c:130
__PRETTY_FUNCTION__ = "e_flag_wait"
#3 0x0000003843222d59 in e_gdbus_proxy_call_sync (proxy=0x1a43c40 [EGdbusCalProxy], cancellable=cancellable@entry=0x0, error=error@entry=0x7fffe978d488, start_func=start_func@entry=0x3843a47560, finish_func=finish_func@entry=0x3843a47cf0, in_type=in_type@entry=8, in_value=0x7fffeb2bdb17, out_type=out_type@entry=16, out_value=out_value@entry=0x7fffe978d3f0) at e-gdbus-templates.c:1490
sync_data = {flag = 0x15eb940, error = 0x7fffe978d488, out_type = 16, out_arg = {out_boolean = 0x7fffe978d3f0, out_string = 0x7fffe978d3f0, out_strv = 0x7fffe978d3f0, out_uint = 0x7fffe978d3f0}, finish_func = {finish_void = 0x3843a47cf0 <e_gdbus_cal_call_get_object_list_finish>, finish_boolean = 0x3843a47cf0 <e_gdbus_cal_call_get_object_list_finish>, finish_string = 0x3843a47cf0 <e_gdbus_cal_call_get_object_list_finish>, finish_strv = 0x3843a47cf0 <e_gdbus_cal_call_get_object_list_finish>, finish_uint = 0x3843a47cf0 <e_gdbus_cal_call_get_object_list_finish>}, finish_result = 0}
__PRETTY_FUNCTION__ = "e_gdbus_proxy_call_sync"
#4 0x0000003843226689 in e_gdbus_proxy_call_sync_string__strv (proxy=<optimized out>, in_string=<optimized out>, out_strv=out_strv@entry=0x7fffe978d3f0, cancellable=cancellable@entry=0x0, error=error@entry=0x7fffe978d488, start_func=start_func@entry=0x3843a47560 <e_gdbus_cal_call_get_object_list>, finish_func=finish_func@entry=0x3843a47cf0 <e_gdbus_cal_call_get_object_list_finish>) at e-gdbus-templates.c:1670
__PRETTY_FUNCTION__ = "e_gdbus_proxy_call_sync_string__strv"
#5 0x0000003843a49ddb in e_gdbus_cal_call_get_object_list_sync (proxy=<optimized out>, in_sexp=<optimized out>, out_objects=out_objects@entry=0x7fffe978d3f0, cancellable=cancellable@entry=0x0, error=error@entry=0x7fffe978d488) at e-gdbus-cal.c:464
No locals.
#6 0x0000003843a20be3 in e_cal_get_object_list (ecal=ecal@entry=0x839310 [ECal], query=query@entry=0x7fffeb2bdb17 "#t", objects=objects@entry=0x7fffe978d448, error=error@entry=0x7fffe978d488) at e-cal.c:2801
priv = 0x839330
object_array = 0x0
gdbus_query = 0x0
#7 0x0000003843a20ff9 in e_cal_get_object_list_as_comp (ecal=0x839310 [ECal], query=query@entry=0x7fffeb2bdb17 "#t", objects=objects@entry=0x7fffe978d480, error=error@entry=0x7fffe978d488) at e-cal.c:2856
ical_objects = 0x0
l = <optimized out>
#8 0x00007fffeb2bcf51 in _wrap_evo_cal_source_get_all_objects (self=0x16a5780) at ecal.override:92
objects = 0x0
error = 0x0
#9 0x00000039882dce36 in call_function (oparg=<optimized out>, pp_stack=0x7fffe978d658) at /usr/src/debug/Python-2.7.3/Python/ceval.c:4082
meth = <optimized out>
self = <optimized out>
flags = <optimized out>
tstate = <optimized out>
func = <built-in method get_all_objects of ecal.ECal object at remote 0x16a5780>
w = <optimized out>
na = 0
nk = <optimized out>
n = <optimized out>
pfunc = 0x7fffd0004518
x = <optimized out>
#8 0x00007fffeb2bcf51 in _wrap_evo_cal_source_get_all_objects (self=0x16a5780) at ecal.override:92
That's apparently where it hangs. That corresponds to line 112 of GTG/backends/backend_evolution.py
However, doing that by hand, i.e. in IPython doesn't hang, i.e.
In [1]: import evolution
In [2]: ecal = evolution.ecal.open_calendar_source(evolution.ecal.list_task_sources()[0][1], evolution.ecal.CAL_SOURCE_TYPE_TODO)
In [3]: ecal.get_all_objects()
Out[3]: [<ecal.ECalComponent object at 0x1741be0 (ECalComponent at 0x18270b0)>]
In [4]:
I experienced other issues around e-d-s and calendaring. I would imagine gtg to be resist outages like these.