After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 351371 - Crash on Ok in "Transfer" dialog
Crash on Ok in "Transfer" dialog
Status: VERIFIED DUPLICATE of bug 364946
Product: GnuCash
Classification: Other
Component: User Interface General
2.0.x
Other Linux
: Normal critical
: ---
Assigned To: Chris Shoemaker
Chris Shoemaker
: 402524 (view as bug list)
Depends on: 364936
Blocks:
 
 
Reported: 2006-08-14 21:46 UTC by Johannes Engel
Modified: 2018-06-29 21:11 UTC
See Also:
GNOME target: ---
GNOME version: 2.11/2.12


Attachments
patch that maybe fixes this problem (4.51 KB, patch)
2006-08-15 15:26 UTC, Christian Stimming
none Details | Review
Full back trace from comment#7 (6.46 KB, text/plain)
2006-08-15 18:27 UTC, Christian Stimming
  Details

Description Johannes Engel 2006-08-14 21:46:19 UTC
Distribution: Unknown
Package: GnuCash
Severity: blocker
Version: GNOME2.12.2 2.0.1
Gnome-Distributor: SUSE
Synopsis: Crash during HBCI online transaction
Bugzilla-Product: GnuCash
Bugzilla-Component: AqBanking Import
Bugzilla-Version: 2.0.1
BugBuddy-GnomeVersion: 2.0 (2.12.0)
Description:
Description of the crash: GnuCash just crashes


Steps to reproduce the crash:
1. start an online transaction using hbci
2.
3.

Expected Results:
crash

How often does this happen?
always

Additional Information:



Debugging Information:

Backtrace was generated from '/usr/local/bin/gnucash'

Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1231726928 (LWP 25213)]
0xb7f80410 in __kernel_vsyscall ()

Thread 1 (Thread -1231726928 (LWP 25213))

  • #0 __kernel_vsyscall
  • #1 __waitpid_nocancel
    from /lib/libpthread.so.0
  • #2 gnome_init_with_popt_table
    from /opt/gnome/lib/libgnomeui-2.so.0
  • #3 <signal handler called>
  • #4 __kernel_vsyscall
  • #5 raise
    from /lib/libc.so.6
  • #6 abort
    from /lib/libc.so.6
  • #7 g_logv
    from /opt/gnome/lib/libglib-2.0.so.0
  • #8 g_log
    from /opt/gnome/lib/libglib-2.0.so.0
  • #9 g_assert_warning
    from /opt/gnome/lib/libglib-2.0.so.0
  • #10 gtk_tree_model_filter_new
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #11 gtk_tree_model_filter_new
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #12 gtk_tree_model_sort_clear_cache
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #13 gtk_tree_model_sort_new_with_model
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #14 gtk_marshal_BOOLEAN__VOID
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #15 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #16 g_signal_override_class_closure
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #17 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #18 g_signal_emit
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #19 gtk_tree_model_row_changed
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #20 gtk_tree_model_filter_new
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #21 gtk_marshal_BOOLEAN__VOID
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #22 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #23 g_signal_override_class_closure
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #24 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #25 g_signal_emit
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #26 gtk_tree_model_row_changed
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #27 gnc_tree_model_account_event_handler
    at gnc-tree-model-account.c line 1560
  • #28 qof_event_generate_internal
    at qofevent.c line 247
  • #29 xaccSplitCommitEdit
    at Split.c line 541
  • #30 trans_cleanup_commit
    at Transaction.c line 965
  • #31 qof_commit_edit_part2
    at qofutil.c line 321
  • #32 xaccTransCommitEdit
    at Transaction.c line 1044
  • #33 gnc_xfer_dialog_response_cb
    at dialog-transfer.c line 1511
  • #34 gnc_xfer_dialog_run_until_done
    at dialog-transfer.c line 2045
  • #35 gnc_hbci_maketrans_final
    at gnc-hbci-transfer.c line 291
  • #36 gnc_hbci_maketrans
    at gnc-hbci-transfer.c line 150
  • #37 gnc_plugin_hbci_cmd_issue_transaction
    at gnc-plugin-hbci.c line 470
  • #38 g_cclosure_marshal_VOID__VOID
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #39 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #40 g_signal_override_class_closure
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #41 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #42 g_signal_emit
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #43 gtk_accessible_connect_widget_destroyed
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #44 gtk_action_activate
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #45 g_cclosure_marshal_VOID__VOID
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #46 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #47 g_signal_override_class_closure
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #48 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #49 g_signal_emit
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #50 gtk_widget_activate
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #51 gtk_menu_shell_activate_item
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #52 gtk_menu_shell_append
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #53 gtk_menu_attach
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #54 gtk_marshal_BOOLEAN__VOID
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #55 g_value_set_static_boxed
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #56 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #57 g_signal_override_class_closure
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #58 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #59 g_signal_emit
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #60 gtk_widget_get_default_style
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #61 gtk_propagate_event
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #62 gtk_main_do_event
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #63 gdk_add_client_message_filter
    from /opt/gnome/lib/libgdk-x11-2.0.so.0
  • #64 g_main_context_dispatch
    from /opt/gnome/lib/libglib-2.0.so.0
  • #65 g_main_context_prepare
    from /opt/gnome/lib/libglib-2.0.so.0
  • #66 g_main_loop_run
    from /opt/gnome/lib/libglib-2.0.so.0
  • #67 gtk_main
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #68 gnc_ui_start_event_loop
    at gnc-gnome-utils.c line 368
  • #69 inner_main
    at gnucash-bin.c line 479
  • #70 scm_boot_guile
    from /usr/lib/libguile.so.12
  • #71 main
    at gnucash-bin.c line 515
  • #0 __kernel_vsyscall




