trunk r21710 fails at launch during report loading

David Reiser dbreiser at earthlink.net
Tue Dec 13 01:52:18 EST 2011


On Dec 11, 2011, at 11:35 PM, John Ralls wrote:

> 
> On Dec 11, 2011, at 6:22 PM, David Reiser wrote:
> 
>> On Dec 11, 2011, at 3:02 PM, David Reiser wrote:
>> 
>>> On Dec 11, 2011, at 2:47 PM, John Ralls wrote:
>>> 
>>>> 
>>>> On Dec 11, 2011, at 11:30 AM, David Reiser wrote:
>>>> 
>>>>> On Dec 11, 2011, at 1:41 PM, John Ralls wrote:
>>>>> 
>>>>>> 
>>>>>> On Dec 10, 2011, at 10:23 PM, David Reiser wrote:
>>>>>> 
>>>>>>> 
>>>>>>> On Dec 11, 2011, at 12:39 AM, John Ralls wrote:
>>>>>>> 
>>>>>>>> 
>>>>>>>> On Dec 10, 2011, at 8:03 PM, David Reiser wrote:
>>>>>>>> 
>>>>>>>>> r21708 fixed my build problem (thanks John), but gnucash fails to launch with:
>>>>>>>>> 
>>>>>>>>> Backtrace:
>>>>>>>>> In unknown file:
>>>>>>>>> ?: 21* [#<procedure #f ()>]
>>>>>>>>> ?: 22* (let* ((file #)) (cond (# => #) (# => #)))
>>>>>>>>> ?: 23  [#<procedure #f #> "/opt/gnucash-svn/share/gnucash/guile-modules/gnucash/report/standard-reports.scm"]
>>>>>>>>> ?: 24  [with-fluid* #<fluid 7> #f #<procedure #f ()>]
>>>>>>>>> ?: 25* [#<procedure #f ()>]
>>>>>>>>> ?: 26* [load-file #<primitive-procedure primitive-load> ...]
>>>>>>>>> ?: 27* [save-module-excursion #<procedure #f ()>]
>>>>>>>>> ?: 28  (let (# #) (dynamic-wind # thunk #))
>>>>>>>>> ?: 29  [dynamic-wind #<procedure #f ()> #<procedure #f ()> #<procedure #f ()>]
>>>>>>>>> ?: 30* [#<procedure #f ()>]
>>>>>>>>> ?: 31* [primitive-load "/opt/gnucash-svn/share/gnucash/guile-modules/gnucash/report/standard-reports.scm"]
>>>>>>>>> In /opt/gnucash-svn/share/gnucash/guile-modules/gnucash/report/standard-reports.scm:
>>>>>>>>> 125: 32* [for-each #<procedure #f (x)> (trial-balance transaction sx-summary ...)]
>>>>>>>>> In unknown file:
>>>>>>>>> ?: 33* [#<procedure #f (x)> balsheet-eg]
>>>>>>>>> In /opt/gnucash-svn/share/gnucash/guile-modules/gnucash/report/standard-reports.scm:
>>>>>>>>> 127: 34* [module-use! #<directory (gnucash report standard-reports) 109f68880> ...
>>>>>>>>> 129: 35* [resolve-interface (gnucash report standard-reports balsheet-eg)]
>>>>>>>>> In unknown file:
>>>>>>>>> ?: 36  (letrec ((get-keyword-arg #)) (let* (# # # ...) (and # #) ...))
>>>>>>>>> ?: 37  (let* (# # # # ...) (and # #) (if # public-i #))
>>>>>>>>> ?: 38* (and (or (not module) (not public-i)) (error "no code for module" name))
>>>>>>>>> ?: 39  [error "no code for module" (gnucash report standard-reports balsheet-eg)]
>>>>>>>>> ...
>>>>>>>>> ?: 40  [scm-error misc-error #f ...]
>>>>>>>>> 
>>>>>>>>> <unnamed port>: In procedure scm-error in expression (scm-error (quote misc-error) #f ...):
>>>>>>>>> <unnamed port>: no code for module (gnucash report standard-reports balsheet-eg)
>>>>>>>>> 
>>>>>>>>> This looks like it might be related to moving balsheet-eg in r21591. Geert, could you take a look?
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> Try: 
>>>>>>>> make maintainer-clean
>>>>>>>> find src -name gnucash -type d
>>>>>>>> rm -rf everything you find *except* gnc-module/(foo|bar|baz)/gnucash
>>>>>>>> 
>>>>>>>> Then autogen, configure, build, and install and try again.
>>>>>>>> 
>>>>>>>> Regards,
>>>>>>>> John Ralls
>>>>>>>> 
>>>>>>> I didn't exactly follow part of that: the found files were:
>>>>>>> src/gnc-module/test/mod-bar/gnucash
>>>>>>> src/gnc-module/test/mod-baz/gnucash
>>>>>>> src/gnc-module/test/mod-foo/gnucash
>>>>>>> 
>>>>>>> Looking at the contents of one of those directories looked like it wouldn't interfere on launch. If any of those should be removed, let me know and I'll try again.
>>>>>>> 
>>>>>>> But the source directory was a completely clean checkout from yesterday afternoon, and the only config/build activity was the build failure fixed in 21708.
>>>>>>> 
>>>>>>> No change in result on launching gnucash. I do rm -rf  base/install/dir too, before installing the new version in an old location.
>>>>>> 
>>>>>> David,
>>>>>> 
>>>>>> Sorry, yes, those are the directories I meant.
>>>>>> 
>>>>>> What about your installation directories? Might they still have old Scheme files or shared libraries?
>>>>>> 
>>>>>> Try removing (rm -rf) lib/gnucash and share/gnucash, then re-running make install.
>>>>>> 
>>>>>> I just tested r21710 and it started up OK -- but I did have to clean out the installation and reinstall for it to work.
>>>>>> 
>>>>>> Regards,
>>>>>> John Ralls
>>>>>> 
>>>>> Still no joy for me. I almost always rm -rf $PREFIX/* before make install (needed once in the deep dark past, so I got in the habit of doing it every time). I also removed lib/gnucash and share/gnucash before reinstalling. 
>>>>> 
>>>>> My guile is not in a standard location, but that hasn't been a problem before. I'm using guile 1.8.8 and swig 2.0.4
>>>> 
>>>> 
>>>> OK, then it's not an installation problem; you must have obsolete code somewhere.
>>>> (Yes, I know you said it was a clean checkout.)
>>>> 
>>>> $ manjusri:svn/src/gnucash-git/src> grep -r "standard-reports balsheet-eg" --include="*.scm" .
>>>> $ manjusri:svn/src/gnucash-git/src> 
>>>> 
>>>> What do you get?
>>>> 
>>>> Regards,
>>>> John Ralls
>>> 
>>> [14:57:03] dbr at DOPL6: gnucash $grep -r "standard-reports balsheet-eg" --include="*.scm" .
>>> [14:57:05] dbr at DOPL6: gnucash $
>>> 
>>> but I think that extra balsheet-eg is coming from the (list x) in src/report/standard-reports/standard-reports.scm:
>>> 
>>> (for-each
>>>  (lambda (x)
>>> 	    (module-use!
>>> 		    (current-module)
>>> 			(resolve-interface (append '(gnucash report standard-reports) (list x)))))
>>> 	(get-report-list))
>>> 
>>> Dave
>>> --
>>> David Reiser
>>> dbreiser at earthlink.net
>>> 
>> I guess it's time I learned enough git to do a git bisect.
>> 
>> If I check out the 2.4 branch into a clean directory and build that, I get the same error. If I 'svn update -r21471' (the release point of 2.4.8, I think), make maintainer-clean, autgen/config/make/make install, that one works.
>> 
> 
> A git bisect only slightly automates what you can do by hand with SVN.
> 
> It's just a b-tree search. r21710 is bad, r21471 is good. Halfway between is r21590, so you try that one next. If it's good,
> go halfway again towards 21710, 21640; if bad, go the other way, to 21530. Lather, rinse, repeat; you'll eventually find (more-or-less) adjacent changes that work and don't; then you can examine what's different. Pay close attention to what fails; if something breaks for some other reason, you'll need to either fix that or try a nearby rev to get around the irrelevant failure.
> 
> Good luck, and have fun!
> 
> Regards,
> John Ralls

Turns out I got it right in the original post:

[01:45:46] dbr at DOPL6: gnucash $git bisect bad
5f0f67f2d06605b30350a5b38ca0484ae21c49f9 is the first bad commit
commit 5f0f67f2d06605b30350a5b38ca0484ae21c49f9
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Sun Nov 20 09:33:38 2011 +0000

    Move eguile balance report to business-reports as it depends on business
    utils.
    This is a source code move, the report will remain in the same menu location
    in the GUI
    BP
    
    git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@21591 57a11ea4-9604-0410-9ed3-97b8803252fd

:040000 040000 5b00ef9a1e5a7760616206a95eecfad25ecc0b1c 3818a01196e7c6b0e3bf9f40f3ad623defa5a8d2 M	src

I did one other bisect manually in gnucash a few years ago when my machine took 35 minutes per build. Now it only takes 6, so it's a lot less painful. Bisect automates one of the most irritating parts for me -- keeping track of where I am, so it was worth it to go to git. I did have some adventures along the way. :)

Dave
--
David Reiser
dbreiser at earthlink.net





More information about the gnucash-devel mailing list