[GNC] CRIT <gnc.pricedb> [gnc_price_unref()] last unref while price in database

rgwbruce at gmail.com rgwbruce at gmail.com
Tue Apr 7 15:15:35 EDT 2020


Many thanks for that, John.

I'd already got the same error when I opened the last backup file, which is
why I assumed it was more than just a corrupt data file.

I had to go back 3 versions before I found the one that loaded, but I've
then been able to import all the subsequent log files.

There was one transaction causing the problem, a foreign currency
transaction. 

All now looks good.

Thanks again for your help.

Kind regards,
Rob

-----Original Message-----
From: John Ralls <jralls at ceridwen.us> 
Sent: 07 April 2020 18:34
To: RobBruce <rgwbruce at gmail.com>
Cc: gnucash-user at gnucash.org
Subject: Re: [GNC] CRIT <gnc.pricedb> [gnc_price_unref()] last unref while
price in database



> On Apr 7, 2020, at 9:56 AM, RobBruce <rgwbruce at gmail.com> wrote:
> 
> I'm running 3.4 on Windows 10.
> 
> Until this afternoon, it's been running very smoothly.
> 
> On trying to load GnuCash, I got a message that there was an error 
> parsing the file E:\Documents\gnucash-rob\rob-gnucash.gnucash
> 
> I did look for solutions, and opened the trace log, which contains:
> 
> * 12:49:21  WARN <gnc.app-utils> Could not spawn perl: Failed to 
> execute child process (No such file or directory)
> * 12:49:21  WARN <gnc.backend.xml> Could not read from compressed file 
> 'E:\Documents\gnucash-rob\rob-gnucash.gnucash'. The error is:
> 'E:\Documents\gnucash-rob\rob-gnucash.gnucash: invalid block type' 
> (-3)
> * 12:49:21  CRIT <gnc.backend.file.sixtp> parse failed at:
> * 12:49:21  CRIT <gnc.pricedb> [gnc_price_unref()] last unref while 
> price in database
> * 12:49:21  CRIT <gnc.pricedb> [gnc_price_unref()] last unref while 
> price in database <many lines deleted>
> * 12:49:21  WARN <gnc.backend> [GncXmlBackend::load()] Syntax error in 
> Xml File E:\Documents\gnucash-rob\rob-gnucash.gnucash
> 
> I'm not aware of having made any change to the file structure - is 
> this recoverable, please?

It looks like you have a corrupted file. Try loading the last backup, which
should be named something like rob-gnucash.gnucash.20200405154732.gnucash;
the numbers in the middle are a date stamp, yyyymmddhhmmss, for the
subsequent save. Depending on what work you did in the last session you may
be able to recover some of it by replaying the corresponding log file with
File>Import>Replay log file.

You should also check the drive with `chkdsk` and `wmic diskdrive get
status` to make sure that the corruption was something random like a cosmic
ray and not the first sign of needing a new one.

Regards,
John Ralls




More information about the gnucash-user mailing list