Master - saving to xml broken

Geert Janssens geert.gnucash at kobaltwit.be
Sat Dec 3 10:46:14 EST 2016


Op zaterdag 3 december 2016 16:34:13 CET schreef Geert Janssens:
> Op vrijdag 2 december 2016 14:30:19 CET schreef John Ralls:
> > > On Dec 2, 2016, at 12:53 PM, John Ralls <jralls at ceridwen.us> wrote:
> > >> On Dec 2, 2016, at 12:47 PM, Robert Fewell <14ubobit at gmail.com> wrote:
> > >> 
> > >> Just built master from
> > >> https://github.com/Gnucash/gnucash/commit/dd4b8a104d0f7ad2205407e8bf10f
> > >> ee
> > >> c364c8127 and I still do not see the errors Geert is having. Added a
> > >> Customer and a Vendor and still only have one of each.
> > > 
> > > Bob,
> > > 
> > > Yes, I'm also not yet able to reproduce the duplicate vendor issue.
> > > Geert
> > > mentioned on IRC that he's using Fedora-25 so I'm building a new VM with
> > > that to test.
> > 
> > I can't reproduce it on Fedora-25 either.
> > 
> > The save problems and crashes on master I *can* reproduce, so I'm working
> > on that.
> > 
> > Regards,
> > John Ralls
> 
> John,
> 
> I  can confirm your commits fix the save problems and crashes. Thanks.
> 
> As I appear to be the only one experiencing the other part of duplicate
> objects, I am digging further locally.
> 
> Using gdb, I found that all non-core objects are registered twice.
> Once they are registered as part of loading the app-utils module, which in
> turn loads the engine module which then loads the business modules.
> 
> The second time they are loaded because the python bindings load the engine
> module, triggering loading of the business modules again apparently.
> 
> I have no idea (yet) why this didn't happen before the backend rewrite was
> merged back in.
> 
> I suppose none of you have the python bindings enabled, which would explain
> why only I'm seeing this.
> 
> Geert

The easy one-line fix would be to test for engine_is_initialized == 1 in 
gnc_engine_init_part2 just like in gnc_engine_init_part1.

I wonder though whether we'd want to move this up to gnc_engine_init in 
general though. Do we want the init hooks to be run each time some code calls 
gnc_engine_init or should they be called only once also ?

Geert


More information about the gnucash-devel mailing list