------- Bug created by bug-buddy at 2006-08-14 21:46 -------

Comment 1 Christian Stimming 2006-08-15 07:44:30 UTC
There was a similar crash reported on gnucash-de, see summary here  https://lists.gnucash.org/pipermail/gnucash-de/2006-August/004277.html and full stack trace here https://lists.gnucash.org/pipermail/gnucash-de/2006-August/004252.html ; the stack trace is similar in that it crashes below gnc_xfer_dialog_run_until_done(), so in terms of the involved HBCI, this is rather similar. The actual failed assertion is different, though. 

Can you please compare the other details to the email on gnucash-de? In particular, which security medium is this? Which version of suse, aqbanking, gwenhywfar, glib2, gtk2, (if chipcard: version of libchipcard), and which messages did you see on the command line? In the HBCI Einzelüberweisung, do you have *any* non-ascii characters (German umlauts), e.g. in the Zahlungsempfänger, Verwendungszweck, Name des Auftraggebers? 
Comment 2 Johannes Engel 2006-08-15 09:25:50 UTC
OK, I'll try to collect the required information.

openSuSE 10.1
aqbanking-2.2.0-0.oc2pus.1
gwenhywfar-2.3.1-0.oc2pus.1
glib2-2.12.0-4.1
gtk2-2.8.10-50

medium: key-file

I did not start gnucash via console, so I cannot give you the result.

Strange thing: The transaction gets commited even though gnucash crashes and I was not asked for my PIN. Only gnucash does not store a transaction as I see today syncing my account.
Comment 3 Johannes Engel 2006-08-15 09:26:29 UTC
Ah, I forgot to mention: There are no umlauts at all in the respective transaction.
Comment 4 Christian Stimming 2006-08-15 09:38:02 UTC
Thanks for the info. *sigh* The aqbanking version is different from the gnucash-de report, so it is very likely not related to the aqbanking itself, and also there are no known issues with this up-to-date aqbanking/gwenhywfar versions.

The glib2 version is very new, though -- did you update this yourself? The stock suse-10.1 only has glib2-2.8.5. It would be interesting to hear whether this crash occurs also with the older glib2-2.8.x, although that's probably too difficult for you to check. 

As for comment#2, "The transaction gets commited": This happens because aqbanking stores the transaction in ~/.banking/backends/aqhbci/... before this crash occurs. It is being committed to the bank server upon your next HBCI action, for example your next transaction statement download.

As for the console messages: You said this crash occurs every time (is this true?). Could you try to have this crash one more time, but start gnucash from the command line? Simply type "gnucash" on a Terminal. Then, right before you click "Ok" in the "Buchen" ("Transfer") dialog, please check which messages have already been shown. Then click "Ok" which will crash. Then check again which messages are newly added at the console, and then please post them here. The other bugreport showed one particular failed assertion on the console: https://lists.gnucash.org/pipermail/gnucash-de/2006-August/004215.html
Comment 5 Johannes Engel 2006-08-15 09:47:40 UTC
I did as you told me. That's the result:

(gnucash:6302): Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()

Gtk-ERROR **: file gtktreemodelsort.c: line 2419 (gtk_tree_model_sort_clear_cache_helper): assertion failed: (level != NULL)
aborting...

Seems to be the same as next door.
Comment 6 Christian Stimming 2006-08-15 15:26:22 UTC
Created attachment 70955 [details] [review]
patch that maybe fixes this problem

If the error is due to non-ascii characters from aqbanking's ~/.banking/settings.conf *or* ~/.banking/backends/aqhbci/settings.conf, then this patch will remove all invalid utf8 characters from the respective data.
Comment 7 Christian Stimming 2006-08-15 18:15:11 UTC
*sigh* After some very long email discussion, we've pinned down the cause of the "Pango-WARNING" and fixed it (it was probably due to some aqbanking non-utf8 string), but unfortunately the failed assertion in gtk_tree_model_sort_clear_cache_helper() still occurs and gnucash crashes. 

Again the version numbers in question: Suse 10.1; aqbanking-2.2.0-0.oc2pus.1, gwenhywfar-2.3.1-0.oc2pus.1 (both the newest); glib2-2.12.0-4.1 (probably manually updated), gtk2-2.8.10-50, (stock suse10.1 version); gnucash-2.0.1. The other bugreport on gnucash-de has Debian, aqbanking 2.0.0, gwenhywfar 2.3.0, glib2 2.10.3-3, gtk2 2.8.18-1, gnucash 2.0.0 and there the crash also occurs although  the Pango-WARNING has been fixed.

In this report, Johannes was able to provide a more detailed back trace with various variables being printed:

Gtk-ERROR **: file gtktreemodelsort.c: line 2419
(gtk_tree_model_sort_clear_cache_helper): assertion failed: (level != NULL)
aborting...

Program received signal SIGABRT, Aborted.

Thread NaN (LWP 13146)

  • #0 __kernel_vsyscall
  • #1 raise
    from /lib/libc.so.6
  • #2 abort
    from /lib/libc.so.6
  • #3 g_logv
    from /opt/gnome/lib/libglib-2.0.so.0
  • #4 g_log
    from /opt/gnome/lib/libglib-2.0.so.0
  • #5 g_assert_warning
    from /opt/gnome/lib/libglib-2.0.so.0
  • #6 gtk_tree_model_sort_clear_cache_helper
    at gtktreemodelsort.c line 2419
  • #7 gtk_tree_model_sort_clear_cache_helper
    at gtktreemodelsort.c line 2424
  • #8 gtk_tree_model_sort_increment_stamp
    at gtktreemodelsort.c line 2410
  • #9 gtk_tree_model_sort_row_changed
    at gtktreemodelsort.c line 558
  • #10 _gtk_marshal_VOID__BOXED_BOXED
    at gtkmarshalers.c line 1146
  • #11 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #12 g_signal_override_class_closure
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #13 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #14 g_signal_emit
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #15 IA__gtk_tree_model_row_changed
    at gtktreemodel.c line 1411
  • #16 gtk_tree_model_filter_row_changed
    at gtktreemodelfilter.c line 1106
  • #17 _gtk_marshal_VOID__BOXED_BOXED
    at gtkmarshalers.c line 1146
  • #18 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #19 g_signal_override_class_closure
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #20 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #21 g_signal_emit
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #22 IA__gtk_tree_model_row_changed
    at gtktreemodel.c line 1411
  • #23 gnc_tree_model_account_event_handler
    at gnc-tree-model-account.c line 1560
  • #24 qof_event_generate_internal
    at qofevent.c line 247
  • #25 xaccSplitCommitEdit
    at Split.c line 541
  • #26 trans_cleanup_commit
    at Transaction.c line 965
  • #27 qof_commit_edit_part2
    at qofutil.c line 321
  • #28 xaccTransCommitEdit
    at Transaction.c line 1044
  • #29 gnc_xfer_dialog_response_cb
    at dialog-transfer.c line 1511
  • #30 gnc_xfer_dialog_run_until_done
    at dialog-transfer.c line 2045
  • #31 gnc_hbci_maketrans_final
    at gnc-hbci-transfer.c line 291
  • #32 gnc_hbci_maketrans
    at gnc-hbci-transfer.c line 150
  • #33 gnc_plugin_hbci_cmd_issue_transaction
    at gnc-plugin-hbci.c line 470
  • #6 gtk_tree_model_sort_clear_cache_helper
    at gtktreemodelsort.c line 2419
  • #25 xaccSplitCommitEdit
    at Split.c line 541
  • #29 gnc_xfer_dialog_response_cb
    at dialog-transfer.c line 1511
  • #30 gnc_xfer_dialog_run_until_done
    at dialog-transfer.c line 2045
