GNOME Bugzilla – Bug 543063
Mandriva Linux: Add Report Button crashes Gnucash
Last modified: 2018-06-29 22:07:40 UTC
After creating a custom report and clicking "Add Report", Gnucash crashes. This happens every time. Similar problems have been reported in bugs 412016 and 393817. http://bugzilla.gnome.org/show_bug.cgi?id=412016 http://bugzilla.gnome.org/show_bug.cgi?id=393817 Has this been resolved in 2.2.5? From the changelog, I think no, but I don't dare to update manually to 2.2.5 because besides this, Gnucash works well for my needs. Therefore, I wait for an updated package (Mandriva RPM). But I would like to see this annoying problem solved. Software specs: Mandriva Linux 2008.1 with kernel 2.6.24.5 and Gnome 2.22.0.
worksforme (current svn on Linux) and (2.2.4 release in ubuntu hardy)
Created attachment 114590 [details] Backtrace of the error produced upon gnucash crash after trying to add custom report The report I used to recreate the crash had the name "test", this also shows up in the backtrace.
Created attachment 115424 [details] New backtrace (from version 2.2.6)
Comment on attachment 115424 [details] New backtrace (from version 2.2.6) I updated from version 2.2.4 to 2.2.6 by compiling from source. The problem persists. The new backtrace is uploaded.
That is a weird backtrace and indicates a problem with your guile setup. What is the output of grep HAVE_GUILE18 config.h && echo && guile --version && echo && guile -c "(display open-file)" && echo when run in the directory you configured in?
(In reply to comment #5) > That is a weird backtrace and indicates a problem with your guile setup. > What is the output of > > grep HAVE_GUILE18 config.h && echo && guile --version && echo && guile -c > "(display open-file)" && echo > > when run in the directory you configured in? > [davo@localhost gnucash-2.2.6]$ grep HAVE_GUILE18 config.h && echo && guile --version && echo && guile -c "(display open-file)" && echo #define HAVE_GUILE18 1 Guile 1.8.3 Copyright (c) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation Guile may be distributed under the terms of the GNU General Public Licence; certain other uses are permitted as well. For details, see the file `COPYING', which is included in the Guile distribution. There is no warranty, to the extent permitted by law. #<primitive-procedure open-file>
Then please try to determine why open-file is unbound for you. Actually, I have never seen that before and do not really know what to ask specifically :-) Well, you could attach your books file, i.e. the once corresponding to your data file inside ~/.gnucash/books.
Hello, I have the exact same problem running gnucash 2.2.5, built from r17141M on 2008-04-29, under Fedora 8 (2.6.25.11-60.fc8) This is the backtrace that results after I click on "Add Report", I hope it helps: Found Finance::Quote version 1.13 Backtrace: In unknown file: ?: 0* [gnc:report-save-to-savefile #] In /usr/share/gnucash/scm/report.scm: 420: 1* (let* (# # #) (if # #)) 427: 2 (if (record? save-result) (begin (display saved-form #) (force-output) ...)) 428: 3 (begin (display saved-form #) (force-output) (let # #)) 429: 4* [display ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Options for saved report \"Expense Detail Report\", based on template \"Transaction Report\" (let () (define (options-gen) (let ((options (gnc:report-template-new-options/name \"Transaction Report\"))) ; Section: General (let ((option (gnc:lookup-option options \"General\" \"Report name\"))) ((lambda (option) (if option ((gnc:option-setter option) \"Expense Detail Report\"))) option)) ; Section: Accounts (let ((option (gnc:lookup-option options \"Accounts\" \"Report Accounts\"))) ((lambda (option) (if option ((gnc:option-setter option) '(\"fe74f3bb1c2a8d9c12019508d64f81c8\")))) option)) ; Section: Sorting (let ((option (gnc:lookup-option options \"Sorting\" \"Secondary Key\"))) ((lambda (option) (if option ((gnc:option-setter option) 'date))) option)) ; Section: Display (let ((option (gnc:lookup-option options \"Display\" \"Use Full Other Account Name?\"))) ((lambda (option) (if option ((gnc:option-setter option) #f))) option)) (let ((option (gnc:lookup-option options \"Display\" \"Other Account Name\"))) ((lambda (option) (if option ((gnc:option-setter option) #t))) option)) options)) (gnc:define-report 'version 1 'name \"Expense Detail Report\" 'options-generator options-gen 'menu-path (list gnc:menuname-custom) 'renderer (gnc:report-template-renderer/name \"Transaction Report\"))) " ... 430: 5* (open-file conf-file-name "a") /usr/share/gnucash/scm/report.scm:430:20: In expression (open-file conf-file-name "a"): /usr/share/gnucash/scm/report.scm:430:20: Unbound variable: open-file
*** Bug 393817 has been marked as a duplicate of this bug. ***
slib version problem? open-file is part of slib.
There is a bugreport for this on the Mandriva bugzilla as well: https://qa.mandriva.com/show_bug.cgi?id=42526 It was first reported on 2008.1, but the issue still exists on 2009.1 2009.1 ships Gnucash 2.2.9 and slib 3a4. How can I help to determine slib could be the problem ?
Still a problem with any 2.3.x versions of gnucash?
Yes, it still crashes in 2.3.x. I have just tried it with a 2.3.x build from two weeks ago (the one I used to implement GtkEntryCompletion). Yes, it still crashes in 2.3.x. I have just tried it with a 2.3.x build from two weeks ago (the one I used to implement GtkEntryCompletion). Here's the console output after clicking the Add report button: ./bin/gnucash --nofile This is a development version. It may or may not work. Report bugs and other problems to gnucash-devel@gnucash.org. You can also lookup and file bug reports at http://bugzilla.gnome.org The last stable version was GnuCash 2.2.9 The next stable version will be GnuCash 2.4 Backtrace: In unknown file: ?: 0* [gnc:report-save-to-savefile #] In /home/janssege/Development/EclipseWS/GnuCash-trunk/run/share/gnucash/scm/report.scm: 571: 1* (let* (# # #) (if # #)) 578: 2 (if (record? save-result) (begin (display saved-form #) (force-output) ...)) 579: 3 (begin (display saved-form #) (force-output) (let # #)) 580: 4* [display ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Options for saved report \"Small transactions\", based on template \"2fe3b9833af044abb929a88d5a59620f\" (let () (define (options-gen) (let ((options (gnc:report-template-new-options/report-guid \"2fe3b9833af044abb929a88d5a59620f\" \"Transaction Report\"))) ; Section: Sorting ; Section: General (let ((option (gnc:lookup-option options \"General\" \"Report name\"))) ((lambda (option) (if option ((gnc:option-setter option) \"Small transactions\"))) option)) (let ((option (gnc:lookup-option options \"General\" \"From\"))) ((lambda (option) (if option ((gnc:option-setter option) '(relative . start-cal-year)))) option)) ; Section: Accounts ; Section: Display options)) (gnc:define-report 'version 1 'name \"Small transactions\" 'report-guid \"ef9fe94d0e3089c9b0d64e7b92e315e0\" 'parent-type \"2fe3b9833af044abb929a88d5a59620f\" 'options-generator options-gen 'menu-path (list gnc:menuname-custom) 'renderer (gnc:report-template-renderer/report-guid \"2fe3b9833af044abb929a88d5a59620f\" \"Transaction Report\"))) " ... 581: 5* (open-file conf-file-name "a") /home/janssege/Development/EclipseWS/GnuCash-trunk/run/share/gnucash/scm/report.scm:581:20: In expression (open-file conf-file-name "a"): /home/janssege/Development/EclipseWS/GnuCash-trunk/run/share/gnucash/scm/report.scm:581:20: Unbound variable: open-file
(In reply to comment #13) > Yes, it still crashes in 2.3.x. > > I have just tried it with a 2.3.x build from two weeks ago (the one I used to > implement GtkEntryCompletion). > > Yes, it still crashes in 2.3.x. > > I have just tried it with a 2.3.x build from two weeks ago (the one I used to > implement GtkEntryCompletion). > > Here's the console output after clicking the Add report button: > ./bin/gnucash --nofile > > > This is a development version. It may or may not work. > Report bugs and other problems to gnucash-devel@gnucash.org. > You can also lookup and file bug reports at http://bugzilla.gnome.org > The last stable version was GnuCash 2.2.9 > The next stable version will be GnuCash 2.4 > > Backtrace: > In unknown file: > ?: 0* [gnc:report-save-to-savefile #] > In > /home/janssege/Development/EclipseWS/GnuCash-trunk/run/share/gnucash/scm/report.scm: > 571: 1* (let* (# # #) (if # #)) > 578: 2 (if (record? save-result) (begin (display saved-form #) (force-output) > ...)) > 579: 3 (begin (display saved-form #) (force-output) (let # #)) > 580: 4* [display ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > ;; Options for saved report \"Small transactions\", based on template > \"2fe3b9833af044abb929a88d5a59620f\" > (let () > (define (options-gen) > (let ((options (gnc:report-template-new-options/report-guid > \"2fe3b9833af044abb929a88d5a59620f\" \"Transaction Report\"))) > > ; Section: Sorting > > > ; Section: General > > (let ((option (gnc:lookup-option options > \"General\" > \"Report name\"))) > ((lambda (option) (if option ((gnc:option-setter option) \"Small > transactions\"))) option)) > > (let ((option (gnc:lookup-option options > \"General\" > \"From\"))) > ((lambda (option) (if option ((gnc:option-setter option) '(relative . > start-cal-year)))) option)) > > > ; Section: Accounts > > > ; Section: Display > > options)) > (gnc:define-report > 'version 1 > 'name \"Small transactions\" > 'report-guid \"ef9fe94d0e3089c9b0d64e7b92e315e0\" > 'parent-type \"2fe3b9833af044abb929a88d5a59620f\" > 'options-generator options-gen > 'menu-path (list gnc:menuname-custom) > 'renderer (gnc:report-template-renderer/report-guid > \"2fe3b9833af044abb929a88d5a59620f\" \"Transaction Report\"))) > > " ... > 581: 5* (open-file conf-file-name "a") > > /home/janssege/Development/EclipseWS/GnuCash-trunk/run/share/gnucash/scm/report.scm:581:20: > In expression (open-file conf-file-name "a"): > /home/janssege/Development/EclipseWS/GnuCash-trunk/run/share/gnucash/scm/report.scm:581:20: > Unbound variable: open-file
It's not an workaround solution, but we can add the report using MS Windows Gnucash version. Linux Gnucash version can read and produce the reports.
Bleh, I just updated to Mandriva 2010.0 hoping a newer slib version would fix this annoying bug. Turns out the slib version in 2010.0 is still 3a4, so essentially the same version as 2009.1. Just to experiment, I rebuilt slib 3b2 from Fedora 12 and installed that one instead of 3a4. But then GnuCash didn't even start properly. Interestingly enough it complained about open-file as well, but earlier in the program. So simply upgrading to 3b2 didn't solve the problem.
Created attachment 150174 [details] Trace file for GnuCash 2.3.8 on Mandriva 2010.0 The trace file that is generated when running GnuCash 2.3.8+ on 2010.0. This is built from a clean checkout on svn r18528.
Created attachment 150175 [details] Console output after crash And this is the console output after the crash. I contains roughly the same information as the gnucash.trace file. Still from the same 2.3.8+build (r18528)
There is a difference between the console log and gnucash.trace: console log trips over line 579 gnucash.trace issues a warning for ling 596 Both lines have issues with open-file though...
The entries in gnucash.trace are generated during startup of GnuCash and don't crash the application. It's only when trying to save a report that the console lines are generated and the app crashes. What I don't understand is, that when I run guile -c "(display open-file)" from the command line, it works just fine. It's only when open-file is used from within GnuCash somewhere that it turns out to be unbound. What can cause it to become unbound ? * Wrong (include)path settings ? * Wrong environment variable settings ? * Is there some kind of override mechanism ? I'll need someone with more guile expertise to help me on here. If someone can suggest me additional things to test, I'll gladly do so.
Let me follow-up on myself. I think this is not a GnuCash bug, but a Mandriva packaging bug. I can reproduce the same error outside of GnuCash: $ guile -c "(display open-file)" #<primitive-procedure open-file> $ guile -c "(use-modules (ice-9 slib))(display open-file)" ERROR: Unbound variable: open-file So when slib is not loaded, open-file points at the built-in procedure. When slib is loaded, open-file becomes unbound. For reference, this is what the same commands return on Fedora 12: $ guile -c "(display open-file)" #<primitive-procedure open-file> $ guile -c "(use-modules (ice-9 slib))(display open-file)" #<procedure open-file (filename modes)> I'll reopen the bug in Mandriva's bugzilla (https://qa.mandriva.com/show_bug.cgi?id=42526) as I think it's there that we will have to look for a solution.
Geert, I think that definitely sounds reasonable and you already active on the Mandriva bug. Thanks a lot! Closing this bug as NOTGNOME, please follow https://qa.mandriva.com/show_bug.cgi?id=42526 .
Andrease, I hadn't closed this bug yet, because Derek asked me not to on the mailing list. He wanted it to remain open until it was clear what exactly the problem was. Well, I found the problem in the meantime, so for completeness, I'll add it here as well so the bug can remain closed. The problem is that Mandriva ships an old version of slib (3a4). I manually updated to 3b2 and this works fine.
Geert, I did not know that, I just started reading the mailing list again. Anyway, that piece of information belongs here as well, to make the bug self-contained. Thanks for your effort :)
GnuCash bug tracking has moved to a new Bugzilla host. This bug has been copied to https://bugs.gnucash.org/show_bug.cgi?id=543063. Please update any external references or bookmarks.