GNOME Bugzilla – Bug 727531
Gnucash crashes leaving lock files when closing with "ERROR: Unbound variable: gnc:report-serialize".
Last modified: 2018-06-29 23:29:15 UTC
By simply opening Gnucash and then closing again, the program crashes. Here is some information about the crash and this Mageia 4 system. Maybe this is a Guile 1.8 verses 2.0 bug: $ gnucash --version GnuCash 2.6.3 This copy was built from rev 4e4a032+ on 2014-03-30. $ gnucash --debug Found Finance::Quote version 1.18 java version "1.7.0_45" OpenJDK Runtime Environment (mageia-2.4.4.2.mga4-x86_64 u45-b15) OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode) ;;; WARNING (gnc:resolve-unknown-comm: Oops - exchange rate ambiguity error: 元28,276.85 = €3,477.27) ;;; WARNING (gnc:resolve-unknown-comm: Oops - exchange rate ambiguity error: £751.40 = €845.59) ;;; WARNING (gnc:resolve-unknown-comm: Oops - exchange rate ambiguity error: DM49.74 = fr.1,026.00) Backtrace: In ice-9/boot-9.scm: 157: 7 [catch #t #<catch-closure 1c6ca00> ...] In unknown file: ?: 6 [apply-smob/1 #<catch-closure 1c6ca00>] ?: 5 [call-with-input-string "gnc:report-serialize" ...] In ice-9/boot-9.scm: 2320: 4 [save-module-excursion #<procedure 2c95db0 at ice-9/eval-string.scm:65:9 ()>] In ice-9/eval-string.scm: 44: 3 [read-and-eval #<input: string 2a9d4e0> #:lang ...] 37: 2 [lp gnc:report-serialize] In ice-9/eval.scm: 393: 1 [eval #<memoized gnc:report-serialize> ()] In unknown file: ?: 0 [memoize-variable-access! # #] ERROR: In procedure memoize-variable-access!: ERROR: Unbound variable: gnc:report-serialize $ locate ice-9/boot-9.scm /usr/share/guile/1.8/ice-9/boot-9.scm /usr/share/guile/2.0/ice-9/boot-9.scm $ rpm -q guile guile-2.0.9-2.mga4 $ rpm -q guile1.8 package guile1.8 is not installed $ rpm -q guile-runtime guile-runtime-2.0.9-2.mga4 $ rpm -q guile1.8-runtime guile1.8-runtime-1.8.8-16.mga4 $ rpm -q lib64guile17 lib64guile17-1.8.8-16.mga4 $ rpm -q lib64guile2.0_22 lib64guile2.0_22-2.0.9-2.mga4 This bug prevents certain changes in the GUI from being saved. And the lock files have to be constantly deleted.
Deleting the ~/.gnucash directory (or backing it up by renaming it) fixes the problem. That is not an ideal solution though as all of the account settings in the ~/.gnucash/books directory will be lost and have to be manually set up again.
The problem is the asset and liability bar charts (minimally). The steps to reproduce are: 1. Start gnucash 2. Click on the 'File->New file' menu item. 3. In the 'New Account' wizard, simply click on 'Forward' on all pages leaving all the dfaults, and finally on 'Apply'. 4. Select a temporary file name to save as. 5. Click on the 'Reports->Assets & Liabilities->Asset Barchart' menu item. 6. Close gnucash to see: $ gnucash Found Finance::Quote version 1.18 java version "1.7.0_45" OpenJDK Runtime Environment (mageia-2.4.4.2.mga4-x86_64 u45-b15) OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode) Backtrace: In ice-9/boot-9.scm: 157: 7 [catch #t #<catch-closure c71be0> ...] In unknown file: ?: 6 [apply-smob/1 #<catch-closure c71be0>] ?: 5 [call-with-input-string "gnc:report-serialize" ...] In ice-9/boot-9.scm: 2320: 4 [save-module-excursion #<procedure 148a5d0 at ice-9/eval-string.scm:65:9 ()>] In ice-9/eval-string.scm: 44: 3 [read-and-eval #<input: string 1476000> #:lang ...] 37: 2 [lp gnc:report-serialize] In ice-9/eval.scm: 393: 1 [eval #<memoized gnc:report-serialize> ()] In unknown file: ?: 0 [memoize-variable-access! # #] ERROR: In procedure memoize-variable-access!: ERROR: Unbound variable: gnc:report-serialize
Gnucash was somehow detecting and using a non-standard version of Guile1.8 (not the same 2.0 version one as when you type 'guile', the default in the system path). Removing access to this testing/debugging version causes this bug to disappear. Therefore this is not a Gnucash bug.
GnuCash bug tracking has moved to a new Bugzilla host. This bug has been copied to https://bugs.gnucash.org/show_bug.cgi?id=727531. Please update any external references or bookmarks.