Open mariaa144 opened 1 year ago
Can you run gtg in gdb
(like gdb --args gtg --debug
), and when it crashes, type bt
and enter, and copy-paste the printed stuff (depending on the size gdb used pagination, just press enter until you see gdbs prompt again) and paste it here? It would give better context where it crashes.
Also, you may want to install debug information for gtk, glib, pygobject and python(3) (Ubuntu, Debian, Fedora, some others) to get more names for better context.
(Also you're using gtg --debug
twice but saying it both crashes and not crashes, I think you mixed something up?)
No, it is just that sometimes gtg --debug
crashes and sometimes gtg --debug
doesn't crash. I think it must be a race condition of some kind.
Am I doing something wrong here? I couldn't get the debugger to start.
gdb --args gtg --debug
GNU gdb (GDB) 13.1
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
"/usr/bin/gtg": not in executable format: file format not recognized
(gdb) Quit
(gdb) Quit
(gdb) quit
Oh I forgot since gtg is running via python (an separate interpreter), you need to run something like gdb --args python3 /usr/bin/gtg --debug
I think I got it:
[Thread 0x7ffff53086c0 (LWP 3453201) exited]
2023-03-18 21:28:27,261 - DEBUG - keyring:get_password:59 - get_password GTG stored password -backend_caldav@ebb8476a-9d00-49a2-ba6c-ce653c9a1f79
[New Thread 0x7ffff53086c0 (LWP 3453582)]
2023-03-18 21:28:27,273 - DEBUG - xml:open_file:215 - Opening file /home/david/.local/share/gtg/gtg_data.xml
2023-03-18 21:28:27,354 - DEBUG - task:add_child:678 - adding child a0e7dfa2-be3d-4384-98fa-178799bdde8e to task 85250f45-9cbe-4620-ab07-ab168eaf287f
2023-03-18 21:28:27,435 - DEBUG - task:add_child:678 - adding child 42f31847-e0a7-4673-9a93-dc7b6a69a316 to task b6074c19-7493-473b-80a2-413e437f9586
2023-03-18 21:28:27,456 - DEBUG - task:add_child:678 - adding child 5ff0fc47-335a-466f-9627-8100a23eaff0 to task 822bddcc-b1ff-41c4-ad32-4f3054b97afd
2023-03-18 21:28:27,508 - DEBUG - task:add_child:678 - adding child 08b46363-105f-42d0-b0c1-f199aa030e39 to task ca4e1809-079d-4c2f-aa2b-f3ba1a1fa5bd
2023-03-18 21:28:27,711 - DEBUG - task:add_child:678 - adding child 903a33ce-17cb-42f3-98c0-c77d95e6c503 to task 02f0da02-1bcf-47b3-966d-fc523b4d9f2b
2023-03-18 21:28:27,711 - DEBUG - task:add_child:678 - adding child 3c06ca6c-910c-4f74-9406-ee5f2744e6ee to task 02f0da02-1bcf-47b3-966d-fc523b4d9f2b
2023-03-18 21:28:27,742 - DEBUG - task:add_child:678 - adding child 28412842-288c-47d0-a323-6ae360b2269d to task d96b9e54-a137-4f98-b4f9-108b49b4a42f
2023-03-18 21:28:28,343 - DEBUG - task:add_child:678 - adding child 5821b76e-fb1d-43ef-b4d6-1891786608fa to task 02da8cf8-2360-4886-a902-719d37af7582
2023-03-18 21:28:28,495 - DEBUG - keyring:set_password:48 - set_password GTG stored password -backend_caldav@ebb8476a-9d00-49a2-ba6c-ce653c9a1f79
[New Thread 0x7fffddf046c0 (LWP 3453605)]
[Thread 0x7fffddf046c0 (LWP 3453605) exited]
[New Thread 0x7fffddf046c0 (LWP 3453606)]
[New Thread 0x7fffdd5966c0 (LWP 3453607)]
[Thread 0x7fffddf046c0 (LWP 3453606) exited]
Downloading separate debug info for /usr/lib/gtk-3.0/3.0.0/immodules/im-wayland.so
[Thread 0x7fffdd5966c0 (LWP 3453607) exited]
[New Thread 0x7fffdd5966c0 (LWP 3453618)]
[New Thread 0x7fffddf046c0 (LWP 3453619)]
[Thread 0x7fffdd5966c0 (LWP 3453618) exited]
[Thread 0x7fffddf046c0 (LWP 3453619) exited]
Downloading separate debug info for /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
Downloading separate debug info for /usr/lib/librsvg-2.so.2
Thread 1 "gtg" received signal SIGSEGV, Segmentation fault.
0x00007ffff60bb790 in pango_font_description_to_string (desc=0x555556263e40) at ../pango/pango/fonts.c:1496
Downloading source file /usr/src/debug/pango/build/../pango/pango/fonts.c
1496 if ((desc->variations && desc->mask & PANGO_FONT_MASK_VARIATIONS) &&
(gdb) bt
#0 0x00007ffff60bb790 in pango_font_description_to_string (desc=0x555556263e40) at ../pango/pango/fonts.c:1496
#1 0x00007ffff7f984f6 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#2 0x00007ffff7f94f5e in ffi_call_int (cif=cif@entry=0x555556258208, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#3 0x00007ffff7f97b73 in ffi_call (cif=cif@entry=0x555556258208, fn=<optimized out>, rvalue=rvalue@entry=0x7fffffffc2d8, avalue=<optimized out>) at ../src/x86/ffi64.c:710
#4 0x00007ffff708e0d1 in pygi_invoke_c_callable (function_cache=<optimized out>, state=<optimized out>, py_args=<optimized out>, py_kwargs=<optimized out>) at ../pygobject/gi/pygi-invoke.c:684
#5 0x00007ffff708ca90 in pygi_function_cache_invoke (py_kwargs=0x0, py_args=0x7fffec1913c0, function_cache=<optimized out>) at ../pygobject/gi/pygi-cache.c:862
#6 pygi_callable_info_invoke (user_data=0x0, cache=<optimized out>, kwargs=0x0, py_args=0x7fffec1913c0, info=<optimized out>) at ../pygobject/gi/pygi-invoke.c:727
#7 _wrap_g_callable_info_invoke (self=<optimized out>, py_args=0x7fffec1913c0, kwargs=0x0) at ../pygobject/gi/pygi-invoke.c:764
#8 0x00007ffff708063e in _callable_info_call (self=0x7fffec0ef2f0, args=0x7ffff7720070, kwargs=0x0) at ../pygobject/gi/pygi-info.c:548
#9 0x00007ffff7b5031b in _PyObject_MakeTpCall (tstate=0x55555555e520, callable=0x7fffec0ef2f0, args=<optimized out>, nargs=0, keywords=0x0) at Objects/call.c:215
#10 0x00007ffff7b4b726 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=0x7fffec0ef2f0, tstate=<optimized out>) at ./Include/cpython/abstract.h:112
#11 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x5555561ee740, callable=0x7fffec0ef2f0, tstate=<optimized out>) at ./Include/cpython/abstract.h:99
#12 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x5555561ee740, callable=0x7fffec0ef2f0) at ./Include/cpython/abstract.h:123
#13 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffffc530, tstate=<optimized out>) at Python/ceval.c:5891
#14 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x5555561ee5b0, throwflag=<optimized out>) at Python/ceval.c:4181
#15 0x00007ffff7b570e9 in _PyEval_EvalFrame (throwflag=0, f=0x5555561ee5b0, tstate=0x55555555e520) at ./Include/internal/pycore_ceval.h:46
#16 _PyEval_Vector (kwnames=<optimized out>, argcount=<optimized out>, args=<optimized out>, locals=0x0, con=0x7fffece59fd0, tstate=0x55555555e520) at Python/ceval.c:5065
#17 _PyFunction_Vectorcall (func=0x7fffece59fc0, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:342
#18 0x00007ffff7b4676a in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7fffec917f88, callable=0x7fffece59fc0, tstate=0x55555555e520) at ./Include/cpython/abstract.h:114
#19 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7fffec917f88, callable=0x7fffece59fc0) at ./Include/cpython/abstract.h:123
#20 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffffc6f0, tstate=<optimized out>) at Python/ceval.c:5891
#21 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7fffec917de0, throwflag=<optimized out>) at Python/ceval.c:4198
#22 0x00007ffff7b570e9 in _PyEval_EvalFrame (throwflag=0, f=0x7fffec917de0, tstate=0x55555555e520) at ./Include/internal/pycore_ceval.h:46
#23 _PyEval_Vector (kwnames=<optimized out>, argcount=<optimized out>, args=<optimized out>, locals=0x0, con=0x7fffece5a060, tstate=0x55555555e520) at Python/ceval.c:5065
#24 _PyFunction_Vectorcall (func=0x7fffece5a050, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:342
#25 0x00007ffff7b4676a in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7fffddf1f618, callable=0x7fffece5a050, tstate=0x55555555e520) at ./Include/cpython/abstract.h:114
#26 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7fffddf1f618, callable=0x7fffece5a050) at ./Include/cpython/abstract.h:123
#27 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffffc8b0, tstate=<optimized out>) at Python/ceval.c:5891
#28 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7fffddf1f490, throwflag=<optimized out>) at Python/ceval.c:4198
#29 0x00007ffff7b4f5fb in _PyEval_EvalFrame (throwflag=0, f=0x7fffddf1f490, tstate=0x55555555e520) at ./Include/internal/pycore_ceval.h:46
#30 _PyEval_Vector (kwnames=0x0, argcount=<optimized out>, args=<optimized out>, locals=0x0, con=0x7fffece59d00, tstate=0x55555555e520) at Python/ceval.c:5065
#31 _PyFunction_Vectorcall (kwnames=0x0, nargsf=<optimized out>, stack=<optimized out>, func=0x7fffece59cf0) at Objects/call.c:342
#32 _PyObject_FastCallDictTstate (tstate=0x55555555e520, callable=0x7fffece59cf0, args=<optimized out>, nargsf=<optimized out>, kwargs=<optimized out>) at Objects/call.c:142
#33 0x00007ffff7b5f21d in _PyObject_Call_Prepend (kwargs=0x0, args=0x7fffec146900, obj=<optimized out>, callable=0x7fffece59cf0, tstate=0x55555555e520) at Objects/call.c:431
#34 slot_tp_init (self=<optimized out>, args=<optimized out>, kwds=<optimized out>) at Objects/typeobject.c:7734
#35 0x00007ffff7b502f3 in type_call (kwds=0x0, args=0x7fffec146900, type=<optimized out>) at Objects/typeobject.c:1135
#36 _PyObject_MakeTpCall (tstate=0x55555555e520, callable=0x555555b07c60, args=<optimized out>, nargs=<optimized out>, keywords=0x0) at Objects/call.c:215
#37 0x00007ffff7b4b14c in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>, tstate=<optimized out>) at ./Include/cpython/abstract.h:112
#38 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>, tstate=<optimized out>) at ./Include/cpython/abstract.h:99
#39 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>) at ./Include/cpython/abstract.h:123
#40 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffffcbb0, tstate=<optimized out>) at Python/ceval.c:5891
#41 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:4213
#42 0x00007ffff7b4f5fb in _PyEval_EvalFrame (throwflag=0, f=0x7fffddf22880, tstate=0x55555555e520) at ./Include/internal/pycore_ceval.h:46
#43 _PyEval_Vector (kwnames=0x0, argcount=<optimized out>, args=<optimized out>, locals=0x0, con=0x7fffece59c70, tstate=0x55555555e520) at Python/ceval.c:5065
#44 _PyFunction_Vectorcall (kwnames=0x0, nargsf=<optimized out>, stack=<optimized out>, func=0x7fffece59c60) at Objects/call.c:342
#45 _PyObject_FastCallDictTstate (tstate=0x55555555e520, callable=0x7fffece59c60, args=<optimized out>, nargsf=<optimized out>, kwargs=<optimized out>) at Objects/call.c:142
#46 0x00007ffff7b5f21d in _PyObject_Call_Prepend (kwargs=0x0, args=0x7fffec250440, obj=<optimized out>, callable=0x7fffece59c60, tstate=0x55555555e520) at Objects/call.c:431
#47 slot_tp_init (self=<optimized out>, args=<optimized out>, kwds=<optimized out>) at Objects/typeobject.c:7734
#48 0x00007ffff7b502f3 in type_call (kwds=0x0, args=0x7fffec250440, type=<optimized out>) at Objects/typeobject.c:1135
#49 _PyObject_MakeTpCall (tstate=0x55555555e520, callable=0x555555a81870, args=<optimized out>, nargs=<optimized out>, keywords=0x0) at Objects/call.c:215
#50 0x00007ffff7b4b14c in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>, tstate=<optimized out>) at ./Include/cpython/abstract.h:112
#51 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>, tstate=<optimized out>) at ./Include/cpython/abstract.h:99
#52 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>) at ./Include/cpython/abstract.h:123
#53 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffffceb0, tstate=<optimized out>) at Python/ceval.c:5891
#54 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:4213
#55 0x00007ffff7b570e9 in _PyEval_EvalFrame (throwflag=0, f=0x7ffff71b8dd0, tstate=0x55555555e520) at ./Include/internal/pycore_ceval.h:46
#56 _PyEval_Vector (kwnames=<optimized out>, argcount=<optimized out>, args=<optimized out>, locals=0x0, con=0x7fffec9c05f0, tstate=0x55555555e520) at Python/ceval.c:5065
#57 _PyFunction_Vectorcall (func=0x7fffec9c05e0, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:342
#58 0x00007ffff708d183 in _pygi_closure_handle (cif=<optimized out>, result=result@entry=0x7fffffffd230, args=args@entry=0x7fffffffd0a0, data=data@entry=0x555555a4c8b0) at ../pygobject/gi/pygi-closure.c:582
#59 0x00007ffff7f980d2 in ffi_closure_unix64_inner (cif=<optimized out>, fun=<optimized out>, user_data=<optimized out>, rvalue=<optimized out>, reg_args=<optimized out>, argp=0x7fffffffd260 "") at ../src/x86/ffi64.c:899
#60 0x00007ffff7f98718 in ffi_closure_unix64 () at ../src/x86/unix64.S:303
#61 0x00007ffff6eea55c in _g_closure_invoke_va (param_types=0x0, n_params=<optimized out>, args=0x7fffffffd3f0, instance=0x555555b31f80, return_value=0x0, closure=0x555555b2fa30) at ../glib/gobject/gclosure.c:895
#62 g_signal_emit_valist (instance=0x555555b31f80, signal_id=276, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd3f0) at ../glib/gobject/gsignal.c:3462
#63 0x00007ffff6eea644 in g_signal_emit (instance=instance@entry=0x555555b31f80, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3612
#64 0x00007ffff6d24158 in g_application_register (application=application@entry=0x555555b31f80, cancellable=cancellable@entry=0x0, error=error@entry=0x7fffffffd560) at ../glib/gio/gapplication.c:2213
#65 0x00007ffff6d248e0 in g_application_real_local_command_line (application=0x555555b31f80, arguments=0x7fffffffd5b8, exit_status=0x7fffffffd5b4) at ../glib/gio/gapplication.c:1115
#66 0x00007ffff6d24c5c in g_application_run (application=0x555555b31f80, argc=<optimized out>, argv=0x555555a634f0) at ../glib/gio/gapplication.c:2542
#67 0x00007ffff7f984f6 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#68 0x00007ffff7f94f5e in ffi_call_int (cif=cif@entry=0x555555a62d18, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#69 0x00007ffff7f97b73 in ffi_call (cif=cif@entry=0x555555a62d18, fn=<optimized out>, rvalue=rvalue@entry=0x7fffffffd7c8, avalue=<optimized out>) at ../src/x86/ffi64.c:710
#70 0x00007ffff708e0d1 in pygi_invoke_c_callable (function_cache=<optimized out>, state=<optimized out>, py_args=<optimized out>, py_kwargs=<optimized out>) at ../pygobject/gi/pygi-invoke.c:684
#71 0x00007ffff708ca90 in pygi_function_cache_invoke (py_kwargs=0x7fffecad5540, py_args=0x7fffecb2a7c0, function_cache=<optimized out>) at ../pygobject/gi/pygi-cache.c:862
#72 pygi_callable_info_invoke (user_data=0x0, cache=<optimized out>, kwargs=0x7fffecad5540, py_args=0x7fffecb2a7c0, info=<optimized out>) at ../pygobject/gi/pygi-invoke.c:727
#73 _wrap_g_callable_info_invoke (self=<optimized out>, py_args=0x7fffecb2a7c0, kwargs=0x7fffecad5540) at ../pygobject/gi/pygi-invoke.c:764
#74 0x00007ffff7b62f9c in _PyObject_Call (kwargs=<optimized out>, args=0x7fffecb2a7c0, callable=0x7ffff62e9d70, tstate=0x55555555e520) at Objects/call.c:305
#75 PyObject_Call (callable=0x7ffff62e9d70, args=0x7fffecb2a7c0, kwargs=<optimized out>) at Objects/call.c:317
#76 0x00007ffff7b48e4b in do_call_core (kwdict=0x7fffecad5540, callargs=0x7fffecb2a7c0, func=0x7ffff62e9d70, trace_info=0x7fffffffd9e0, tstate=<optimized out>) at Python/ceval.c:5943
#77 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:4277
#78 0x00007ffff7b570e9 in _PyEval_EvalFrame (throwflag=0, f=0x7fffed6de980, tstate=0x55555555e520) at ./Include/internal/pycore_ceval.h:46
#79 _PyEval_Vector (kwnames=<optimized out>, argcount=<optimized out>, args=<optimized out>, locals=0x0, con=0x7ffff62f57f0, tstate=0x55555555e520) at Python/ceval.c:5065
#80 _PyFunction_Vectorcall (func=0x7ffff62f57e0, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:342
#81 0x00007ffff7b4676a in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff7745db8, callable=0x7ffff62f57e0, tstate=0x55555555e520) at ./Include/cpython/abstract.h:114
--Type <RET> for more, q to quit, c to continue without paging--c
#82 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff7745db8, callable=0x7ffff62f57e0) at ./Include/cpython/abstract.h:123
#83 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffffdba0, tstate=<optimized out>) at Python/ceval.c:5891
#84 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7ffff7745c40, throwflag=<optimized out>) at Python/ceval.c:4198
#85 0x00007ffff7b44f80 in _PyEval_EvalFrame (throwflag=0, f=0x7ffff7745c40, tstate=0x55555555e520) at ./Include/internal/pycore_ceval.h:46
#86 _PyEval_Vector (tstate=tstate@entry=0x55555555e520, con=con@entry=0x7fffffffdca0, locals=locals@entry=0x7ffff7341d00, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=kwnames@entry=0x0) at Python/ceval.c:5065
#87 0x00007ffff7bf39e4 in PyEval_EvalCode (co=0x7ffff720c3a0, globals=0x7ffff7341d00, locals=0x7ffff7341d00) at Python/ceval.c:1134
#88 0x00007ffff7c04383 in run_eval_code_obj (tstate=tstate@entry=0x55555555e520, co=co@entry=0x7ffff720c3a0, globals=globals@entry=0x7ffff7341d00, locals=locals@entry=0x7ffff7341d00) at Python/pythonrun.c:1291
#89 0x00007ffff7bffaea in run_mod (mod=mod@entry=0x55555565e210, filename=filename@entry=0x7ffff73f4f30, globals=globals@entry=0x7ffff7341d00, locals=locals@entry=0x7ffff7341d00, flags=flags@entry=0x7fffffffde88, arena=arena@entry=0x7ffff771fb90) at Python/pythonrun.c:1312
#90 0x00007ffff7aa223f in pyrun_file (fp=fp@entry=0x55555555a470, filename=filename@entry=0x7ffff73f4f30, start=start@entry=257, globals=globals@entry=0x7ffff7341d00, locals=locals@entry=0x7ffff7341d00, closeit=closeit@entry=1, flags=0x7fffffffde88) at Python/pythonrun.c:1208
#91 0x00007ffff7aa1ef0 in _PyRun_SimpleFileObject (fp=0x55555555a470, filename=0x7ffff73f4f30, closeit=1, flags=0x7fffffffde88) at Python/pythonrun.c:456
#92 0x00007ffff7aa28a3 in _PyRun_AnyFileObject (fp=0x55555555a470, filename=0x7ffff73f4f30, closeit=1, flags=0x7fffffffde88) at Python/pythonrun.c:90
#93 0x00007ffff7c10b5d in pymain_run_file_obj (skip_source_first_line=0, filename=0x7ffff73f4f30, program_name=0x7ffff732f910) at Modules/main.c:353
#94 pymain_run_file (config=0x5555555855a0) at Modules/main.c:372
#95 pymain_run_python (exitcode=0x7fffffffde84) at Modules/main.c:587
#96 Py_RunMain () at Modules/main.c:666
#97 0x00007ffff7be4f3b in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:720
#98 0x00007ffff783c790 in __libc_start_call_main (main=main@entry=0x555555555120 <main>, argc=argc@entry=3, argv=argv@entry=0x7fffffffe0b8) at ../sysdeps/nptl/libc_start_call_main.h:58
#99 0x00007ffff783c84a in __libc_start_main_impl (main=0x555555555120 <main>, argc=3, argv=0x7fffffffe0b8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe0a8) at ../csu/libc-start.c:360
#100 0x0000555555555045 in _start ()
Can you test a possible workaround for me? Open ~/.config/gtg/gtg.conf
in an plain-text editor such as GNOME editor, vim or whatever you like, and under [browser]
, find a line font_name =
and change it to font_name = Sans 11
.
This changes the font of the task editor. You can change it later in the settings.
It seems the only place we call Pango.FontDescription.to_string()
is at https://github.com/getting-things-gnome/gtg/blob/v0.6/GTG/gtk/general_preferences.py#L81-L94 to get an default font we can use, but I think the (buggy) get_property()
method is causing the crash by giving an weird/invalid object (as I already had some problems before), so maybe revert to only using the deprecated but still working way until the buggyness is fixed to prevent crashes.
I didn't have a font_name
entry so I added it. I'll let you know if I experience any crashes. So far so good. 🤞
EDIT: Well, that didn't last long. I saw three crashes in a row while starting up and then it worked fine on the fourth load.
EDIT2: My font_name
entry was actually removed somehow when I went back into the file to remove it manually.
EDIT3: I take it back. Setting font_name = Sans 11
does seem to allow my GTG to launch every time without crashing. Maybe I didn't save my config last time? 🤷♂️ Thank you for the suggestion.
As the config file work around is just a temporary solution, do you plan to fix the segfault via the GTG code? It's currently a release critical bug for the next Debian version [1], so I've committed a patch to work around the pango (or gtk?) issue by reverting to the default behavior [2] as suggested by @Neui (thanks!).
Could you please advise for a more sustainable solution? (and push it in the next gtg release?)
Thanks! François
If there is a way to fix this within GTG's current code (please retest with the latest git master
version, where the huge refactoring branch has landed now), we would welcome a pull request for this :)
Sometimes gtg crashes right on startup. I have over 500 tasks. I think there is a race condition somewhere. I see no error in the GUI. I've installed gtg on Arch Linux.
When I use
gtg --debug
and the crash occurs I see:When I use
gtg --debug
and the crash DOES NOT occur: