Gnucash crashes when loading user data from mysql

John Ralls jralls at ceridwen.us
Tue Apr 24 14:01:43 EDT 2012


On Apr 24, 2012, at 9:13 AM, smartinez wrote:

> Hi,
> 
> I have been using Gnucash from a long time ago, in the current environment
> since November 2011 without any issues. The current environment is a Windows
> 7 box with a MySQL Server 5.5.17 and Gnucash 2.4.8.
> 
> From this morning Gnucash is crashing when loading the user data. The
> message from windows is just that "The program stop working correctly due to
> a problem. Windows will close the program and will notify you in case of a
> solution" (This is a translation from spanish, so the Windows original
> message in english may be a little bit different).
> 
> I've tried upgrading Gnucash to 2.4.10 with exactly the same results (so,
> now, my environment has the last stable version 2.4.10).
> I've tried to create a completely new Gnucash book and save it using MySQL
> and it works nicely, so I assume that the issue is something about the data
> not the application itself. 
> 
> I've run the application with '--debug' option, that has generated a lot of
> information in the log file, I have attached the log file in this topic,
> also these are the last lines of the log file where you will see the error:
> * 17:29:24  INFO <gnc.account> [xaccAccountRecomputeBalance] acct=IRPF
> starting baln=0/1
> * 17:29:24  INFO <gnc.account> [xaccAccountRecomputeBalance] acct=La Caixa
> starting baln=0/1
> * 17:29:33  INFO <gnc.account> [xaccAccountRecomputeBalance]
> acct=96bae9351940a80b14a808dc3427505b starting baln=0/1
> * 17:29:33  INFO <gnc.account> [xaccAccountCommitEdit] freeing splits for
> account 0A7BF4E0 (96bae9351940a80b14a808dc3427505b)
> * 17:29:33  INFO <gnc.engine> [xaccTransSetDateInternal] addr=039DBC28 set
> date to 1284317843.000000000 Sun Sep 12 20:57:23 2010
> * 17:29:33  INFO <gnc.engine> [xaccTransSetDateInternal] addr=039DBC28 set
> date to 1284317843.000000000 Sun Sep 12 20:57:23 2010
> * 17:29:33  INFO <gnc.account> [xaccAccountRecomputeBalance]
> acct=0a3a12eb4a134162de99b9b87c2d758a starting baln=0/1
> * 17:29:33  INFO <gnc.account> [xaccAccountRecomputeBalance]
> acct=0a3a12eb4a134162de99b9b87c2d758a starting baln=0/1
> * 17:29:33  INFO <gnc.account> [xaccAccountRecomputeBalance]
> acct=0a3a12eb4a134162de99b9b87c2d758a starting baln=0/1
> * 17:29:33  INFO <gnc.account> [xaccAccountRecomputeBalance]
> acct=0a3a12eb4a134162de99b9b87c2d758a starting baln=0/1
> * 17:29:33  INFO <gnc.engine> [trans_cleanup_commit] get rid of rollback
> trans=039DBE88
> * 17:29:33  INFO <gnc.account> [xaccAccountRecomputeBalance]
> acct=7fde2a419e3f1204b86e4e14e05c7d4d starting baln=0/1
> * 17:29:33  CRIT <GLib> g_date_new_dmy: assertion `g_date_valid_dmy (day, m,
> y)' failed
> * 17:29:33  CRIT <GLib> g_date_valid: assertion `d != NULL' failed
> 
> This is the logfile: 
> http://gnucash.1415818.n4.nabble.com/file/n4584032/gnucash.trace.1AW7CW.log
> gnucash.trace.1AW7CW.log 
> 
> This morning Gnucash has started correctly, and the last actions I've done
> are:
>     - Remove SX of the old mortgage interest (mortgage interest revised
> this week)
>     - Create SX with the new mortgage interest using the Mortgage wizard:
> With my locale, ',' is the decimal separator, although the mortgage wizard
> uses '.' as the decimal separator, this means that at the end of the process
> the SX formula has '.' as decimal separator which is incorrect, and Gnucash
> raises an error on the formula when you go to the transaction.
>     - Modify the formulas on the new SX created to change '.' by ',' as
> decimal separator.
> 
> Any ideas will be very helpful, I have a lot of time in this book, and
> unfortunately my last backup is in November 2011, so, I will appreciate any
> suggestion or solution that help me to recover the data.
> Also, I have a little bit of knowledge in SQL language, so, I can provide
> any detail required directly from the MySQL Database.

Looks like you have a transaction with an invalid date.

See if you can spot it with the following query:

SELECT guid, post_date, enter_date FROM transactions AS t, splits AS s
WHERE t.guid = s.tx_guid AND s.account_guid = "7fde2a419e3f1204b86e4e14e05c7d4d";

Dates are 14-character strings in the form YYYYMMDDHHMMSS (e.g., 20100822220000 is 2200 22 August 2010).

Regards,
John Ralls




More information about the gnucash-user mailing list