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 478106 - crash in GnuCash Finance Management: Transfer funds, exchange...
crash in GnuCash Finance Management: Transfer funds, exchange...
Status: RESOLVED FIXED
Product: GnuCash
Classification: Other
Component: General
2.2.x
Other All
: High critical
: ---
Assigned To: Andreas Köhler
Andreas Köhler
Depends on:
Blocks:
 
 
Reported: 2007-09-18 17:49 UTC by Elio Voci
Modified: 2018-06-29 21:50 UTC
See Also:
GNOME target: ---
GNOME version: 2.17/2.18



Description Elio Voci 2007-09-18 17:49:25 UTC
What were you doing when the application crashed?
Transfer funds, exchange rate=1


Distribution: Debian lenny/sid
Gnome Release: 2.18.3 2007-07-03 (Debian)
BugBuddy Version: 2.18.1

System: Linux 2.6.21.1-elio2 #1 SMP Sun Jun 3 23:08:27 EEST 2007 i686
X Vendor: The X.Org Foundation
X Vendor Release: 10300000
Selinux: No
Accessibility: Disabled
GTK+ Theme: Nuvola
Icon Theme: Nuvola

Memory status: size: 69554176 vsize: 69554176 resident: 40128512 share: 15753216 rss: 40128512 rss_rlim: 4294967295
CPU usage: start_time: 1190136585 rtime: 3026 utime: 2917 stime: 109 cutime:17 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100

Backtrace was generated from '/opt/gnucash/bin/gnucash'

Using host libthread_db library "/lib/i686/cmov/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1231419728 (LWP 6033)]
[New Thread -1253090416 (LWP 6043)]
0xffffe410 in __kernel_vsyscall ()

Thread 1 (Thread -1231419728 (LWP 6033))

  • #0 __kernel_vsyscall
  • #1 ??
    from /lib/i686/cmov/libpthread.so.0
  • #2 libgnomeui_segv_handle
    at gnome-ui-init.c line 872
  • #3 <signal handler called>
  • #4 strcmp
    from /lib/i686/cmov/libc.so.6
  • #5 gnc_xfer_dialog_response_cb
    at dialog-transfer.c line 1451
  • #6 gnc_xfer_dialog_run_until_done
    at dialog-transfer.c line 1945
  • #7 gnc_xfer_dialog_run_exchange_dialog
    at dialog-transfer.c line 2124
  • #8 gnc_split_register_handle_exchange
    at split-register-control.c line 1146
  • #9 gnc_split_register_save
    at split-register.c line 1367
  • #10 gnc_split_reg_record
    at gnc-split-reg.c line 1647
  • #11 gnc_split_reg_enter
    at gnc-split-reg.c line 1714
  • #12 gsr_default_enter_handler
    at gnc-split-reg.c line 1731
  • #13 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #14 ??
    from /usr/lib/libgobject-2.0.so.0
  • #15 ??
  • #16 ??
  • #0 __kernel_vsyscall


----------- .xsession-errors ---------------------
** Message: drive = 0
** Message: volume = 0
** Message: drive = 0
** Message: volume = 0
** Message: drive = 0
** Message: volume = 0
** Message: drive = 0
** Message: volume = 0
** Message: drive = 0
** Message: volume = 0
** Message: drive = 0
** Message: volume = 0
** Message: drive = 0
** Message: volume = 0
"/opt/gnucash/bin/gnucash": not in executable format: File format not recognized
--------------------------------------------------
Comment 1 Andreas Köhler 2007-09-29 00:30:39 UTC
That is a really good stacktrace!
Is this crash reproducible for you?  If it is, may you attach a minimal example or step-by-step guide so that we can reproduce it?
We wondered why `to' in frame #5 is NULL, coming directly from xaccTransGetCurrency.  Where does that transaction come from?  Did you enter it manually, is it qif- or hbci-imported?  Did you log-replay it?
Thanks in advance!
Comment 2 Elio Voci 2007-09-29 07:35:10 UTC
I am sorry!
I cannot reproduce this. I was entering some expense in a split, and for some reason I found myself in the exchange rate dialog, although I thought that should not have been the case (but this could have been my wrong feeling).
I do not remember exactly what was the sequence, and the straight case I have tried do not reproduce the error. 
Comment 3 Christian Stimming 2007-10-30 09:22:12 UTC
Doesn't this strack trace mean we should add some argument sanity checking into gnc_xfer_dialog_response_cb() ?
Comment 4 Phil Longstaff 2009-05-01 15:02:20 UTC
Is this still a problem?
Comment 5 Charles Day 2009-05-01 23:02:12 UTC
I can easily add a one-liner sanity check to the dialog to prevent the crash. I'll go ahead and commit that. I wouldn't know how to reproduce the actual problem though (if it is still possible), which is that somehow the transaction didn't have a commodity. 
Comment 6 Charles Day 2009-05-01 23:24:30 UTC
Committed as r18065. Setting target to 2.3.0.

As far as how to reproduce it, I can tell from the stack trace that the user was editing an existing transaction rather than a brand new one (in frame 9, trans != blank_trans). The user was on the "blank" row in that transaction (in frame 9, split=0x0). This is the row where you would enter an additional split. Changes had been made to the row, otherwise gnc_split_register_handle_exchange() would not be called. So the user must have entered something. The user's final action was to press Enter on the row.

Somehow at that point the transaction did not have a currency.

I have no idea how to reproduce that or whether it was even an existing problem with the transaction before it was even edited in the register.

At least the crash is prevented.
Comment 7 John Ralls 2018-06-29 21:50:01 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=478106. Please update any external references or bookmarks.