SIGSEGV in deleting transactions (2.7.3)

Fabio Coatti fabio.coatti at gmail.com
Sun Jan 21 16:03:22 EST 2018


Sry, the dialog option I was referring to is the one that appears when you
delete a transaction, asking if you want to delete, delete and don't be
asked again or deleted and don't asked again in the current session.
Anyway, this proved to be wrong, I simply deleted transactions that were
ok (no bug triggering) for three times in a row and when I selected "don't
remind me again" I was working on a "bad" transaction. A unlucky pick.
I'm going to open a bug, thanks for the hint. Maybe this situation could be
caused by having deleted one account with all his transactions. I was
assuming that both splits were going to be deleted but I get that my
assumption was wrong.

Il giorno dom 21 gen 2018 alle ore 21:37 John Ralls <jralls at ceridwen.us> ha
scritto:

> Don't remind me of *what*?
>
> Anyway, the problem is obvious from the first tow stack frames: You've
> deleted the transaction out from under one of the business pages (can't
> tell from the backtrace which one and it probably doesn't matter) and so
> there's no primary transaction. xaccTransCountSplits doesn't protect itself
> from being called with a null transaction (it should) and
> gnc_plugin_business_update_menus doesn't check that it got a transaction
> before calling it (it should), so boom.
>
> Please file a bug report so that we don't forget. Thanks.
>
> Regards,
> John Ralls
>
> > On Jan 21, 2018, at 12:16 PM, Fabio Coatti <fabio.coatti at gmail.com>
> wrote:
> >
> > Another bit of information: I can see this issue when I tick "don't
> remind
> > me again in this session" option. If I leave it unticked, the crash does
> > not happen.
> >
> > Il giorno dom 21 gen 2018 alle ore 20:16 Fabio Coatti <
> > fabio.coatti at gmail.com> ha scritto:
> >
> >> Hi All,
> >> I'm testing out gnucash 2.7.3 (nice step from 2.6.x, BTW, thanks) and I
> >> very often get a SIGSEGV when deleting transaction, albeit not all the
> >> times.
> >> I tried to get a core and a backtrack, but probably I still have too
> many
> >> optimizations active.
> >> In any case, this is what I got; if you want a specific
> >> testing/compilation option just let me know, I'll try to do what I can.
> >>
> >> Program terminated with signal SIGSEGV, Segmentation fault.
> >> #0  xaccTransCountSplits (trans=trans at entry=0x0) at Transaction.c:2318
> >> 2318        FOR_EACH_SPLIT(trans, i++);
> >> [Current thread is 1 (LWP 15888)]
> >>
> >> (gdb) bt
> >> #0  xaccTransCountSplits (trans=trans at entry=0x0) at Transaction.c:2318
> >> #1  0x00007ea1fbf46473 in gnc_plugin_business_update_menus
> >> (plugin_page=<optimized out>) at gnc-plugin-business.c:926
> >> #2  0x00007ea1fbf466bc in gnc_plugin_business_main_window_page_changed
> >> (window=<optimized out>, page=0x57bb548b19e0, user_data=<optimized
> out>) at
> >> gnc-plugin-business.c:946
> >> #3  0x00007ea1f9f71555 in g_closure_invoke () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #4  0x00007ea1f9f5de43 in ?? () from /usr/lib64/libgobject-2.0.so.0
> >> #5  0x00007ea1f9f61f55 in g_signal_emit_valist () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #6  0x00007ea1f9f62eb8 in g_signal_emit_by_name () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #7  0x00007ea1fbc28656 in gnc_main_window_generate_title
> >> (window=window at entry=0x57bb507d43a0) at gnc-main-window.c:1536
> >> #8  0x00007ea1fbc287ae in gnc_main_window_update_title
> >> (window=0x57bb507d43a0) at gnc-main-window.c:1558
> >> #9  0x00007ea1f9c93add in g_list_foreach () from
> >> /usr/lib64/libglib-2.0.so.0
> >> #10 0x00007ea1fbc277c0 in gnc_main_window_update_all_titles () at
> >> gnc-main-window.c:1566
> >> #11 gnc_main_window_book_dirty_cb (book=0x57bb525f0c80, dirty=1,
> >> user_data=<optimized out>) at gnc-main-window.c:1576
> >> #12 0x00007ea1fb6dd752 in qof_commit_edit_part2 (inst=0x57bb54071a70,
> >> on_error=on_error at entry=0x7ea1fb60c0a0 <commit_err>,
> on_done=on_done at entry=0x0,
> >> on_free=on_free at entry=0x7ea1fb60bed0 <xaccFreeSplit>) at
> >> qofinstance.cpp:1011
> >> #13 0x00007ea1fb60e13a in xaccSplitCommitEdit (s=0x57bb54071a70) at
> >> Split.c:1004
> >> #14 0x00007ea1fb614645 in do_destroy (trans=0x57bb52c4b700) at
> >> Transaction.c:1531
> >> #15 0x00007ea1fb6dd6ef in qof_commit_edit_part2 (inst=0x57bb52c4b700,
> >> on_error=on_error at entry=0x7ea1fb614c10 <trans_on_error>,
> >> on_done=on_done at entry=0x7ea1fb611b60 <trans_cleanup_commit>,
> >> on_free=on_free at entry=0x7ea1fb6145a0 <do_destroy>)
> >>   at qofinstance.cpp:1048
> >> #16 0x00007ea1fb613e9a in xaccTransCommitEdit (trans=0x57bb52c4b700) at
> >> Transaction.c:1692
> >> #17 0x00007ea1f942ae87 in gnc_split_register_delete_current_trans
> >> (reg=<optimized out>) at split-register.c:1140
> >> #18 0x00007ea1fbf58922 in
> gnc_plugin_page_register_cmd_delete_transaction
> >> (action=0x57bb54b03630, plugin_page=0x57bb548b19e0) at
> >> gnc-plugin-page-register.c:3575
> >> #19 0x00007ea1f9f71555 in g_closure_invoke () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #20 0x00007ea1f9f5de43 in ?? () from /usr/lib64/libgobject-2.0.so.0
> >> #21 0x00007ea1f9f61f55 in g_signal_emit_valist () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #22 0x00007ea1f9f631a7 in g_signal_emit () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #23 0x00007ea1fa8a905a in ?? () from /usr/lib64/libgtk-3.so.0
> >> #24 0x00007ea1fa662789 in ?? () from /usr/lib64/libgtk-3.so.0
> >> #25 0x00007ea1f9f624bd in g_signal_emit_valist () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #26 0x00007ea1f9f631a7 in g_signal_emit () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #27 0x00007ea1fa7f8d75 in ?? () from /usr/lib64/libgtk-3.so.0
> >> #28 0x00007ea1fa7f8e45 in ?? () from /usr/lib64/libgtk-3.so.0
> >> #29 0x00007ea1f9f71555 in g_closure_invoke () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #30 0x00007ea1f9f5df1b in ?? () from /usr/lib64/libgobject-2.0.so.0
> >> #31 0x00007ea1f9f61f55 in g_signal_emit_valist () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #32 0x00007ea1f9f631a7 in g_signal_emit () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #33 0x00007ea1fa7f7360 in ?? () from /usr/lib64/libgtk-3.so.0
> >> #34 0x00007ea1f5e670e2 in ffi_call_unix64 () from /usr/lib64/libffi.so.6
> >> #35 0x00007ea1f5e63e8c in ffi_call () from /usr/lib64/libffi.so.6
> >> #36 0x00007ea1f9f7a35d in g_cclosure_marshal_generic_va () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #37 0x00007ea1f9f624bd in g_signal_emit_valist () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #38 0x00007ea1f9f631a7 in g_signal_emit () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #39 0x00007ea1fa7a42b1 in ?? () from /usr/lib64/libgtk-3.so.0
> >> #40 0x00007ea1f9f7a019 in g_cclosure_marshal_VOID__BOXEDv () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #41 0x00007ea1f9f624bd in g_signal_emit_valist () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #42 0x00007ea1f9f631a7 in g_signal_emit () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #43 0x00007ea1fa79ae4e in ?? () from /usr/lib64/libgtk-3.so.0
> >> #44 0x00007ea1fa7a5d8b in ?? () from /usr/lib64/libgtk-3.so.0
> >> #45 0x00007ea1fa7a398a in ?? () from /usr/lib64/libgtk-3.so.0
> >> #46 0x00007ea1fa834e11 in gtk_event_controller_handle_event () from
> >> /usr/lib64/libgtk-3.so.0
> >> #47 0x00007ea1fa5cdbab in ?? () from /usr/lib64/libgtk-3.so.0
> >> #48 0x00007ea1fa717068 in ?? () from /usr/lib64/libgtk-3.so.0
> >> #49 0x00007ea1f9f624bd in g_signal_emit_valist () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #50 0x00007ea1f9f631a7 in g_signal_emit () from
> >> /usr/lib64/libgobject-2.0.so.0
> >> #51 0x00007ea1fa5cdd2c in ?? () from /usr/lib64/libgtk-3.so.0
> >> #52 0x00007ea1fa71f57e in ?? () from /usr/lib64/libgtk-3.so.0
> >> #53 0x00007ea1fa722628 in gtk_main_do_event () from
> >> /usr/lib64/libgtk-3.so.0
> >> #54 0x00007ea1f82b1933 in ?? () from /usr/lib64/libgdk-3.so.0
> >> #55 0x00007ea1f82cf0c2 in ?? () from /usr/lib64/libgdk-3.so.0
> >> #56 0x00007ea1f9c987ff in g_main_context_dispatch () from
> >> /usr/lib64/libglib-2.0.so.0
> >> #57 0x00007ea1f9c9a418 in ?? () from /usr/lib64/libglib-2.0.so.0
> >> #58 0x00007ea1f9c9b382 in g_main_loop_run () from
> >> /usr/lib64/libglib-2.0.so.0
> >> #59 0x00007ea1fa71966d in gtk_main () from /usr/lib64/libgtk-3.so.0
> >> #60 0x00007ea1fbc2438d in gnc_ui_start_event_loop () at
> >> gnc-gnome-utils.c:652
> >> #61 0x000057bb4ea7dab8 in inner_main (closure=<optimized out>,
> >> argc=<optimized out>, argv=<optimized out>) at gnucash-bin.c:675
> >> #62 0x00007ea1faed072c in ?? () from /usr/lib64/libguile-2.2.so.1
> >> #63 0x00007ea1fae6871a in ?? () from /usr/lib64/libguile-2.2.so.1
> >> #64 0x00007ea1fae63a85 in ?? () from /usr/lib64/libguile-2.2.so.1
> >> #65 0x00007ea1faf032ca in scm_call_n () from
> /usr/lib64/libguile-2.2.so.1
> >> #66 0x00007ea1fae663ba in ?? () from /usr/lib64/libguile-2.2.so.1
> >> #67 0x00007ea1fae71540 in ?? () from /usr/lib64/libguile-2.2.so.1
> >> #68 0x00007ea1fae71855 in scm_c_with_continuation_barrier () from
> >> /usr/lib64/libguile-2.2.so.1
> >> #69 0x00007ea1fae671fc in ?? () from /usr/lib64/libguile-2.2.so.1
> >> #70 0x00007ea1f607b415 in GC_call_with_stack_base () from
> >> /usr/lib64/libgc.so.2
> >> #71 0x00007ea1fae5e4d8 in scm_with_guile () from
> >> /usr/lib64/libguile-2.2.so.1
> >> #72 0x00007ea1faeced25 in scm_boot_guile () from
> >> /usr/lib64/libguile-2.2.so.1
> >> #73 0x000057bb4ea7d3a0 in main (argc=<optimized out>, argv=<optimized
> >> out>) at gnucash-bin.c:819
> >>
> >>
> >> (compiler: gcc 7.2.0)
> >>
> >>
> >>
> >> --
> >> --
> >> Fabio
> >>
> >
> >
> > --
> > --
> > Fabio
> > _______________________________________________
> > gnucash-devel mailing list
> > gnucash-devel at gnucash.org
> > https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>
>

-- 
--
Fabio


More information about the gnucash-devel mailing list