2.6.19 on bionic: QIF import wizard hangs when manipulating account tree

Bug #1776150 reported by Ryan C. Underwood
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gnucash (Ubuntu)
New
Undecided
Unassigned

Bug Description

Occasionally when manipulating the account tree attempting to assign transactions to existing accounts, the dialog just hangs when the "expand tree" widget is clicked on. It seems to be related to possibly manipulating the dialog too fast, but I really have no idea. It is very frustrating because you lose the entire state of the import (all transactions) when this happens.

0x00007fe18f18abf9 in __GI___poll (fds=0x55eb83c99ac0, nfds=3, timeout=10000) at ../sysdeps/unix/sysv/linux/poll.c:29
29 ../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
(gdb) bt
#0 0x00007fe18f18abf9 in __GI___poll (fds=0x55eb83c99ac0, nfds=3, timeout=10000) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007fe18f6d2439 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007fe18f6d27d2 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007fe18fa561f6 in gtk_dialog_run () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#4 0x00007fe17672cff3 in qif_account_picker_dialog () at /usr/lib/x86_64-linux-gnu/gnucash/gnucash/libgncmod-qif-import.so
#5 0x00007fe17672d89c in () at /usr/lib/x86_64-linux-gnu/gnucash/gnucash/libgncmod-qif-import.so
#6 0x00007fe18cef4f6d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7 0x00007fe18cf07d3e in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8 0x00007fe18cf103f5 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#9 0x00007fe18cf10e0f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00007fe18fa296f5 in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#11 0x00007fe18cef4f6d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007fe18cf07e0e in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007fe18cf103f5 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007fe18cf10e0f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007fe18fa28679 in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#16 0x00007fe18face38b in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#17 0x00007fe18cef4f6d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007fe18cf07ac8 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007fe18cf0fd8f in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#20 0x00007fe18cf10e0f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#21 0x00007fe18fbe42bc in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#22 0x00007fe18facc62c in gtk_propagate_event () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#23 0x00007fe18facca2b in gtk_main_do_event () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#24 0x00007fe18db2f02c in () at /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#25 0x00007fe18f6d2287 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007fe18f6d24c0 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fe18f6d27d2 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007fe18facba37 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#29 0x00007fe190fc1369 in gnc_ui_start_event_loop () at /usr/lib/x86_64-linux-gnu/gnucash/gnucash/libgncmod-gnome-utils.so
#30 0x000055eb82cdc4ef in ()
#31 0x00007fe190080412 in () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#32 0x00007fe19004c209 in () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#33 0x00007fe1900fc458 in () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#34 0x00007fe1900ce353 in () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#35 0x00007fe190106a14 in () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#36 0x00007fe190126bf1 in () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#37 0x00007fe190056cc9 in scm_call_4 () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#38 0x00007fe1900fc2ae in scm_catch_with_pre_unwind_handler () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#39 0x00007fe1900fc530 in scm_c_catch () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#40 0x00007fe19004c058 in () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#41 0x00007fe19004c321 in scm_c_with_continuation_barrier () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#42 0x00007fe1900f9224 in () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#43 0x00007fe18b7c7c42 in GC_call_with_stack_base () at /usr/lib/x86_64-linux-gnu/libgc.so.1
#44 0x00007fe1900f930d in () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#45 0x00007fe1900f934d in scm_with_guile () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#46 0x00007fe1900803a3 in scm_boot_guile () at /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
#47 0x000055eb82cdbe60 in main ()
(gdb)

summary: - QIF import wizard hangs when manipulating account tree
+ 2.6.19 on bionic: QIF import wizard hangs when manipulating account tree
Revision history for this message
Ryan C. Underwood (nemesis-icequake) wrote :

I've also noticed that this happens occasionally if I double-click on the line item itself - the whole dialog hangs. It seems to be some kind of race condition since it's never the same item causing the problem twice.

Revision history for this message
Ryan C. Underwood (nemesis-icequake) wrote :

Also cannot reproduce under valgrind, which indicates that a race condition is to blame (it's running much slower there).

Revision history for this message
Ryan C. Underwood (nemesis-icequake) wrote :
Download full text (15.3 KiB)

Was finally able to reproduce under valgrind with the OFX/QFX import plugin!

==18084== Invalid read of size 8
==18084== at 0x943FD06: g_type_check_instance_cast (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== by 0x538DE78: gnc_tree_view_account_set_selected_account (in /usr/lib/x86_64-linux-gnu/gnucash/gnucash/libgncmod-gnome-utils.so)
==18084== by 0x1D6707DC: gnc_import_select_account (in /usr/lib/x86_64-linux-gnu/gnucash/gnucash/libgncmod-generic-import.so)
==18084== by 0x1D6774F0: ??? (in /usr/lib/x86_64-linux-gnu/gnucash/gnucash/libgncmod-generic-import.so)
==18084== by 0x9419F6C: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== by 0x942CD3D: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== by 0x94353F4: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== by 0x9435E0E: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== by 0x67945E5: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==18084== by 0x669738A: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==18084== by 0x9419F6C: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== by 0x942CAC7: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== Address 0x31db4890 is 976 bytes inside a block of size 1,112 free'd
==18084== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18084== by 0x943EA12: g_type_free_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== by 0x66F62E9: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==18084== by 0x661D3CE: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==18084== by 0x9419E80: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== by 0x942CEB1: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== by 0x94353F4: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== by 0x9435E0E: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== by 0x66BC95F: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==18084== by 0x9420647: g_object_run_dispose (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== by 0x65E8C84: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==18084== by 0x661D3CE: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==18084== Block was alloc'd at
==18084== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18084== by 0x6BF8858: g_malloc (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.5600.1)
==18084== by 0x6C10675: g_slice_alloc (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.5600.1)
==18084== by 0x6C10B28: g_slice_alloc0 (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.5600.1)
==18084== by 0x943E715: g_type_create_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==18084== by 0x941F5A7: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5600.1)
==...

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.