trunk r21710 fails at launch during report loading

John Ralls jralls at ceridwen.us
Sun Dec 11 23:35:57 EST 2011


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





More information about the gnucash-devel mailing list