$4 = {dialog = 0x86a2978, amount_edit = 0x8496258, date_entry =
0x863c8d0, num_entry = 0x85c96a0, description_entry = 0x85c9740,
memo_entry = 0x865c030, conv_forward = 0x865ecf0,
  conv_reverse = 0x865ee00, from_window = 0x863d400, from_tree_view =
0x84e3340, from_commodity = 0x84d4250, to_window = 0x863d388,
to_tree_view = 0x84e3258, to_commodity = 0x84d4250,
  qf = 0x87a0400, quickfill = XFER_DIALOG_FROM, desc_start_selection =
0, desc_end_selection = 0, desc_cursor_position = 0, desc_didquickfill =
0, transferinfo_label = 0x861bf00,
  from_transfer_label = 0x865b338, to_transfer_label = 0x865b5e0,
from_currency_label = 0x865b448, to_currency_label = 0x865e828,
from_show_button = 0x81911e0, to_show_button = 0x8191258,
  curr_xfer_table = 0x865a4e0, price_edit = 0x8496320, to_amount_edit =
0x84963e8, price_radio = 0x81912d0, amount_radio = 0x8191348, tips =
0x86aac18, book = 0x84d4680, pricedb = 0x8499180,
  exch_rate = 0x0, transaction_cb = 0xb6830280
<gnc_hbci_dialog_xfer_cb>, transaction_user_data = 0x835d900}
Comment 8 Christian Stimming 2006-08-15 18:27:01 UTC
Created attachment 70969 [details]
Full back trace from comment#7
Comment 9 Johannes Engel 2006-08-15 20:38:47 UTC
Since the problem also occurs in the "manual" transaction dialog it seems not to be related to aqbanking.
I just tried the most recent SVN version which still has got this error.
Comment 10 Johannes Engel 2006-08-15 22:28:23 UTC
With the help of Christian I found out a new fact:
The crash only happens if I try to assign the transaction to categories such that the money goes from an activa account to an expenses/income account (don't know the correct translations for the german Erträge/Aufwendungen).
Maybe that could help to track down the cause.
Comment 11 Christian Stimming 2006-08-16 08:07:14 UTC
Re comment#10: Steps to reproduce:

1. Click Actions -> Transfer...
2. At the left side account selection, select an Asset account, e.g. Assets:Checking Account
3. At the right side account selection, activate the checkbox "show income/expense", then select an Expense account
4. Insert some values for Description and value
5. Press "ok".

Crash should occur with the above back trace.
Comment 12 Chris Shoemaker 2006-10-12 04:13:13 UTC
I can't reproduce this with the instructions in comment #11.  I'm thinking this might have been fixed by r14709.  Unless I hear otherwise, I plan on resolving this bug as fixed.  NEEDINFO for now.
Comment 13 Johannes Engel 2006-10-12 07:54:58 UTC
The bug still occurs in release r14933.
Maybe it depends on the translation used by me (german). Christian, do you know more about that possibility?
Comment 14 Christian Stimming 2006-10-18 11:19:02 UTC
No, I don't think this depends on the translation... but you can check for yourself:

  LANG=C gnucash

and see whether it still crashes (I'd guess it does). Eventually we're stuck here because we cannot reproduce the problem. Maybe this all goes away when you update to gtk-2.10.x ?
Comment 15 Johannes Engel 2006-10-23 12:41:53 UTC
You're right, Christian, it also happens with LANG=C. At the moment there is no gtk-2.10 available for openSuSE 10.1. I'll see what happens with 10.2 if my new laptop arrives. ;)
Comment 16 Christian Stimming 2006-11-02 10:58:10 UTC
bug#364946 looks similarly weird and related to the gtk_tree_model as well.
Comment 17 Andreas Köhler 2006-12-26 10:42:18 UTC
Any news WRT GTK+ 2.10.x?
Comment 18 Johannes Engel 2007-01-06 23:20:29 UTC
GTK+ 2.10.6-13:
Same problem:
Gtk-ERROR **: file gtktreemodelsort.c: line 2293 (gtk_tree_model_sort_clear_cache_helper): assertion failed: (level != NULL)
aborting...
Comment 19 Christian Stimming 2007-01-31 09:08:50 UTC
*** Bug 402524 has been marked as a duplicate of this bug. ***
Comment 20 Christian Stimming 2007-02-26 08:55:13 UTC
If these gtk_tree_model_sort issues are really related to accessibility, then the version numbers of gail and atk are probably much more important. On a stock opensuse10.2 we have gail-1.9.3-17, atk-1.12.3-15, gtk2-2.10.6-24.2 and this crash does not occur.
Comment 21 Christian Stimming 2007-02-27 10:19:18 UTC
The main bug#364946 now has an easy testcase to reproduce it, so this bug will be soon closed as a duplicate of the other one, which in turn will hopefully be fixed soon.
Comment 22 Andreas Köhler 2007-03-01 09:32:33 UTC
The soon for this bug is now :)
Thanks for the good stack!


*** This bug has been marked as a duplicate of 364946 ***
Comment 23 John Ralls 2018-06-29 21:11:23 UTC
GnuCash bug tracking has moved to a new Bugzilla host. This bug has been copied to https://bugs.gnucash.org/show_bug.cgi?id=351371. Please update any external references or bookmarks.