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 339656 - Crash when opening data file
Crash when opening data file
Status: VERIFIED FIXED
Product: GnuCash
Classification: Other
Component: Engine
git-master
Other Linux
: Normal critical
: ---
Assigned To: Chris Shoemaker
Derek Atkins
Depends on: 343405
Blocks:
 
 
Reported: 2006-04-25 00:25 UTC by Tim Wunder
Modified: 2018-06-29 21:02 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Tim Wunder 2006-04-25 00:25:53 UTC
Using r13842 on FC4, kernel 2.6.16.

Not sure what caused the problem since I've attempted to duplicate it but can't, but opening my data file results in a crash.

The only clues I can provide are that I was "playing" with the book closing feature in r13841. I had at several times cancelled the book closing.
Unfortunately, I've subsequently tried to duplicate the problem on a backup copy of my data file and have been unsuccessful at reliably duplicating it (with the exception that once the data file casues a crash, it always causes a crash). Updating to r13842 made no difference.

The terminal output is:
(gnucash:28141): Gtk-CRITICAL **: gtk_tree_model_filter_convert_iter_to_child_iter: assertion `filter_iter->stamp == filter->priv->stamp' failed
(gnucash:28141): GLib-GObject-WARNING **: gtype.c:3351: type id `0' is invalid
(gnucash:28141): GLib-GObject-WARNING **: can't peek value table for type `<invalid>' which is not currently referenced

And a backtrace is 
Backtrace was generated from '/opt/gnucash/bin/gnucash'

(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1208993568 (LWP 28141)]
0x007bc402 in ?? ()

Thread 1 (Thread -1208993568 (LWP 28141))

  • #0 ??
  • #1 __waitpid_nocancel
    from /lib/libpthread.so.0
  • #2 libgnomeui_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #3 <signal handler called>
  • #4 gtk_tree_model_get_valist
    from /usr/lib/libgtk-x11-2.0.so.0
  • #5 gtk_tree_model_get
    from /usr/lib/libgtk-x11-2.0.so.0
  • #6 sort_by_string
    from /opt/gnucash/lib/gnucash/libgncmod-gnome-utils.so.0
  • #7 gtk_tree_model_sort_convert_iter_to_child_iter
    from /usr/lib/libgtk-x11-2.0.so.0
  • #8 gtk_tree_model_sort_iter_is_valid
    from /usr/lib/libgtk-x11-2.0.so.0
  • #9 gtk_marshal_VOID__UINT_STRING
    from /usr/lib/libgtk-x11-2.0.so.0
  • #10 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #11 g_signal_stop_emission
    from /usr/lib/libgobject-2.0.so.0
  • #12 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #13 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #14 gtk_tree_model_row_changed
    from /usr/lib/libgtk-x11-2.0.so.0
  • #15 gtk_tree_model_filter_convert_iter_to_child_iter
    from /usr/lib/libgtk-x11-2.0.so.0
  • #16 gtk_tree_model_filter_convert_child_iter_to_iter
    from /usr/lib/libgtk-x11-2.0.so.0
  • #17 gtk_tree_model_rows_reordered
    from /usr/lib/libgtk-x11-2.0.so.0
  • #18 gtk_tree_model_rows_reordered
    from /usr/lib/libgtk-x11-2.0.so.0
  • #19 gtk_tree_model_rows_reordered
    from /usr/lib/libgtk-x11-2.0.so.0
  • #20 gtk_tree_model_foreach
    from /usr/lib/libgtk-x11-2.0.so.0
  • #21 gtk_tree_model_filter_refilter
    from /usr/lib/libgtk-x11-2.0.so.0
  • #22 gnc_tree_view_account_refilter
    from /opt/gnucash/lib/gnucash/libgncmod-gnome-utils.so.0
  • #23 gnc_tree_view_account_restore
    from /opt/gnucash/lib/gnucash/libgncmod-gnome-utils.so.0
  • #24 gnc_plugin_page_account_tree_recreate_page
    from /opt/gnucash/lib/libgncgnome.so.0
  • #25 gnc_plugin_page_recreate_page
    from /opt/gnucash/lib/gnucash/libgncmod-gnome-utils.so.0
  • #26 gnc_main_window_restore_all_windows
    from /opt/gnucash/lib/gnucash/libgncmod-gnome-utils.so.0
  • #27 gnc_restore_all_state
    from /opt/gnucash/lib/libgncgnome.so.0
  • #28 call_c_hook
    from /opt/gnucash/lib/gnucash/libgncmod-engine.so.0
  • #29 g_hook_list_marshal
    from /usr/lib/libglib-2.0.so.0
  • #30 gnc_hook_run
    from /opt/gnucash/lib/gnucash/libgncmod-engine.so.0
  • #31 gnc_post_file_open
    from /opt/gnucash/lib/gnucash/libgncmod-gnome-utils.so.0
  • #32 gnc_plugin_file_history_cmd_open_file
    from /opt/gnucash/lib/gnucash/libgncmod-gnome-utils.so.0
  • #33 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #34 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #35 g_signal_stop_emission
    from /usr/lib/libgobject-2.0.so.0
  • #36 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #37 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #38 gtk_action_create_menu_item
    from /usr/lib/libgtk-x11-2.0.so.0
  • #39 gtk_action_activate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #40 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #41 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #42 g_signal_stop_emission
    from /usr/lib/libgobject-2.0.so.0
  • #43 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #44 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #45 gtk_widget_activate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #46 gtk_menu_shell_activate_item
    from /usr/lib/libgtk-x11-2.0.so.0
  • #47 gtk_menu_shell_activate_item
    from /usr/lib/libgtk-x11-2.0.so.0
  • #48 gtk_menu_reorder_child
    from /usr/lib/libgtk-x11-2.0.so.0
  • #49 gtk_marshal_VOID__UINT_STRING
    from /usr/lib/libgtk-x11-2.0.so.0
  • #50 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #51 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #52 g_signal_stop_emission
    from /usr/lib/libgobject-2.0.so.0
  • #53 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #54 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #55 gtk_widget_activate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #56 gtk_propagate_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #57 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #58 gdk_screen_get_setting
    from /usr/lib/libgdk-x11-2.0.so.0
  • #59 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #60 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #61 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #62 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #63 gnc_ui_start_event_loop
    from /opt/gnucash/lib/gnucash/libgncmod-gnome-utils.so.0
  • #64 inner_main
  • #65 scm_boot_guile
    from /usr/lib/libguile.so.12
  • #66 main

