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 107953 - Crash while generating report
Crash while generating report
Status: VERIFIED FIXED
Product: GnuCash
Classification: Other
Component: Reports
1.8.x
Other Linux
: Normal normal
: ---
Assigned To: Derek Atkins
Derek Atkins
Depends on:
Blocks:
 
 
Reported: 2003-03-10 01:37 UTC by rickziegler
Modified: 2018-06-29 20:29 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Back trace generated during Income Expense report (6.15 KB, text/plain)
2003-03-12 01:33 UTC, rickziegler
Details
Backtrace generated during Advanced Portfolio report (5.91 KB, text/plain)
2003-03-12 01:37 UTC, rickziegler
Details

Description rickziegler 2003-03-10 01:37:27 UTC
Change the options for a report.

Press apply
Press OK while it is still working.

Get a crash:

Backtrace was generated from '/usr/bin/guile'

(no debugging symbols found)...[New Thread 8192 (LWP 2370)]
0x420ae169 in wait4 () from /lib/i686/libc.so.6

Thread 1 (Thread 8192 (LWP 2370))

  • #0 wait4
    from /lib/i686/libc.so.6
  • #1 __DTOR_END__
    from /lib/i686/libc.so.6
  • #2 waitpid
    from /lib/i686/libpthread.so.0
  • #3 gnome_segv_handle
    from /usr/lib/libgnomeui.so.32
  • #4 __pthread_sighandler
    from /lib/i686/libpthread.so.0
  • #5 <signal handler called>
  • #6 scm_procedure_property
    from /usr/lib/libguile.so.9
  • #7 scm_procedure_name
    from /usr/lib/libguile.so.9
  • #8 scm_iprin1
    from /usr/lib/libguile.so.9
  • #9 scm_iprlist
    from /usr/lib/libguile.so.9
  • #10 display_frame_expr
    from /usr/lib/libguile.so.9
  • #11 display_application
    from /usr/lib/libguile.so.9
  • #12 display_frame
    from /usr/lib/libguile.so.9
  • #13 display_backtrace_body
    from /usr/lib/libguile.so.9
  • #14 scm_internal_catch
    from /usr/lib/libguile.so.9
  • #15 scm_display_backtrace
    from /usr/lib/libguile.so.9
  • #16 handler_message
    from /usr/lib/libguile.so.9
  • #17 scm_handle_by_message
    from /usr/lib/libguile.so.9
  • #18 scm_ithrow
    from /usr/lib/libguile.so.9
  • #19 scm_error
    from /usr/lib/libguile.so.9
  • #20 scm_wrong_type_arg
    from /usr/lib/libguile.so.9
  • #21 scm_wta
    from /usr/lib/libguile.so.9
  • #22 scm_deval
    from /usr/lib/libguile.so.9
  • #23 scm_deval
    from /usr/lib/libguile.so.9
  • #24 scm_deval
    from /usr/lib/libguile.so.9
  • #25 scm_deval
    from /usr/lib/libguile.so.9
  • #26 scm_dapply
    from /usr/lib/libguile.so.9
  • #27 scm_apply
    from /usr/lib/libguile.so.9
  • #28 gh_call2
    from /usr/lib/libguile.so.9
  • #29 gnc_options_dialog_apply_cb
    from /usr/lib/gnucash/libgncmod-report-gnome.so.0
  • #30 gnc_options_dialog_apply_stub_cb
    from /usr/lib/gnucash/libgncmod-gnome-utils.so.0
  • #31 gtk_marshal_NONE__NONE
    from /usr/lib/libgtk-1.2.so.0
  • #32 gtk_handlers_run
    from /usr/lib/libgtk-1.2.so.0
  • #33 gtk_signal_real_emit
    from /usr/lib/libgtk-1.2.so.0
  • #34 gtk_signal_emit
    from /usr/lib/libgtk-1.2.so.0
  • #35 gtk_button_clicked
    from /usr/lib/libgtk-1.2.so.0
  • #36 gtk_real_button_released
    from /usr/lib/libgtk-1.2.so.0
  • #37 gtk_marshal_NONE__NONE
    from /usr/lib/libgtk-1.2.so.0
  • #38 gtk_signal_real_emit
    from /usr/lib/libgtk-1.2.so.0
  • #39 gtk_signal_emit
    from /usr/lib/libgtk-1.2.so.0
  • #40 gtk_button_released
    from /usr/lib/libgtk-1.2.so.0
  • #41 gtk_button_button_release
    from /usr/lib/libgtk-1.2.so.0
  • #42 gtk_marshal_BOOL__POINTER
    from /usr/lib/libgtk-1.2.so.0
  • #43 gtk_signal_real_emit
    from /usr/lib/libgtk-1.2.so.0
  • #44 gtk_signal_emit
    from /usr/lib/libgtk-1.2.so.0
  • #45 gtk_widget_event
    from /usr/lib/libgtk-1.2.so.0
  • #46 gtk_propagate_event
    from /usr/lib/libgtk-1.2.so.0
  • #47 gtk_main_do_event
    from /usr/lib/libgtk-1.2.so.0
  • #48 gdk_event_dispatch
    from /usr/lib/libgdk-1.2.so.0
  • #49 g_main_dispatch
    from /usr/lib/libglib-1.2.so.0
  • #50 g_main_iterate
    from /usr/lib/libglib-1.2.so.0
  • #51 g_main_run
    from /usr/lib/libglib-1.2.so.0
  • #52 gtk_main
    from /usr/lib/libgtk-1.2.so.0
  • #53 gnc_ui_start_event_loop
    from /usr/lib/libgncgnome.so.0
  • #54 gw__tmp781_gnc_ui_start_event_loop_wrapper
    from /usr/lib/libgw-gnc.so.0
  • #55 scm_ceval
    from /usr/lib/libguile.so.9
  • #56 scm_ceval
    from /usr/lib/libguile.so.9
  • #57 scm_ceval
    from /usr/lib/libguile.so.9
  • #58 scm_ceval
    from /usr/lib/libguile.so.9
  • #59 scm_eval_3
    from /usr/lib/libguile.so.9
  • #60 scm_eval_x
    from /usr/lib/libguile.so.9
  • #61 scm_shell
    from /usr/lib/libguile.so.9
  • #62 invoke_main_func
    from /usr/lib/libguile.so.9
  • #63 scm_internal_lazy_catch
    from /usr/lib/libguile.so.9
  • #64 scm_boot_guile_1
    from /usr/lib/libguile.so.9
  • #65 scm_boot_guile
    from /usr/lib/libguile.so.9
  • #66 main
  • #67 __libc_start_main
    from /lib/i686/libc.so.6
  • #0 wait4
    from /lib/i686/libc.so.6

