transactions missing common currency

Dale Alspach alspach at math.okstate.edu
Sat Jun 19 11:58:48 EDT 2004


I just (I hope) recovered my data file from a corruption problem.

This is 1.8.9 compiled on RH8. 

I often leave gnucash open for days so that I can enter a few transactions
when I have a little time. Some time after June 6 gnucash began to write
transactions without this
  <trn:currency>
    <cmdty:space>ISO4217</cmdty:space>
    <cmdty:id>USD</cmdty:id>
  </trn:currency>

Because I had not reread in the datafile until June 16, I was not aware of
the corruption. The corruption affected nearly a month of transactions
because I reconciled several accounts. I was alerted to the fact that
something was wrong by being unable to edit a split. I would make a change
and when the cursor was moved to another line the change would vanish.

Another strange thing I found in the datafile was

        <split:value>796000/100000</split:value>
        <split:quantity>796/100</split:quantity>

instead of

        <split:value>796/100</split:value>
        <split:quantity>796/100</split:quantity>

in these same transactions. (These were all transactions in dollars US not
shares and such.)

By "diff"ing the corrupt file against the June 6 file I found that there
were also correctly created transactions and the vast majority of the
corrupt ones were ones with altered reconcile state. (This is not easily
quantifiable because the difference with context was over 6000 lines)
The only thing that I
can think of that I had done in the recent past that was new is that I
created a scheduled transaction from a transaction. All other scheduled
transactions were either manually created from the editor or created
by the loan druid.

Here is an excerpt for the new sx:

- <gnc:schedxaction version="1.0.0">
-   <sx:id type="guid">fb0b97d54465a348900d94c58004d3e7</sx:id>
-   <sx:name>Visa check card fee</sx:name>
-   <sx:autoCreate>n</sx:autoCreate>
-   <sx:autoCreateNotify>n</sx:autoCreateNotify>
-   <sx:advanceCreateDays>0</sx:advanceCreateDays>
-   <sx:advanceRemindDays>0</sx:advanceRemindDays>
-   <sx:instanceCount>3</sx:instanceCount>
-   <sx:start>
-     <gdate>2004-04-10</gdate>
-   </sx:start>
-   <sx:last>
-     <gdate>2004-05-10</gdate>
-   </sx:last>
-   <sx:templ-acct type="guid">b1535c77f69363476082d40ce280ec14</sx:templ-acct>
-   <sx:freqspec>
-     <gnc:freqspec version="1.0.0">
-       <fs:id type="guid">f2172ee9871077fdeaf873c019c33927</fs:id>
-       <fs:ui_type>monthly</fs:ui_type>
-       <fs:monthly>
-         <fs:interval>1</fs:interval>
-         <fs:offset>0</fs:offset>
-         <fs:day>10</fs:day>
-       </fs:monthly>
-     </gnc:freqspec>
-   </sx:freqspec>
- </gnc:schedxaction>
- <gnc:schedxaction version="1.0.0">
-   <sx:id type="guid">035b672a767bd48b14efb3d548d43dd9</sx:id>
-   <sx:name>Visa check card fee</sx:name>
-   <sx:autoCreate>y</sx:autoCreate>
-   <sx:autoCreateNotify>n</sx:autoCreateNotify>
-   <sx:advanceCreateDays>12</sx:advanceCreateDays>
-   <sx:advanceRemindDays>0</sx:advanceRemindDays>
-   <sx:instanceCount>2</sx:instanceCount>
-   <sx:start>
-     <gdate>2004-06-10</gdate>
-   </sx:start>
-   <sx:last>
-     <gdate>2004-06-10</gdate>
-   </sx:last>
-   <sx:templ-acct type="guid">ec070187dfbf8951496f11c50b01e095</sx:templ-acct>
-   <sx:freqspec>
-     <gnc:freqspec version="1.0.0">
-       <fs:id type="guid">f9fd36ef4408a652a811f345b54a9daf</fs:id>
-       <fs:ui_type>monthly</fs:ui_type>
-       <fs:monthly>
-         <fs:interval>1</fs:interval>
-         <fs:offset>0</fs:offset>
-         <fs:day>10</fs:day>
-       </fs:monthly>
-     </gnc:freqspec>
-   </sx:freqspec>
- </gnc:schedxaction>

I do not remember creating this twice.

I do not have time currently to try to recreate the problem, but I will
save and reread the data file frequently so that I may be able to isolate
the circumstances better.

I have one question for the developers. Can some more checking be done so
that corrupt transactions are not written or at least the user is warned
that something is wrong?

Dale Alspach


More information about the gnucash-user mailing list