Comment 1 Chris Shoemaker 2006-04-25 00:53:11 UTC
In frames 24 and 23, notice that this is restoring your account-tree page.

In ~/.gnucash/books/{$filename} there should be a section containing the account tree page settings.  It may be helpful to post that.

OTOH, look at frame 6.

You might try somthing like:

(gdb) frame 6

(gdb) list

(gdb) print iter1

(gdb) print iter2

(gdb) print column

(gdb) print str1

(gdb) print str2

(gdb) print model
Comment 2 Tim Wunder 2006-04-25 01:19:58 UTC
(gdb) frame 2
  • #2 sort_by_string
    from /opt/gnucash/lib/gnucash/libgncmod-gnome-utils.so.0
11
12         The above copyright notice and this permission notice shall be included
13         in all copies or substantial portions of the Software.
14
15         THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
16         OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17         MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18         IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
19         OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
20         ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
(gdb) print iter1
No symbol "iter1" in current context.
(gdb) print iter2
No symbol "iter2" in current context.
Comment 3 Tim Wunder 2006-04-25 02:12:16 UTC
(gdb) list
282       gint result;
283
284       model = sort_cb_setup_w_iters(f_model, f_iter1, f_iter2, &iter1, &iter2, &account1, &account2);
285
286       /* Get the strings. */
287       gtk_tree_model_get(GTK_TREE_MODEL(model), &iter1,  column, &str1, -1);
288       gtk_tree_model_get(GTK_TREE_MODEL(model), &iter2,  column, &str2, -1);
289
290       result = safe_utf8_collate(str1, str2);
291       if (result != 0)
(gdb) print iter1
$1 = {stamp = 13442084, user_data = 0x983eea8, user_data2 = 0x6057e68,
  user_data3 = 0xbffa77a8}
(gdb) print iter2
$2 = {stamp = 1476671929, user_data = 0x947a010, user_data2 = 0x94670c8,
  user_data3 = 0x0}
(gdb) print column
No symbol "column" in current context.
(gdb) print str1
$3 = (const gchar *) 0x983eea8 "h\203\t"
(gdb) print str2
$4 = (const gchar *) 0x5f35174 "\203�020[^]�\211�VS\203���\201�,\022"
(gdb) print model
$5 = (GtkTreeModel *) 0x97a4da8
Comment 4 Tim Wunder 2006-04-25 03:19:20 UTC
(gdb) bt
  • #0 gtk_tree_model_get_valist
    from /usr/lib/libgtk-x11-2.0.so.0
  • #1 gtk_tree_model_get
    from /usr/lib/libgtk-x11-2.0.so.0
  • #2 sort_by_string
    at gnc-tree-view-account.c line 287
  • #3 gtk_tree_model_sort_convert_iter_to_child_iter
    from /usr/lib/libgtk-x11-2.0.so.0
  • #4 gtk_tree_model_sort_iter_is_valid
    from /usr/lib/libgtk-x11-2.0.so.0
  • #5 gtk_marshal_VOID__UINT_STRING
    from /usr/lib/libgtk-x11-2.0.so.0
  • #6 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #7 g_signal_stop_emission
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #9 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #10 gtk_tree_model_row_changed
    from /usr/lib/libgtk-x11-2.0.so.0
  • #11 gtk_tree_model_filter_convert_iter_to_child_iter
    from /usr/lib/libgtk-x11-2.0.so.0
  • #12 gtk_tree_model_filter_convert_child_iter_to_iter
    from /usr/lib/libgtk-x11-2.0.so.0
  • #13 gtk_tree_model_rows_reordered
    from /usr/lib/libgtk-x11-2.0.so.0
  • #14 gtk_tree_model_rows_reordered
    from /usr/lib/libgtk-x11-2.0.so.0
  • #15 gtk_tree_model_rows_reordered
    from /usr/lib/libgtk-x11-2.0.so.0
  • #16 gtk_tree_model_foreach
    from /usr/lib/libgtk-x11-2.0.so.0
  • #17 gtk_tree_model_filter_refilter
  • #18 gnc_tree_view_account_refilter
    at gnc-tree-view-account.c line 934
  • #19 gnc_tree_view_account_restore
    at gnc-tree-view-account.c line 2118
  • #20 gnc_plugin_page_account_tree_recreate_page
    at gnc-plugin-page-account-tree.c line 564
  • #21 gnc_plugin_page_recreate_page
    at gnc-plugin-page.c line 258
  • #22 gnc_main_window_restore_all_windows
    at gnc-main-window.c line 468
  • #23 gnc_restore_all_state
    at top-level.c line 289
  • #24 call_c_hook
    at gnc-hooks.c line 263
  • #25 g_hook_list_marshal
    from /usr/lib/libglib-2.0.so.0
  • #26 gnc_hook_run
    at gnc-hooks.c line 278
  • #27 gnc_post_file_open
    at gnc-file.c line 492
  • #28 inner_main
    at gnucash-bin.c line 460
  • #29 scm_boot_guile
    from /usr/lib/libguile.so.12
  • #30 main
    at gnucash-bin.c line 508

