reproducible reliability issues in 2.4.13

John Ralls jralls at ceridwen.us
Thu Nov 21 23:05:31 EST 2013


On Nov 21, 2013, at 3:59 PM, Thomas Klausner <tk at giga.or.at> wrote:

> Hi!
> 
> I have seen a new problem recently. When I enter a few transactions
> and save my gnucash file (contain this year's transactions) and then
> try to reopen it, gnucash complains:
> 
> "There was an error parsing the file file://path/to/file."
> 
> The problem is that I'm losing trust in gnucash if I can save a file
> without problems but then cannot load it the next time I open it.
> Going back to the previous version works, but then I lose the newly
> entered transactions.
> 
> Perhaps understandably, I don't want to post the whole file. I have
> however ungzipped the files, and here are diffs of two tries that gave
> me broken gnucash files as result.
> 
> First one (diff ok broken):
> 
> 37c37
> < <gnc:count-data cd:type="transaction">1688</gnc:count-data>
> ---
>> <gnc:count-data cd:type="transaction">1691</gnc:count-data>
> 13702a13703,13738
>>  <trn:id type="guid">70e4a6f3cb95383ed7577d9a8d7c054b</trn:id>
>>  <trn:currency>
>>    <cmdty:space>ISO4217</cmdty:space>
>>    <cmdty:id>EUR</cmdty:id>
>>  </trn:currency>
>>  <trn:date-posted>
>>    <ts:date>2013-11-21 00:00:00 +0100</ts:date>
>>  </trn:date-posted>
>>  <trn:date-entered>
>>    <ts:date>2013-11-21 14:19:29 +0100</ts:date>
>>  </trn:date-entered>
>>  <trn:description>Kantine</trn:description>
>>  <trn:slots>
>>    <slot>
>>      <slot:key>notes</slot:key>
>>      <slot:value type="string"></slot:value>
>>    </slot>
>>  </trn:slots>
>>  <trn:splits>
>>    <trn:split>
>>      <split:id type="guid">811ede435c69e68b57b723e6e3098c04</split:id>
>>      <split:reconciled-state>n</split:reconciled-state>
>>      <split:value>465/100</split:value>
>>      <split:quantity>465/100</split:quantity>
>>      <split:account type="guid">c14866646275683b2d7fa6ffe7eabca6</split:account>
>>    </trn:split>
>>    <trn:split>
>>      <split:id type="guid">a43c292a70482602184499dcad0644cb</split:id>
>>      <split:reconciled-state>n</split:reconciled-state>
>>      <split:value>-465/100</split:value>
>>      <split:quantity>-465/100</split:quantity>
>>      <split:account type="guid">c564b98680c5043817272cdd9420bc6e</split:account>
>>    </trn:split>
>>  </trn:splits>
>> </gnc:transaction>
>> <gnc:transaction version="2.0.0">
> 20115a20152,20187
>>  <trn:id type="guid">0fd61fcbd826258a0d7d5daa9d9eef71</trn:id>
>>  <trn:currency>
>>    <cmdty:space>ISO4217</cmdty:space>
>>    <cmdty:id>EUR</cmdty:id>
>>  </trn:currency>
>>  <trn:date-posted>
>>    <ts:date>2013-11-21 00:00:00 +0100</ts:date>
>>  </trn:date-posted>
>>  <trn:date-entered>
>>    <ts:date>2013-11-21 14:19:33 +0100</ts:date>
>>  </trn:date-entered>
>>  <trn:description>Cola</trn:description>
>>  <trn:slots>
>>    <slot>
>>      <slot:key>notes</slot:key>
>>      <slot:value type="string"></slot:value>
>>    </slot>
>>  </trn:slots>
>>  <trn:splits>
>>    <trn:split>
>>      <split:id type="guid">20eddc43e49f9b765151dd81de1e0b5e</split:id>
>>      <split:reconciled-state>n</split:reconciled-state>
>>      <split:value>95/100</split:value>
>>      <split:quantity>95/100</split:quantity>
>>      <split:account type="guid">6ef147197d9a800321ce769f6394f297</split:account>
>>    </trn:split>
>>    <trn:split>
>>      <split:id type="guid">7fa3f9890cfc91b1a31afb48b279200f</split:id>
>>      <split:reconciled-state>n</split:reconciled-state>
>>      <split:value>-95/100</split:value>
>>      <split:quantity>-95/100</split:quantity>
>>      <split:account type="guid">c564b98680c5043817272cdd9420bc6e</split:account>
>>    </trn:split>
>>  </trn:splits>
>> </gnc:transaction>
>> <gnc:transaction version="2.0.0">
> 51320a51393,51428
>>  <trn:id type="guid">a1bbf8c0468c6e7a38cfa3a51a72ee41</trn:id>
>>  <trn:currency>
>>    <cmdty:space>ISO4217</cmdty:space>
>>    <cmdty:id>EUR</cmdty:id>
>>  </trn:currency>
>>  <trn:date-posted>
>>    <ts:date>2013-11-21 00:00:00 +0100</ts:date>
>>  </trn:date-posted>
>>  <trn:date-entered>
>>    <ts:date>2013-11-21 14:20:15 +0100</ts:date>
>>  </trn:date-entered>
>>  <trn:description>Sync</trn:description>
>>  <trn:slots>
>>    <slot>
>>      <slot:key>notes</slot:key>
>>      <slot:value type="string"></slot:value>
>>    </slot>
>>  </trn:slots>
>>  <trn:splits>
>>    <trn:split>
>>      <split:id type="guid">0e28dc1595137224a47d9c57d2052359</split:id>
>>      <split:reconciled-state>n</split:reconciled-state>
>>      <split:value>50/100</split:value>
>>      <split:quantity>50/100</split:quantity>
>>      <split:account type="guid">9c3f4360fd2a6381c8e755816de5b512</split:account>
>>    </trn:split>
>>    <trn:split>
>>      <split:id type="guid">a919a04e41ca749341a3666552dfcb42</split:id>
>>      <split:reconciled-state>n</split:reconciled-state>
>>      <split:value>-50/100</split:value>
>>      <split:quantity>-50/100</split:quantity>
>>      <split:account type="guid">c564b98680c5043817272cdd9420bc6e</split:account>
>>    </trn:split>
>>  </trn:splits>
>> </gnc:transaction>
>> <gnc:transaction version="2.0.0">
> 
> 
> Second try, I reopened the backup file, entered the "Kantine"
> transaction, saved and loaded. Worked. Then I entered the other two
> transactions, saved, opened, and it was broken. I suspect the "Sync"
> transaction, but I don't know what's wrong with it.
> 
> Result of second try (diff ok broken2):
> 
> 37c37
> < <gnc:count-data cd:type="transaction">1688</gnc:count-data>
> ---
>> <gnc:count-data cd:type="transaction">1691</gnc:count-data>
> 13702a13703,13744
>>  <trn:id type="guid">47bac51bda012893b03092af2b0297e1</trn:id>
>>  <trn:currency>
>>    <cmdty:space>ISO4217</cmdty:space>
>>    <cmdty:id>EUR</cmdty:id>
>>  </trn:currency>
>>  <trn:date-posted>
>>    <ts:date>2013-11-21 00:00:00 +0100</ts:date>
>>  </trn:date-posted>
>>  <trn:date-entered>
>>    <ts:date>2013-11-22 00:44:17 +0100</ts:date>
>>  </trn:date-entered>
>>  <trn:description>Kantine</trn:description>
>>  <trn:slots>
>>    <slot>
>>      <slot:key>date-posted</slot:key>
>>      <slot:value type="gdate">
>>        <gdate>2013-11-21</gdate>
>>      </slot:value>
>>    </slot>
>>    <slot>
>>      <slot:key>notes</slot:key>
>>      <slot:value type="string"></slot:value>
>>    </slot>
>>  </trn:slots>
>>  <trn:splits>
>>    <trn:split>
>>      <split:id type="guid">ca762ae97e1451e40789dd9445b68cd3</split:id>
>>      <split:reconciled-state>n</split:reconciled-state>
>>      <split:value>465/100</split:value>
>>      <split:quantity>465/100</split:quantity>
>>      <split:account type="guid">c14866646275683b2d7fa6ffe7eabca6</split:account>
>>    </trn:split>
>>    <trn:split>
>>      <split:id type="guid">3ee3cf02188a8d740e6cca33d14a8fe9</split:id>
>>      <split:reconciled-state>n</split:reconciled-state>
>>      <split:value>-465/100</split:value>
>>      <split:quantity>-465/100</split:quantity>
>>      <split:account type="guid">c564b98680c5043817272cdd9420bc6e</split:account>
>>    </trn:split>
>>  </trn:splits>
>> </gnc:transaction>
>> <gnc:transaction version="2.0.0">
> 20115a20158,20193
>>  <trn:id type="guid">5f212629d037def74e7f8c2940de2e63</trn:id>
>>  <trn:currency>
>>    <cmdty:space>ISO4217</cmdty:space>
>>    <cmdty:id>EUR</cmdty:id>
>>  </trn:currency>
>>  <trn:date-posted>
>>    <ts:date>2013-11-21 00:00:00 +0100</ts:date>
>>  </trn:date-posted>
>>  <trn:date-entered>
>>    <ts:date>2013-11-22 00:44:47 +0100</ts:date>
>>  </trn:date-entered>
>>  <trn:description>Cola</trn:description>
>>  <trn:slots>
>>    <slot>
>>      <slot:key>notes</slot:key>
>>      <slot:value type="string"></slot:value>
>>    </slot>
>>  </trn:slots>
>>  <trn:splits>
>>    <trn:split>
>>      <split:id type="guid">c45634006eeeaa7dc1ef78eea38bf6da</split:id>
>>      <split:reconciled-state>n</split:reconciled-state>
>>      <split:value>95/100</split:value>
>>      <split:quantity>95/100</split:quantity>
>>      <split:account type="guid">6ef147197d9a800321ce769f6394f297</split:account>
>>    </trn:split>
>>    <trn:split>
>>      <split:id type="guid">5b9299c375ba2f09928859d8cfe9b0f8</split:id>
>>      <split:reconciled-state>n</split:reconciled-state>
>>      <split:value>-95/100</split:value>
>>      <split:quantity>-95/100</split:quantity>
>>      <split:account type="guid">c564b98680c5043817272cdd9420bc6e</split:account>
>>    </trn:split>
>>  </trn:splits>
>> </gnc:transaction>
>> <gnc:transaction version="2.0.0">
> 51320a51399,51440
>>  <trn:id type="guid">13e8991546c49148fb0e899f62ec542e</trn:id>
>>  <trn:currency>
>>    <cmdty:space>ISO4217</cmdty:space>
>>    <cmdty:id>EUR</cmdty:id>
>>  </trn:currency>
>>  <trn:date-posted>
>>    <ts:date>2013-11-21 00:00:00 +0100</ts:date>
>>  </trn:date-posted>
>>  <trn:date-entered>
>>    <ts:date>2013-11-22 00:44:38 +0100</ts:date>
>>  </trn:date-entered>
>>  <trn:description>Sync</trn:description>
>>  <trn:slots>
>>    <slot>
>>      <slot:key>date-posted</slot:key>
>>      <slot:value type="gdate">
>>        <gdate>2013-11-21</gdate>
>>      </slot:value>
>>    </slot>
>>    <slot>
>>      <slot:key>notes</slot:key>
>>      <slot:value type="string"></slot:value>
>>    </slot>
>>  </trn:slots>
>>  <trn:splits>
>>    <trn:split>
>>      <split:id type="guid">eede1944a1e48d9e0ac398443857467c</split:id>
>>      <split:reconciled-state>n</split:reconciled-state>
>>      <split:value>50/100</split:value>
>>      <split:quantity>50/100</split:quantity>
>>      <split:account type="guid">9c3f4360fd2a6381c8e755816de5b512</split:account>
>>    </trn:split>
>>    <trn:split>
>>      <split:id type="guid">5ebfda22eb7d6695342e9586f5120b4e</split:id>
>>      <split:reconciled-state>n</split:reconciled-state>
>>      <split:value>-50/100</split:value>
>>      <split:quantity>-50/100</split:quantity>
>>      <split:account type="guid">c564b98680c5043817272cdd9420bc6e</split:account>
>>    </trn:split>
>>  </trn:splits>
>> </gnc:transaction>
>> <gnc:transaction version="2.0.0">
> 
> 
> In case it matters, that's with 2.4.13 on NetBSD-6.99It.24/amd64. I've
> been using gnucash for years and have never seen that before.
> 
> Help very welcome!

For future reference, the output of diff -u is often easier to grok than that of plain diff.
It's decipherable in this case, so no matter.

The only difference I see is in KVP: In the first attempt, all three txns are missing the 
"date-posted" slot indicating that they were input by hand; in the second only "Cola" is
missing it. But KVP is invisible to the parser, so that's not the problem.

Why do you suspect the Sync transaction rather than the Cola one?

Please search the decompressed file for each of the account guids in the splits above to
make sure that they're all valid.

Regards,
John Ralls




More information about the gnucash-user mailing list