RESOLVED error after upgrading to ubuntu 15.04

Geert Janssens geert.gnucash at kobaltwit.be
Tue Sep 1 04:47:10 EDT 2015


On Monday 31 August 2015 16:32:47 Colin Law wrote:
> On 31 August 2015 at 15:23, John Ralls <jralls at ceridwen.us> wrote:
> >> On Aug 31, 2015, at 12:18 AM, Colin Law <clanlaw at gmail.com> wrote:
> >> ...
> >> Any comment from a dev as to why it should be necessary to delete
> >> the
> >> guile cache on systems but not others?
> > 
> > The Guile developers chose a rather naive way to decide if the cache
> > is stale: If it’s newer than the source file then it’s OK. That
> > means that if GnuCash version X is run for the first time on a
> > particular machine after the date that a Scheme file is changed in
> > git (which date is preserved in the tarball) then Guile won’t
> > recognize the new file and will continue to use the cached
> > compilation with predictable results.
> Ah, that explains it.  Is it possible for GnuCash to determine that it
> is being run for the first time after an upgrade and to delete the
> cache?  Alternatively perhaps this is a packaging bug in that an
> upgrade should delete the cache.
> 
> Colin

This has been discussed around the time gnucash 2.6.5 was released.

A few facts first:
- This user cache issue can arise if you ever used gnucash 2.6.0-2.6.4. Older versions of 
gnucash didn't use guile 2 (and hence didn't use compiled scm files). And as of gnucash 2.6.5, 
we ship the precompiled sources ourselves. This way the shipped compiled files always match 
the shipped sources.

- The issue happens because the precompiled scm files are still around in the user cache 
($HOME/.cache/ccache/...). The moment you update to gnucash 2.6.5 or more recent, it's a one 
time action to delete this user cache. It will not be needed again for the next update because 
the user cache won't be generated by gnucash anymore in newer versions.

All this means the issue tends to die out over time. Also not everybody is bound to run into this. 
It depends on the timing of your first use of gnucash and the release of the next version of 
gnucash you will be using.

Given
- this transient nature
- the fact the user cache is not under direct control of the gnucash source code (it's auto 
generated by the guile library we depend on),
- the effort it would have taken to safely delete files from the user's home directory
the gnucash developers decided to ask the users themselves to do the one-time effort of 
removing this cache manually.

In hindsight I regret we forgot to add this as an upgrade notice to our release announcements. 
In fact, I think I will still add this to the existing news messages.

Regards,

Geert


More information about the gnucash-user mailing list