Comment 1 Derek Atkins 2003-03-10 03:03:40 UTC
What version of gnucash?

What report?
Comment 2 rickziegler 2003-03-11 00:12:58 UTC
Every report I tried exhibited this behavior.

Try:

Income/Expense
Advanced Portfolio
Expense Piechart
Net worth barchart
...

I am using 1.8.1
Comment 3 Derek Atkins 2003-03-11 15:39:25 UTC
First, can you upgrade to 1.8.2 and try again.
Second, can you provide any scheme backtrace that might be displayed
on the terminal where you started gnucash?

If you start gnucash from a menu option, can you NOT do that -- run
"gnucash &" from your terminal, and then try to reproduce this?

I suspect you have a lot of transactions, right?  About how many?  I
don't have a test account with lots of transactions, so I cannot click
"Apply, OK" quick enough to reproduce what I suspect is a race
condition.  Alternatively, can you supply your data file so I have a
working dataset to test with?
Comment 4 rickziegler 2003-03-12 01:33:57 UTC
Created attachment 14949 [details]
Back trace generated during Income Expense report
Comment 5 rickziegler 2003-03-12 01:34:21 UTC
Installed 1.8.2, and ran from a terminal.  See attached scheme backtraces.

Comment 6 rickziegler 2003-03-12 01:37:29 UTC
Created attachment 14950 [details]
Backtrace generated during Advanced Portfolio report
Comment 7 Derek Atkins 2003-03-13 04:39:18 UTC
Uh, you missed the actual backtraces in your attachments...
Comment 8 rickziegler 2003-03-14 02:34:18 UTC
Sorry, I mistook all the debug output for a scheme backtrace ( I
havent't seen a scheme backtrace before... )

There was no backtrace generated.
That is where the output stops.

Do any of the other regular developers have large files for testing?

I am reluctant to send you all my financial transactions going back
five quarters, if I can avoid it! :)

My gnucash data file is ~2.5 megs.
Comment 9 Derek Atkins 2003-05-22 21:50:51 UTC
Hi,

I just started looking at this again.  I still cannot reproduce it
here with my data set.  The tail end of your income/expense report
seems to have a backtrace:

guppi-text-state.c:guppi_text_state_get_block:338: text changed size
122.494 14.614
guppi-text-state.c:guppi_text_state_get_block:338: text changed size
139.186 12.274
guppi-layout-engine.c:schedule_layout:508: layout scheduled
Backtrace:

See, the backtrace would have been here.  Unfortunately I don't have a
scheme backtrace handy to show you, but it would have listed a bunch
of procedures and ended with a "wrong argument type" message..

But as I said, I cannot reproduce this.  Perhaps you can email me a
sample data file out-of-band instead of posting it here?
Comment 10 Derek Atkins 2003-05-23 14:59:01 UTC
AHA!  I was just able to reproduce this today (using a P&L report).
Comment 11 Derek Atkins 2003-05-23 17:09:49 UTC
Ok, the problem is that in the middle of the Apply function it tries
to refresh the screen, which opens up the GTK event window, which
allows you to hit "OK", which then runs the apply (again), and closes
the window (thus destroying state).  So, when control finally pops
back up the stack to the original "apply", the existing state is no
longer there.  Oops.

I've got a simple patch which fixes the problem by disallowing you
from hitting "ok" until the apply actually finishes.  This should
prevent this crash, but there is an underlying issue going on (the
crash might occur in other ways).  Hopefully the gnome2 port can fix
this -- I think it's somewhat related to an MDI issue.  In particular,
the gnc_mdi_show_progress() calls gtk_main_iteration() which accepts
the button press.

Anyways, fixes are applied to CVS and 1.8.  Thanks for reporting this.
Comment 12 John Ralls 2018-06-29 20:29:52 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=107953. Please update any external references or bookmarks.