Master - saving to xml broken

Geert Janssens geert.gnucash at kobaltwit.be
Fri Dec 2 11:38:52 EST 2016


Op vrijdag 2 december 2016 17:20:13 CET schreef Geert Janssens:
> Here's my scenario:
> 
> - start gnucash
> - create new file
> - go through the assistant, simply by clicking forward everywhere
> - save the file
> - add one vendor
> - save the file
> - restart gnucash
> 
> => error as described earlier
> 
> Checking my data file, it does indeed have the vendor stored twice. I'm
> currently doing a full clean rebuild of gnucash master (freshly checked out
> from github). I'll report my findings when the build finishes.
> 
> Geert
> 

Ok, clean rebuild of current master. Things are even worse. Same steps as 
above.

After the assistant finishes, I'm offered a save dialog. I'm entering a new 
file name (of a non-existent file). A second dialog window pops up telling me 
the file is already open and asks whether I want to save over it. At the same 
time this message is printed in the logs:
* 17:30:49  WARN <gnc.backend> [GncXmlBackend::session_begin()] Might clobber, 
no force

I tell gnucash to overwrite and the save dialog closes. The window title is 
changed to *Double.gnucash (I chose "Double" as file name).
This suggests the file is not saved yet. Looking on the file system it's not 
there indeed. But the lock files are.

Closing gnucash it asks me again whether I want to save the file. I'm telling 
it to save. Immediately a second dialog pops up warning me the changes of the 
last x minutes will be lost if I close without saving.

I chose again to save, the same dialog appears again and will continue to do 
so until I choose to close without saving. At that point gnucash segfaults.

There's no file on my file system with the name Double.gnucash.

There is also no other version of gnucash or its libraries on the path.

Regards,

Geert


> Op vrijdag 2 december 2016 15:03:03 CET schreef Robert Fewell:
> > Geert,
> > 
> > Just created a customer and vendor, still no errors...
> > 
> > Bob
> > 
> > On 2 December 2016 at 14:45, Geert Janssens <geert.gnucash at kobaltwit.be>
> > 
> > wrote:
> > > Bob,
> > > 
> > > Did you add a business object, like a vendor or customer ?
> > > 
> > > Geert
> > > 
> > > Op vrijdag 2 december 2016 14:34:57 CET schreef Robert Fewell:
> > > > Geert,
> > > > 
> > > > Not sure I see your problem, just created a new xml file based on
> > > > master
> > > > with one transaction from
> > > > https://github.com/Gnucash/gnucash/commit/dd4b8a104d0f7ad2205407e8bf10
> > > > fe
> > > 
> > > ec36
> > > 
> > > > 4c8127, can save with no errors.
> > > > 
> > > > Bob
> > > > 
> > > > On 2 December 2016 at 13:03, Geert Janssens
> > > > <geert.gnucash at kobaltwit.be>
> > > > 
> > > > wrote:
> > > > > Op vrijdag 2 december 2016 13:50:12 CET schreef Geert Janssens:
> > > > > > Hi,
> > > > > > 
> > > > > > The last couple of days I find that the master branch breaks xml
> > > 
> > > files
> > > 
> > > > > > during save. I didn't report earlier because I had to check first
> > > > > > whether
> > > > > > it wasn't due to my own branch.
> > > > > > 
> > > > > > Built a clean current master today, and it still saves broken xml
> > > 
> > > data
> > > 
> > > > > > files.
> > > > > > 
> > > > > > The error message is - as usual with the backend - pretty vague:
> > > > > > * 13:27:04  WARN <gnc.backend> [GncXmlBackend::load()] Syntax
> > > > > > error
> > > 
> > > in
> > > 
> > > > > Xml
> > > > > 
> > > > > > File /home/janssege/Development/gnucash/testdata/KobaltTest.xac
> > > > > > 
> > > > > > To reproduce: open a working file and save it as xml. For my test
> > > > > > I
> > > > > 
> > > > > simply
> > > > > 
> > > > > > added and remove one character of one single transaction
> > > > > > description
> > > 
> > > and
> > > 
> > > > > > then saved the file again.
> > > > > > 
> > > > > > Analyzing the broken file I find:
> > > > > 
> > > > > > 1. there are several duplicate xml namespaces in the xmlns list:
> > > > > billterm,
> > > > > 
> > > > > > bt- days, bt-prox, cust, employee, entry, invoice, job, order,
> > > 
> > > taxtable,
> > > 
> > > > > > tte, vendor and addr. They were in the original file as well, but
> > > 
> > > only
> > > 
> > > > > > once.
> > > > > > 
> > > > > > 2. gnc:count-data equally has a number of duplicate entries, also
> > > > > > for
> > > > > > business objects only.
> > > > > > 
> > > > > > 3. The original book only had gnc:commodity entries for currencies
> > > 
> > > that
> > > 
> > > > > are
> > > > > 
> > > > > > really in use. The new book has an entry for each commodity we
> > > 
> > > support.
> > > 
> > > > > > 4. all objects that didn't have slots before, now have an empty
> > > > > > slots
> > > > > > xml
> > > > > > entity. The commodities now have for example <cmdty:slots/>.
> > > 
> > > Similarly
> > > 
> > > > > there
> > > > > 
> > > > > > are now also plenty of empty entities for accounts, transactions,
> > > > > > splits,
> > > > > > ...
> > > > > > 
> > > > > > This issue must have been introduced before commit dd4b8a104d0f7
> > > > > > on
> > > > > 
> > > > > master.
> > > > > 
> > > > > > That's the commit my cpp branch branches off from and I'm seeing
> > > > > > it
> > > > > 
> > > > > there as
> > > > > 
> > > > > > well (albeit with a slightly different error message:* 10:54:04
> > > > > > WARN
> > > > > > <gnc.backend> [gnc_xml_be_load_from_file()] Syntax error in Xml
> > > > > > File
> > > > > 
> > > > > /home/
> > > > > 
> > > > > > janssege/Development/gnucash/testdata/KobaltTest.xac)
> > > > > 
> > > > > Digging a bit further it looks like all business data is duplicated,
> > > 
> > > which
> > > 
> > > > > would explain the errors - all those guid's appear twice.
> > > > > 
> > > > > Geert
> > > > > _______________________________________________
> > > > > gnucash-devel mailing list
> > > > > gnucash-devel at gnucash.org
> > > > > https://lists.gnucash.org/mailman/listinfo/gnucash-devel
> 
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel




More information about the gnucash-devel mailing list