Hello,

I'm using GnuCash 5.17 on Windows with the XML backend, though this problem 
goes back earlier than 5.17. I tried to start using Lots in my book that I've 
used heavily for years and I discovered an unusual problem. Whenever I used the 
"scrub account" button and assigned an income account to the resulting 
"Realized gain/loss" splits, it seemed to work. But the next time I loaded up 
GnuCash and tried to scrub the account again because of new entries, it 
duplicated all my existing gain/loss splits. This happened with every single 
one of the security accounts I tried it with.

I eventually figured out what causes this. If the gain/loss transactions are 
located earlier in the XML than the other transactions in the security account, 
that's enough to cause this problem. If you were to inspect the XML after this 
duplication bug, you'd find the old gain/loss splits have "gains-split" entries 
pointing back to its associated sale split, but the sale split's "gains-source" 
instead points back to the new duplicate gain/loss split. Since GnuCash saves 
transactions in account order, this can only happen when the income account is 
loaded BEFORE the Assets account in GnuCash (or if you assign the "Realized 
gain/loss" account to something in Assets that you know will be loaded before 
your security account.)

Steps to reproduce:
1. Create a new book, either skipping the account templates or using one that 
has the top level Income account but NOT the top level Assets account.
2. Create the Income and Assets top level accounts, in that order.
3. Create a security in the security editor, a stock account under Assets, and 
a gains account under Income. Add a bank account (or something) under assets as 
well.
4. Enter a buy transaction followed by a sell transaction in the security 
account. The sell transaction should be at a later date than the buy 
transaction (I'll explain why later.)
5. Open the lots editor, and click "Scrub account". As you normally might, 
change the account of the resulting gain/loss split to Income:gains.
6. Save, close, and reopen. Open the lots editor again and click "Scrub 
account". The gain/loss transaction should duplicate. Step 6 can be repeated 
every time you save, close, and reopen.

I have a lot of saved report configs, scheduled transactions, etc. and didn't 
want to create a new book to try and dodge this bug. Fortunately, the fix is 
easy: just open the XML file, cut all the Assets accounts, and paste them at 
the very top of the accounts entries. Assuming you have all your security 
accounts in Assets, this completely fixes the problem. IMPORTANT: You should 
then open your book, save it (just make a dummy transaction), and close it 
again. At that point, GnuCash will have written your transactions to the file 
in proper order. You can also temporarily fix this problem by moving the 
gain/loss transactions themselves to the END of the file, and that actually 
works, but only for the next run because the transaction order is overwritten 
when GnuCash saves.

I suspect not many people will have this issue given how likely it is to have 
the Assets account created first during the new book wizard, but somehow it 
happened to me, and it took quite a lot of time to figure it out. Anyway, could 
I get a Bugzilla account so I can report this properly?

Lance
_______________________________________________
gnucash-user mailing list
[email protected]
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
-----
Please remember to CC this list on all your replies.
You can do this by using Reply-To-List or Reply-All.

Reply via email to