Comment 5 Chris Shoemaker 2006-04-25 03:23:49 UTC
22:22 < twunder> #2  0x00baaa93 in sort_by_string (f_model=0x95a35a8,
                 f_iter1=0xbffa77ec,
22:22 < twunder>     f_iter2=0xbffa786c, user_data=0x0) at
                 gnc-tree-view-account.c:287
22:22 < twunder> 287       gtk_tree_model_get(GTK_TREE_MODEL(model), &iter1,
                 column, &str1, -1);
22:25 <@chris> (gdb) p ((GncTreeModelAccount *)model)->stamp
22:26 < twunder> $7 = 1476671929
22:26 <@chris> ok, matches iter2
22:30 < twunder> p (((GncTreeModelAccount *)model)->gnc_tree_model)
22:30 < twunder> $8 = {g_object = {g_type_instance = {g_class = 0x9424d78},
                 ref_count = 1,
22:30 < twunder>     qdata = 0x9404458}}
22:36 < twunder> p *f_iter1
22:36 < twunder> $9 = {stamp = 0, user_data = 0x0, user_data2 = 0x0, user_data3
                 = 0x0}
22:36 < twunder> (gdb) p *f_iter2
22:36 < twunder> $10 = {stamp = -1607956811, user_data = 0x974a118, user_data2
                 = 0x997edd0,
22:36 < twunder>   user_data3 = 0x0}


f_iter2 is invalid.
Comment 6 Chris Shoemaker 2006-06-01 13:54:32 UTC
Ah, ok.  This is very probably a dup of bug #343362.

And it makes me suspect you have a rather recent version of gtk+.

*** This bug has been marked as a duplicate of 343362 ***
Comment 7 Tim Wunder 2006-06-01 15:33:13 UTC
Using 14286:
$ rpm -q gtk+-devel gtk2-devel
gtk+-devel-1.2.10-39
gtk2-devel-2.6.10-2.fc4.4

My bad data file still causes gnucash to crash:
Backtrace was generated from '/opt/gnucash/bin/gnucash'

Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1208710944 (LWP 24045)]
0x007bc402 in ?? ()

Thread 1 (Thread -1208710944 (LWP 24045))

  • #0 ??
  • #1 __waitpid_nocancel
    from /lib/libpthread.so.0
  • #2 libgnomeui_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #3 <signal handler called>
  • #4 gtk_tree_model_get_valist
    from /usr/lib/libgtk-x11-2.0.so.0
  • #5 gtk_tree_model_get
    from /usr/lib/libgtk-x11-2.0.so.0
  • #6 sort_by_string
    at gnc-tree-view-account.c line 287

Comment 8 Chris Shoemaker 2006-06-17 01:34:34 UTC
Current status from IRC:

Tim could reproduce this crash while restoring the account tree page when opening gnucash, but it went away after he deleted his .books/filename file (bad Tim!).  We can't currently reproduce, but we have no reason to think we've fixed this either.
Comment 9 Chris Shoemaker 2006-10-12 03:57:56 UTC
Maybe this was fixed by r14709.  Yeah, that's it.  r14709.

Seriously, I can imagine how the bug fixed by r14709 could cause this crash, but it doesn't explain why we couldn't reproduce it.

Probably fixed by r14709, though.  Resolving as fixed for now.
Comment 10 Christian Stimming 2006-11-27 09:44:37 UTC
Fixed in r14709 means it's fixed in 2.0.2.
Comment 11 John Ralls 2018-06-29 21:02:20 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=339656. Please update any external references or bookmarks.