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