GNOME Bugzilla – Bug 796084
Frequent Crashes During Data Entry
Last modified: 2018-06-30 00:10:02 UTC
I'm experiencing a crash to desktop and associated data loss every several minutes, possibly related to the auto save timer. This is happening with a new XML file that I started today. The crash seems most likely to happen while I'm entering a date or check number in a new transaction. The auto save is configured for 10 minutes (default?). I will continue testing with 1-minute auto saves to see if it gets better or worse.
My data folder now shows minutely saves from 6:28 PM through 6:35 PM. Shortly thereafter, crash to desktop while keying the date for a new transaction. No data loss this time, thanks to good saves.
Wait. Previous comment was incomplete. When I reopened GnuCash, the most recently entered transaction was lost, as well as a month that was reconciled is no longer showing as cleared or reconciled. When I opened the 6:35 PM autosave, the lost data was actually still in there. I don't know if this means the autosave failed or the program was in an inconsistent state when it crashed, but this is frustrating either way.
Take a look through the recent tracefiles (https://wiki.gnucash.org/wiki/Tracefile) to see if there are any errors reported. If not, try running from a command line: "c:\Program Files (x86)\gnucash\bin\gnucash" --debug to get more information into the tracefile. Another option that might be useful is --log gnc.backend.xml=debug.
This? * 18:38:06 WARN <gnc.app-utils> Could not spawn perl: Failed to execute child process (No such file or directory) * 18:44:42 CRIT <GLib> g_file_test: assertion 'filename != NULL' failed * 18:47:28 WARN <gnc.backend> [GncXmlBackend::session_begin()] Might clobber, no force
Yup. That's not showing anything helpful so try running from the command line with --debug.
I just saw it crash in debug mode. All I have in the trace file is about 5 MB worth of INFO messages. I will try your backend debug idea next.
I'm also getting a syslog associated with the crash, in case this helps. Log Name: Application Source: Application Error Date: 5/14/2018 7:10:31 AM Event ID: 1000 Task Category: (100) Level: Error Keywords: Classic User: N/A Description: Faulting application name: gnucash.exe, version: 0.0.0.0, time stamp: 0x5ae4fe70 Faulting module name: msvcrt.dll, version: 7.0.17134.1, time stamp: 0xc5dd3631 Exception code: 0xc0000005 Fault offset: 0x00088e7e Faulting process id: 0x26b4 Faulting application start time: 0x01d3eb7260772755 Faulting application path: C:\Program Files (x86)\gnucash\bin\gnucash.exe Faulting module path: C:\WINDOWS\System32\msvcrt.dll Report Id: adf788f3-d0d6-4546-8a69-36a9f5fae3ba Faulting package full name: Faulting package-relative application ID:
Unfortunately Microsoft's syslog reports aren't useful. Yes, I know that debug mode produces lots of INFO messages, that's the point of it. The info messages show what the program is doing... so was it doing a save at the time of the crash?
Created attachment 372030 [details] Debug results leading up to crash.
To answer your question first, I'm not certain. Exceprt attached from debug mode. I've add bug 796100 with problems that are definitely happening in the autosave system. After switching from debug to the backend log option, I could not reproduce the crash. However, some of the log messages surrounding the autosave failures might be relevant, so I will attach those as well.
This is logged periodically with the backend log option, but then I seem to get no crashes, just sporadic autosaves. * 10:54:31 CRIT <gnc.gui> gnc_xfer_dialog_create: assertion 'to_info == NULL && from_info == NULL' failed * 10:54:31 CRIT <gnc.gui> gnc_amount_edit_gtk_entry: assertion 'gae != NULL' failed * 10:54:31 CRIT <Gtk> gtk_widget_grab_focus: assertion 'GTK_IS_WIDGET (widget)' failed * 10:54:31 CRIT <Gtk> gtk_toggle_button_set_active: assertion 'GTK_IS_TOGGLE_BUTTON (toggle_button)' failed * 10:54:31 CRIT <gnc.gui> gnc_tree_view_account_set_selected_account: assertion 'GNC_IS_TREE_VIEW_ACCOUNT (view)' failed * 10:54:31 CRIT <Gtk> gtk_toggle_button_set_active: assertion 'GTK_IS_TOGGLE_BUTTON (toggle_button)' failed * 10:54:31 CRIT <gnc.gui> gnc_tree_view_account_set_selected_account: assertion 'GNC_IS_TREE_VIEW_ACCOUNT (view)' failed * 10:54:31 CRIT <gnc.gui> gnc_tree_view_account_get_selected_account: assertion 'GNC_IS_TREE_VIEW_ACCOUNT (view)' failed * 10:54:31 CRIT <gnc.gui> gnc_tree_view_account_get_selected_account: assertion 'GNC_IS_TREE_VIEW_ACCOUNT (view)' failed * 10:54:31 CRIT <Gtk> gtk_widget_set_sensitive: assertion 'GTK_IS_WIDGET (widget)' failed * 10:54:31 CRIT <Gtk> gtk_widget_set_sensitive: assertion 'GTK_IS_WIDGET (widget)' failed * 10:54:31 CRIT <Gtk> gtk_widget_set_sensitive: assertion 'GTK_IS_WIDGET (widget)' failed * 10:54:31 CRIT <Gtk> gtk_widget_set_sensitive: assertion 'GTK_IS_WIDGET (widget)' failed * 10:54:31 CRIT <Gtk> gtk_widget_set_sensitive: assertion 'GTK_IS_WIDGET (widget)' failed * 10:54:31 CRIT <gnc.gui> gnc_amount_edit_gtk_entry: assertion 'gae != NULL' failed * 10:54:31 CRIT <Gtk> gtk_entry_set_text: assertion 'GTK_IS_ENTRY (entry)' failed * 10:54:31 CRIT <gnc.gui> gnc_tree_view_account_get_selected_account: assertion 'GNC_IS_TREE_VIEW_ACCOUNT (view)' failed * 10:54:31 CRIT <gnc.gui> gnc_tree_view_account_get_selected_account: assertion 'GNC_IS_TREE_VIEW_ACCOUNT (view)' failed * 10:54:31 CRIT <gnc.gui> gnc_amount_edit_evaluate: assertion 'gae != NULL' failed * 10:54:31 CRIT <gnc.gui> gnc_amount_edit_set_amount: assertion 'gae != NULL' failed * 10:54:31 CRIT <gnc.gui> gnc_amount_edit_gtk_entry: assertion 'gae != NULL' failed * 10:54:31 CRIT <Gtk> gtk_entry_set_text: assertion 'GTK_IS_ENTRY (entry)' failed * 10:54:31 CRIT <gnc.gui> gnc_amount_edit_set_amount: assertion 'gae != NULL' failed * 10:54:31 CRIT <gnc.gui> gnc_amount_edit_gtk_entry: assertion 'gae != NULL' failed * 10:54:31 CRIT <Gtk> gtk_entry_set_text: assertion 'GTK_IS_ENTRY (entry)' failed * 10:54:31 CRIT <Gtk> gtk_widget_show_all: assertion 'GTK_IS_WIDGET (widget)' failed * 10:54:31 CRIT <gnc.gui> gnc_tree_view_account_get_selected_account: assertion 'GNC_IS_TREE_VIEW_ACCOUNT (view)' failed * 10:54:31 CRIT <gnc.gui> gnc_tree_view_account_get_selected_account: assertion 'GNC_IS_TREE_VIEW_ACCOUNT (view)' failed * 10:54:31 CRIT <gnc.gui> gnc_amount_edit_set_amount: assertion 'gae != NULL' failed * 10:54:31 CRIT <Gtk> gtk_toggle_button_set_active: assertion 'GTK_IS_TOGGLE_BUTTON (toggle_button)' failed * 10:54:31 CRIT <gnc.gui> gnc_tree_view_account_set_selected_account: assertion 'GNC_IS_TREE_VIEW_ACCOUNT (view)' failed
Are those Gtk errors not present in among all of the info messages when you ran with --debug? And they weren't in the original log with the crash either, right? Since setting --log gnc.backend.xml=debug only enables displaying certain log messages it's weird that it would have any affect on the crashes or on all of those assertions. And I suppose that there weren't any XML backend debug messages either.
Correct, that 5 MB file had no mention of Gtk. I don't know if it's related to the account or the size of the files or what, but it hasn't been crashing today at all.
Couldn't repeat this crash in the past month. Closing for now.
GnuCash bug tracking has moved to a new Bugzilla host. This bug has been copied to https://bugs.gnucash.org/show_bug.cgi?id=796084. Please update any external references or bookmarks.