disappearing data or correupt data file
Thomas Baumgart
thb at net-bembel.de
Sun Oct 8 08:40:12 BST 2023
On Dienstag, 3. Oktober 2023 21:33:07 CEST Jack via KMyMoney-devel wrote:
> On 2023.10.03 15:06, Jack via KMyMoney-devel wrote:
> > First, it seems that the most recent good file is my explicit backup
> > from 30 Sep and even the oldest autobackup from 02 Oct is bad. The
> > main action between them was OFX direct connect download of all
> > mapped accounts. Now I'm wondering if there was something funny in
> > the import. Actually I know there was something funny, related to
> > telling KMM not to create the unknown equity, and apparently having
> > it stop the import (at least for that account) at that point.
> > However, I don't see how that could create this particular problem.
> >
> > Comparing XML files is difficult, because (as has been discussed on
> > the mailing list in the past,) the order of attributes is not
> > consistent.
> >
> > xmllint shows as bad only the oldest four of the autobackup files (02
> > Oct from 16:57 to 17:13.) I tried using xmllint -c11n, to possibly
> > be able to diff the various versions, but it won't process the four
> > "bad" files.
> >
> > These four files seems to have </KMYMONEY-FILE> inserted immediately
> > before <PRICEPAIR from="E000525" to="USD"> but otherwise show changes
> > to the ACCOUNTS and TRANSACTIONS related to my edits as part of
> > reconciliation. These all seem to have all the pricepairs intact.
> > The ends of those files show all my reports, followed by <BUDGETS/>
> > and <ONLINEJOBS/> but no </KMYMONEY-FILE>.
> I just noticed a second problem, which I should have seen earlier. Not
> only has </KMYMONEY-FILE> moved from the end of the file about 400
> lines up, but </PRICES> has also moved up, from immediately before
> <REPORTS> to one line above </KMYMONEY-FILE>.
> >
> > The remaining files have </KMYMONEY-FILE> back to the end of the file
> > but have the pricepairs after E000525 with only one (wrong) price,
> > then empty reports, budgets, and online jobs, with the final
> > </KMYMONEY-FILE>
> >
> > So, at some point after a big OFX import (and possibly other
> > (relatively minor?) changes, the last line of the file got moved just
> > over 400 lines up. It's likely that the next four files were
> > sequential saves, without re-reading the file. I'm guessing that
> > after saving those four (and probably some earlier ones that got
> > rolled over with the limit of 10 autobackups) I restarted KMM, and
> > although it read the bad file, without apparent complaint and saved
> > valid files after that, it lost all custom reports, and dropped some
> > pricepars totally and all except one price for the others (after the
> > pricepair prior to the stray </KMYMONEY-FILE>.
> >
> > I've just captured console output from a clean start of KMM, reading
> > first the most recent good file, and then the earliest bad file.
> > Those logs are identical through loading all the plugins then differe
> > in the file name (URL) being opened. There are differences in the
> > number of items loaded for "P", accounts, "T", "E", all increasing.
> > There is a decrease in number of prices, even though there are 151
> > more "<PRICE " entries in the file. Increase in number of splits.
> > Differences in time to process home view sections.
> >
> > The message ' 0 instead of 1 arguments to message "The size of the
> > file..." supplied before conversion' shows up for both files.
> >
> > My first attempt at a cut/paste fix didn't work, so I'll try once
> > more again, otherwise I'll just resign myself to starting over from
> > the file from the 30th.
> I'll guess now that it didn't work because I didn't correct the
> misplaced </PRICES> line.
I re-visited this issue and noticed a possibility that could cause the problem.
https://invent.kde.org/office/kmymoney/-/commit/edb22bd2be7dd7c29bd94e14f6a4632866c44ccc
should fix it.
The reason is when erroneous entries are detected during writing (see the
code following the above change which contains continue statements that
cause to reach the m_writer->writeEndElement() line again. Loop twice and you
get </PRICES> in the first iteration and </KMYMONEY-FILE> during the second
one. Only in that case another <PRICEPAIR> can be issued. Resetting the flag
immediately prevents issuing the </PRICES> and </KMYMONEY-FILE> markers
in this situation.
@Jack: I expect those weird price entries to happen during OFX import. So maybe
you can check in that area (OFX prices imported into the last good data file).
--
Regards
Thomas Baumgart
-------------------------------------------------------------
As soon as there is an optimist who discovers a light that does not exist
there is a pessimist who blows it out. (Giovanni Guareschi)
-------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 868 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kmymoney-devel/attachments/20231008/bf3c7c7e/attachment.sig>
More information about the KMyMoney-devel
mailing list